ServiceTypecan be used arbitrary object , that cooperate with convertor. Infrastracture for convertos is in core-settings.jar. Question (deploy-nbm): Can you deploy an NBM via the Update Center? Answer: openide.nbm and core.nbm) are reachable via the Update Center . 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: openide.jar and core.jar must be in the shared location as it is part of the core of NetBeans. core-settings.jar.jar can be anywhere. Question (deploy-packages): Are packages of your module made inaccessible by not declaring them public? Answer:
ServiceTypeis publicly accessible. The settings infrastructure resides in core and is considered private except
InstanceDataObjectwhich is in Datasystems, which is public. Infrastracture for convertos is in core-settings.jar exposes some packages explicitly declaring them in manifest, which means that all other packages are inaccessible. 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)? WARNING: Question with id="deploy-dependencies" has not been answered!
java.io.Filedirectly? Answer: No. 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: Provided layers:
org.openide.util.Lookupor any similar technology to find any components to communicate with? Which ones? Answer:
InstanceDataObject.createSettingsFileis looked up
ServiceType.Registryto be sure, that ServiceType is unique.
ClassLoaderis looked up often to find
Environment.Providerwhich is ultimately used to provide
Lookup, that provides
InstanceCookie. This is a second way how can mainly
InstanceDataObjectcall outside implementation (first one are method calls by reflection). 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: Neither java system nor (
System.getProperty) property. But attributes attached to
FileObjectare used for configuration. This configuration is too complex and can't be separated from entity registration and so on. So, here is description of configuration. Question (exec-component): Is execution of your code influenced by any (string) property of any of your components? Answer: No. Question (exec-ant-tasks): Do you define or register any ant tasks that other can use? WARNING: Question with id="exec-ant-tasks" has not been answered! Question (exec-classloader): Does your code create its own class loader(s)? Answer: No. Question (exec-reflection): Does your code use Java Reflection to execute other code? Answer: Yes reflection is used heavily.
newInstanceor factory method, that is defined in setting file.
addPropertyChangeListeneron setting instances. There is also called pair method
XMLPropertiesConvertoris used for settings based on xml with grammar defined by
-//NetBeans org.netbeans.modules.settings.examples//DTD XML ProxySettings 1.0//EN, then methods
writePropertiesis used on instance of setting.
InstanceDataObjectthat comes from openide.jar, calls method responsible for storing setting on disk. This method is expected to have following decaration
public void methodName (java.io.Writer w, Object inst). Which method and from which module is invoked depends on configuration.
InstanceCookie. Then method
setInstanceis invoked on instance of
InstanceCookie. This binds instance of setting to setting infrastructure. Which
Lookupand then also which
InstanceCookieis used depends again on cofiguration. description of configuration.
instanceof, work with
java.lang.Class, etc.)? Answer: No answer Question (exec-threading): What threading models, if any, does your module adhere to? How the project behaves with respect to threading? 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!
java.awt.datatransfer.Transferable? Answer: No special implementation.