NetBeans 模块开发--layer.xml文件介绍

        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的存放位置可以随意改动,在工程的模块清单中修改
OpenIDE-Module-Layer:对应值即可
  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值