J2EE Deployment Plugin Info Declared in Module layer XML file

Plugin info:

To register the standard J2EE Deployment API implementation, the NetBeans module need to have the following  folders, files and attributes under folder filesystem/J2EE/DeploymentPlugins/[plugin-name]:

1.  A file entry 'Descriptor' for relative location of the additional descriptor XML file:
    <file name="Descriptor" url="nbdep.xml">
      <attr name="needsFindServerUI" stringvalue="true"/> <!-- default is false -->
    </file>

2.  NetBeans instance class declaration of DeploymentFactory SPI:
    <file name="Factory.instance">
      <attr name="instanceClass"
        stringvalue="org.netbeans.tests.j2eeserver.plugin.jsr88.DepFactory"/>
    </file>

See also org.netbeans.modules.j2ee.deployment.plugins.spi.support.ProxyDeploymentFactory.

3.  NetBeans instance class declaration of RegistryNodeFactory:
    <file name="TestRegistryNodeFactory.instance">
      <attr name="instanceClass" stringvalue="org.netbeans.tests.j2eeserver.plugin.registry.NodeFactory"/>
      <attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.RegistryNodeFactory"/>
    </file>

4.  NetBeans instance class declaration of OptionalDeploymentManagerFactory:
    <file name="OptionalFactory.instance">
      <attr name="instanceClass" stringvalue="org.netbeans.tests.j2eeserver.plugin.ManagerWrapperFactory"/>
      <attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.OptionalDeploymentManagerFactory"/>
    </file>

5.  NetBeans instance class declaration of J2eePlatformFactory:
    <file name="PlatformFactory.instance">
      <attr name="instanceClass" stringvalue="org.netbeans.tests.j2eeserver.plugin.PlatformFactory"/>
      <attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.J2eePlatformFactory"/>
    </file>

6.  A folder entry 'DeployementFileNames' with subfolders 'WAR', 'EJB' or 'EAR' for server specific deployment descriptor filenames:
    <folder name="DeploymentFileNames">
      <folder name="WAR">
        <file name="WEB-INF/sun-web.xml"/>
      </folder>
    </folder>


Plugin pre-installed server instance info:

To pre-declare a default admin server instance, have a file under folder /filesystem/J2EE/InstalledServers:

 <filesystem>

   <J2EE>
    <folder name="InstalledServers">
        <file name="FooServer1">
            <attr name="url" stringvalue="fooservice:locahost:1234"/>
            <attr name="username" stringvalue="Adminuser"/>
            <attr name="password" stringvalue="Adminpasswd"/>
        </file>
    </folder>
  </J2EE>
</filesystem>

Declare default server instance through NetBeans installer:

The installer could add an entry for 'j2eeserver.defautl' in <netbeans>/system/install.properties to specify default server instance configured at post-install time or at package time.  For example, if the entry value is:

j2eeserver.default=config/J2EE/InstalledServers/J2EESDK.properties

The file J2EESDK.properties should contains entries for j2eeserver-defined properties like 'serverName', 'url', 'username', 'password', or any plugin-defined instance properties:

serverName=J2EESDK
url=deployer:Sun:AppServer::localhost:4848
username=admin
password=adminadmin

The J2EESDK instance with the specifed url will be created if not already exist and will have the specify properties values.  These value will override the values preset in the plugin layer.xml file.