|
|
The entire API is one public package. ModulesAPI
The implementation is in another package and is not considered
public, though it is made available to autoupdate
and
apisupport
as these special modules deal directly with
the module system at a deeper level than the API provides for.
CoreModulesAPI
java.io.File
directly?
Answer:
Yes, module JARs and associated resource JARs must be real files.
They are automatically loaded from the modules/ and
modules/eager/ and modules/autoload/
subdirectories of both the NetBeans installation and user
directories. This fact is not a part of the public API. However it is
fairly stable and is relied upon by the build scripts and by the
format of NBM files used by the autoupdate
module, and
is maintained for compatibility of old user directories as well.
Module enablement XML files are loaded via Filesystems. The public
API (partially) specifies them only in these terms.
autoupdate
uses Filesystems to manipulate them when
necessary, though it relies on some additional
implementation-specific knowledge of their format (which is fairly
stable, especially since changes are limited by compatibility
constraints on old user directories). The NetBeans build scripts use
some additional implementation knowledge to pregenerate suitable XML
files for modules included in the application distribution.
org.openide.util.Lookup
or any similar technology to find any components to communicate with? Which ones?
Answer:
All registered InstalledFileLocator
instances are queried and used
to implement InstalledFileLocator.getDefault()
.
Question (lookup-register):
Do you register anything into lookup for other code to find?
Answer:
TestModuleDeployer
(from META-INF), used by apisupportInstalledFileLocator
(from META-INF), used by its public default methodModuleInfo
, via a custom lookup insertion (specified in API)ClassLoader
, via a custom lookup insertion (used broadly)System.getProperty
) property?
Answer:
netbeans.home
-
NetBeans installation directory.
netbeans.user
-
User directory.
netbeans.dirs
-
Additional installation component directories.
netbeans.systemclassloader.patches
-
Classpath appended to the system class loader.
Used for automated testing infrastructure.
netbeans.classpath
-
May be used to prepend items to the same class loader as is used
for openide.jar and core.jar, similarly
to JARs found in lib/patches/.
netbeans.cache.manifests
-
By default true, may be turned off to disable manifest caching.
netbeans.patches.MODULE.CODE.NAME.BASE
-
Patch directories or JARs to add to the class loader for a module,
besides patches/MODULE-CODE-NAME-BASE/*.jar.
netbeans.preresolve.classes
-
If true, all module classes are forcibly loaded at startup, to help
detect possible linkage errors.
org.netbeans.core.modules.NbInstaller.noAutoDeps
-
Disables automatic module dependency upgrades.
org.netbeans.core.modules
-
If set to 0, enables logging for the module system.
org.netbeans.core.modules.NbInstaller.NO_COMPAT_AUTO_TRANSITIVE_DEPS
-
Disabled automatic transitive class loader dependencies for old modules.
netbeans.modules.quiet
-
Avoids text messaging (other than ErrorManager
logging) to the console
from the module system.
netbeans.moduleitem.dontverifyclassloader
-
Suppresses checks to ensure that module section classes are actually loaded
from the module itself.
netbeans.full.hack
-
Avoids using GUI when user-visible error conditions occur.
netbeans.mainclass
-
Name of class from core.jar which will handle most of the
startup sequence; by default, org.netbeans.core.Main.
netbeans.security.nocheck
-
Suppress security checks in the VM, even from "untrusted" code.
netbeans.classloader.verbose
-
Prints messages when resources or classes are loaded from JARs.
netbeans.cache.layers
-
Used to control the XML layer cache mechanism. Value may be a
fully-qualified class name to load as a manager (implement
org.netbeans.core.projects.cache.LayerCacheManager
),
or -
to disable caching and always parse the XML
layers directly. Current default is to use a binary cache
manager.
instanceof
,
work with java.lang.Class
, etc.)?
WARNING: Question with id="exec-introspection" has not been answered!
Question (exec-threading):
What threading models, if any, does your module adhere to?
WARNING: Question with id="exec-threading" has not been answered!
Question (security-policy):
Does your functionality require modifications to the standard policy file?
WARNING: Question with id="security-policy" has not been answered!
Question (security-grant):
Does your code grant additional rights to some other code?
WARNING: Question with id="security-grant" has not been answered!ModuleInstall
s (deprecated)java.awt.datatransfer.Transferable
?
Answer:
N/A
org.netbeans.core.ui.ModuleBean
is a Swing-safe bean that serves as a nonblocking wrapper for all module system
modifications and is used e.g. in the Modules node.
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:
No. Occasionally small dialogs only.
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?
WARNING: Question with id="perf-spi" has not been answered!Built on May 4 2005. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.