|
|
|
Defines the Java platform type for J2SE (plain JDKs), and the plain Java library type. UI specifications:
J2SE-specific portion of Java Platform Manager.
Class-library-specific portion of Library Manager.
Provides implementations of the Java platform SPI and the project library SPI.
J2SEPlatformCreator - API to register a JDK and these SPI - (service provide interfaces) for JDK sources and JavaDoc .
Defines some formats:
Definition of XML format for J2SE platform type (i.e. a JDK).
The library type provider defines three volume types:
classpath
src
javadoc
maven-pom
- Added for 6.0 beta1 to allow maven projects to recognize the library content.
The actual definition of the XML syntax is controlled by the Project Libraries API.
The UI specifications describe the module in proper context.
Question (arch-time): What are the time estimates of the work? Answer:Essentially done.
Question (arch-quality): How will the quality of your code be tested and how are future regressions going to be prevented? Answer:There is some unit test coverage.
Question (arch-where): Where one can find sources for your module? WARNING: Question with id="arch-where" has not been answered!Used to define classpath, etc.
Implements this SPI.
Implements this SPI.
Used to update ${netbeans.user}/build.properties with the current list of libraries and platforms.
Just used for ProjectManager.mutex()
.
Used for settings storage.
Used for various purposes.
Implementation of the J2SE platform autodetection wizard.
Controls interaction when sources are about to be attached to a Classpath root, in
SourceJavadocAttacherImplementation
provided by this module. By setting API_Ask_attachSourcesQuestion
key in
org/netbeans/modules/java/j2seplatform/api/Bundle.properties
one can control the function:
The key can be set by a branding file in your application build.
org.netbeans.modules.java.j2seplatform.api.API_Ask_attachJavadocQuestion -
Controls interaction when javadocs are about to be attached to a Classpath root, in
SourceJavadocAttacherImplementation
provided by this module. By setting API_Ask_attachJavadocQuestion
key in
org/netbeans/modules/java/j2seplatform/api/Bundle.properties
one can control the function:
The key can be set by a branding file in your application build.
The default answer to this question is:
These modules are required in project.xml:
None.
Question (dep-platform): On which platforms does your module run? Does it run in the same way on each? Answer:
Any. However some heuristics are used to find commands which are part of
target VMs, such as the java
launcher, or javac
;
normally they are searched for in the bin
subdirectory, appending
.exe
on Windows, but the search locations are different on Mac OS
X. Support for more exotic platforms would require patches to locate specific
tools; there is no general specification for where to find JDK/JRE commands on
different platforms or using VMs from different vendors.
1.4+. (But the Java platform definitions could be of any JDK version.)
Question (dep-jrejdk): Do you require the JDK or is the JRE enough? Answer:JRE. (The Java platform definitions may be of the JDK or JRE.)
Module JAR, plus a “probe JAR” used to retrieve system properties from a target JDK.
Question (deploy-nbm): Can you deploy an NBM via the Update Center? Answer:Yes.
Question (deploy-shared): Do you need to be installed in the shared location only, or in the user directory only, or can your module be installed anywhere? Answer:Anywhere.
Question (deploy-packages): Are packages of your module made inaccessible by not declaring them public? Answer:Only API and SPI packages are exported.
Question (deploy-dependencies): What do other modules need to do to declare a dependency on this one, in addition to or instead of the normal module dependency declaration (e.g. tokens to require)? Answer:N/A
Yes.
Question (compat-standards): Does the module implement or define any standards? Is the implementation exact or does it deviate somehow? Answer:No.
Question (compat-version): Can your module coexist with earlier and future versions of itself? Can you correctly read all old settings? Will future versions be able to read your current settings? Can you read or politely ignore settings stored by a future version? Answer:The Java platform type uses a versioned XML DTD.
There is no versioning information in the class library definition (beyond what the Project Libraries module provides). However there are only three defined volume types currently, and if more need to be added, they could be, or existing volume types could be ignored. The current code would not be able to ignore volume types added in the future, however.
Question (compat-deprecation): How the introduction of your project influences functionality provided by previous version of the product? WARNING: Question with id="compat-deprecation" has not been answered!java.io.File
directly?
Answer:
Yes, necessary in several contexts.
Question (resources-layer): Does your module provide own layer? Does it create any files or folders in it? What it is trying to communicate by that and with which components? Answer:Yes, just registration of items required by implemented SPIs.
Question (resources-read): Does your module read any resources from layers? For what purpose? Answer:No.
Question (resources-mask): Does your module mask/hide/override any resources provided by other modules in their layers? Answer:No.
Question (resources-preferences): Does your module uses preferences via Preferences API? Does your module use NbPreferences or or regular JDK Preferences ? Does it read, write or both ? Does it share preferences with other modules ? If so, then why ? WARNING: Question with id="resources-preferences" has not been answered!org.openide.util.Lookup
or any similar technology to find any components to communicate with? Which ones?
Answer:
The J2SE platform customizer lookups java.beans.Customizer
instances
registered in the org-netbeans-api-java/platform/j2seplatform/customizers/
folder on the system file system. These instances are added as additional tabs into the
J2SE platform customizer.
The J2SE platform consults instances of the J2SEPlatformDefaultJavadoc
registered in the org-netbeans-api-java/platform/j2seplatform/defaultJavadocProviders/
folder to suggest Javadoc roots when there are no Javadoc roots explicitly attached by an user.
Platform and library type definitions are registered, as are a number of queries relating to platforms and libraries. A default classpath provider is registered for Java sources which otherwise lack any specific classpath information.
Question (lookup-remove): Do you remove entries of other modules from lookup? Answer:No.
System.getProperty
) property?
On a similar note, is there something interesting that you
pass to java.util.logging.Logger
? Or do you observe
what others log?
Answer:
No, although system properties of a target J2SE VM are recorded.
Question (exec-component): Is execution of your code influenced by any (string) property of any of your components? Answer:
The java.util.Map
returned by the J2SEPlatformImpl.getProperties()
contains
property platform.ant.name
holding the name of the platform used by build scripts.
No.
Question (exec-reflection): Does your code use Java Reflection to execute other code? Answer:No.
Question (exec-privateaccess): Are you aware of any other parts of the system calling some of your methods by reflection? Answer:No.
Question (exec-process): Do you execute an external process from your module? How do you ensure that the result is the same on different platforms? Do you parse output? Do you depend on result code? Answer:
The J2SE platform wizard runs an autodetect probe to find the version number,
system properties, and other information about a target VM. This is a simple
prebuilt Java program run against the java
launcher of the target
VM. No I/O streams are used; the probe writes all information to a named
properties file and exits. (The exit code is checked.)
instanceof
,
work with java.lang.Class
, etc.)?
Answer:
No.
Question (exec-threading): What threading models, if any, does your module adhere to? How the project behaves with respect to threading? Answer:TBD
Question (security-policy): Does your functionality require modifications to the standard policy file? Answer:No.
Question (security-grant): Does your code grant additional rights to some other code? Answer:No.
Platform and library definitions, as mentioned in Overall Architecture.
Question (format-dnd): Which protocols (if any) does your code understand during Drag & Drop? Answer:None.
Question (format-clipboard): Which data flavors (if any) does your code read from or insert to the clipboard (by access to clipboard on means calling methods onjava.awt.datatransfer.Transferable
?
Answer:
None.
Yes, some information about registered platforms and libraries is mirrored to
${netbeans.user}/build.properties
for use from Ant.
No.
Question (perf-scale): Which external criteria influence the performance of your program (size of file in editor, number of files in menu, in source directory, etc.) and how well your code scales? Answer:Unknown.
Question (perf-limit): Are there any hard-coded or practical limits in the number or size of elements your code can handle? Answer:None known.
Question (perf-mem): How much memory does your component consume? Estimate with a relation to the number of windows, etc. Answer:Never measured; probably small.
Question (perf-wakeup): Does any piece of your code wake up periodically and do something even when the system is otherwise idle (no user interaction)? Answer:No.
Question (perf-progress): Does your module execute any long-running tasks? Answer:The platform probe can take a couple of seconds; invoked between wizard steps.
Question (perf-huge_dialogs): Does your module contain any dialogs or wizards with a large number of GUI controls such as combo boxes, lists, trees, or text areas? Answer:Nothing particularly big.
Question (perf-menus): Does your module use dynamically updated context menus, or context-sensitive actions with complicated and slow enablement logic? Answer:No.
Question (perf-spi): How the performance of the plugged in code will be enforced? Answer:N/A