NetBeans 模块开发--layer.xml文件介绍
2007-05-31 15:19
441 查看
layer.xml 是netbeans开发富客户端应用程序非常重要的配置文件。 layer.xml定义了目录和文件组成netbeans运行时的配置信息和富客户端应用程序使用的信息。
下来看看layer.xml的自动生成,在上篇《NetBeans 模块开发简介》中,layer.xml的内容就是完全根据向导设置生成的,右键点击工程->netbeans 模块开发->Action(为菜单,工具栏等添加事件动作),在“GUI 注册”选择全局菜单,全局工具栏,为layer.xml生成如下内容:
<folder name="Actions">
<folder name="Tools">
<file name="org-stoneyang-nbplugin-MyFirstAction.instance"/>
</folder>
</folder>
<folder name="Menu">
<folder name="Tools">
<attr name="org-openide-actions-ToolsAction.instance/org-stoneyang-nbplugin-separatorBefore.instance" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-separatorBefore.instance">
<attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
</file>
<attr name="org-stoneyang-nbplugin-separatorBefore.instance/org-stoneyang-nbplugin-MyFirstAction.shadow" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-MyFirstAction.shadow">
<attr name="originalFile" stringvalue="Actions/Tools/org-stoneyang-nbplugin-MyFirstAction.instance"/>
</file>
<attr name="org-stoneyang-nbplugin-MyFirstAction.shadow/org-stoneyang-nbplugin-separatorAfter.instance" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-separatorAfter.instance">
<attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
</file>
<attr name="org-stoneyang-nbplugin-separatorAfter.instance/Separator1.instance" boolvalue="true"/>
</folder>
</folder>
<folder name="Toolbars">
<folder name="Build">
<attr name="org-netbeans-modules-project-ui-RunMainProject.shadow/org-stoneyang-nbplugin-MyFirstAction.shadow" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-MyFirstAction.shadow">
<attr name="originalFile" stringvalue="Actions/Tools/org-stoneyang-nbplugin-MyFirstAction.instance"/>
</file>
<attr name="org-stoneyang-nbplugin-MyFirstAction.shadow/org-netbeans-modules-project-ui-DebugMainProject.shadow" boolvalue="true"/>
</folder>
</folder>
netbeans使用虚拟文件结构表示使用者文件和netbeans本身配置文件。 我们可以想象netbeans本身可以这样表示:
<filesystem>
<folder name="Actions">
。。。
</folder>
<folder name="Menu">
。。。
</folder>
<folder name="Toolbars">
。。。
</folder>
<folder name="...">
。。。
</folder>
<filesystem>
回过头来看看layer.xml的内容,它特有的表示法,也就是將所有的『 . 』换成『 - 』。类似于文件结构,要在一个特定的菜单下加入一个菜单项,需要在其folder节点下添加file节点,然后添加相应的属性,originalFile属性说明调用的实际java类。
layer.xml最重要的作用是使得应用动态安装成为可能,开发者可以监听文件系统中目录和文件的变化,当应用处于运行时,UI就会更新来反映相应的变化。
现在高版本的netbeans会自动生成layer.xml,自己可以手动添加自己需要的内容,而不需使用向导,例如在开发服务器管理插件时,我们可以手动添加如下内容:
<folder name="J2EE">
<folder name="DeploymentPlugins">
<folder name="MyServer">
<file name="Descriptor" url="nbdep.xml"/>
<file name="Factory.instance">
<attr name="instanceCreate" methodvalue="org.stoneyang.yqserver.MyDeploymentFactory.create"/>
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.MyDeploymentFactory"/>
<attr name="instanceOf" stringvalue="javax.enterprise.deploy.spi.factories.DeploymentFactory"/>
</file>
<file name="RegistryNodeFactory.instance">
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.nodes.MyRegistryNodeFactory"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.RegistryNodeFactory"/>
</file>
<file name="J2eePlatformFactory.instance">
<attr name="instanceCreate" newvalue="org.stoneyang.yqserver.MyJ2eePlatformFactory"/>
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.MyJ2eePlatformFactory"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.J2eePlatformFactory"/>
</file>
<file name="OptionalFactory.instance">
<attr name="instanceCreate" newvalue="org.stoneyang.yqserver.MyOptionalFactory"/>
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.MyOptionalFactory"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.OptionalDeploymentManagerFactory"/>
</file>
<file name="ConfigurationSupportImpl.instance">
<attr name="instanceCreate" newvalue="org.stoneyang.yqserver.ConfigurationSupportImpl"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.ConfigurationSupport"/>
</file>
<folder name="DeploymentFileNames">
<folder name="WAR">
<file name="WEB-INFmyserver-web.xml"/>
</folder>
</folder>
</folder>
</folder>
</folder>
最后,layer.xml的存放位置可以随意改动,在工程的模块清单中修改
下来看看layer.xml的自动生成,在上篇《NetBeans 模块开发简介》中,layer.xml的内容就是完全根据向导设置生成的,右键点击工程->netbeans 模块开发->Action(为菜单,工具栏等添加事件动作),在“GUI 注册”选择全局菜单,全局工具栏,为layer.xml生成如下内容:
<folder name="Actions">
<folder name="Tools">
<file name="org-stoneyang-nbplugin-MyFirstAction.instance"/>
</folder>
</folder>
<folder name="Menu">
<folder name="Tools">
<attr name="org-openide-actions-ToolsAction.instance/org-stoneyang-nbplugin-separatorBefore.instance" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-separatorBefore.instance">
<attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
</file>
<attr name="org-stoneyang-nbplugin-separatorBefore.instance/org-stoneyang-nbplugin-MyFirstAction.shadow" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-MyFirstAction.shadow">
<attr name="originalFile" stringvalue="Actions/Tools/org-stoneyang-nbplugin-MyFirstAction.instance"/>
</file>
<attr name="org-stoneyang-nbplugin-MyFirstAction.shadow/org-stoneyang-nbplugin-separatorAfter.instance" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-separatorAfter.instance">
<attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
</file>
<attr name="org-stoneyang-nbplugin-separatorAfter.instance/Separator1.instance" boolvalue="true"/>
</folder>
</folder>
<folder name="Toolbars">
<folder name="Build">
<attr name="org-netbeans-modules-project-ui-RunMainProject.shadow/org-stoneyang-nbplugin-MyFirstAction.shadow" boolvalue="true"/>
<file name="org-stoneyang-nbplugin-MyFirstAction.shadow">
<attr name="originalFile" stringvalue="Actions/Tools/org-stoneyang-nbplugin-MyFirstAction.instance"/>
</file>
<attr name="org-stoneyang-nbplugin-MyFirstAction.shadow/org-netbeans-modules-project-ui-DebugMainProject.shadow" boolvalue="true"/>
</folder>
</folder>
netbeans使用虚拟文件结构表示使用者文件和netbeans本身配置文件。 我们可以想象netbeans本身可以这样表示:
<filesystem>
<folder name="Actions">
。。。
</folder>
<folder name="Menu">
。。。
</folder>
<folder name="Toolbars">
。。。
</folder>
<folder name="...">
。。。
</folder>
<filesystem>
回过头来看看layer.xml的内容,它特有的表示法,也就是將所有的『 . 』换成『 - 』。类似于文件结构,要在一个特定的菜单下加入一个菜单项,需要在其folder节点下添加file节点,然后添加相应的属性,originalFile属性说明调用的实际java类。
layer.xml最重要的作用是使得应用动态安装成为可能,开发者可以监听文件系统中目录和文件的变化,当应用处于运行时,UI就会更新来反映相应的变化。
现在高版本的netbeans会自动生成layer.xml,自己可以手动添加自己需要的内容,而不需使用向导,例如在开发服务器管理插件时,我们可以手动添加如下内容:
<folder name="J2EE">
<folder name="DeploymentPlugins">
<folder name="MyServer">
<file name="Descriptor" url="nbdep.xml"/>
<file name="Factory.instance">
<attr name="instanceCreate" methodvalue="org.stoneyang.yqserver.MyDeploymentFactory.create"/>
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.MyDeploymentFactory"/>
<attr name="instanceOf" stringvalue="javax.enterprise.deploy.spi.factories.DeploymentFactory"/>
</file>
<file name="RegistryNodeFactory.instance">
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.nodes.MyRegistryNodeFactory"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.RegistryNodeFactory"/>
</file>
<file name="J2eePlatformFactory.instance">
<attr name="instanceCreate" newvalue="org.stoneyang.yqserver.MyJ2eePlatformFactory"/>
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.MyJ2eePlatformFactory"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.J2eePlatformFactory"/>
</file>
<file name="OptionalFactory.instance">
<attr name="instanceCreate" newvalue="org.stoneyang.yqserver.MyOptionalFactory"/>
<attr name="instanceClass" stringvalue="org.stoneyang.yqserver.MyOptionalFactory"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.OptionalDeploymentManagerFactory"/>
</file>
<file name="ConfigurationSupportImpl.instance">
<attr name="instanceCreate" newvalue="org.stoneyang.yqserver.ConfigurationSupportImpl"/>
<attr name="instanceOf" stringvalue="org.netbeans.modules.j2ee.deployment.plugins.api.ConfigurationSupport"/>
</file>
<folder name="DeploymentFileNames">
<folder name="WAR">
<file name="WEB-INFmyserver-web.xml"/>
</folder>
</folder>
</folder>
</folder>
</folder>
最后,layer.xml的存放位置可以随意改动,在工程的模块清单中修改
OpenIDE-Module-Layer:对应值即可
相关文章推荐
- python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
- Magento 新闻模块开发教程 (四) 创建模块的xml配置文件
- ionic开发介绍之Config.xml文件关于splash和icon(实现手动关闭splash)
- python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
- python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
- DuiVision开发教程(3)-XML资源文件定义介绍
- phpcms模块开发之swfupload的使用介绍_PHP教程
- Maven的settings.xml文件介绍
- 04 Mybatis应用篇---XML映射文件之select,insert,update,delete基础介绍
- C# WinForm开发中使用XML配置文件实例
- Flex开发技术:读取XML配置文件
- Android开发之XML文件的解析的三种方法
- android的AndroidManifest.xml文件介绍
- corethink功能模块探索开发(十七)opencmf.php 配置文件
- android的AndroidManifest.xml文件介绍
- [DNN模块开发]如何写dnn文件
- [DNN模块开发]如何写dnn文件
- 【Android LibGDX游戏引擎开发教程】第04期:各个模块的详细介绍
- ThinkPHP -- 开发初体验及其几个配置文件的介绍
- 【Win 10应用开发】把文件嵌入到XML文档