<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>

   <extension
   		 point="org.eclipse.ui.navigator.viewer">
      <viewerContentBinding
         viewerId="org.eclipse.ui.navigator.ProjectExplorer">
         <includes>
           <contentExtension pattern="org.eclipse.jst.navigator.j2ee.ui.J2EEContent"/>
         </includes>
      </viewerContentBinding>
   </extension>
   
   <extension
         point="org.eclipse.ui.navigator.navigatorContent">
      <navigatorContent
            name="%extension.j2ee.name"
            priority="highest"
            icon="icons/J2EEPerspective.gif"
            activeByDefault="true"
            contentProvider="org.eclipse.jst.j2ee.navigator.internal.J2EEContentProvider"
            labelProvider="org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider"
            id="org.eclipse.jst.navigator.j2ee.ui.J2EEContent">
        <triggerPoints>
         <or>
          <instanceof value="java.io.File"/>
          <and>
           <instanceof value="org.eclipse.emf.ecore.EObject"/>
            <or>
        	  <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="common.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="application.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="client.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="modulemap.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="ejb.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="jca.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="webapplication.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="jsp.xmi"/>
	        </or>
	      </and>
          <and>
           <adapt type="org.eclipse.core.resources.IProject">
            <or>
               <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		  value="jst.web"/>
         	   <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		  value="jst.ejb"/> 
         	   <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		  value="jst.utility"/> 
         	   <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		  value="jst.ear"/> 
         	   <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		  value="jst.appclient"/> 
         	   <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		  value="jst.connector"/>   
            </or>
           </adapt>
          </and>
         </or>
        </triggerPoints>
        <possibleChildren>
         <or>
           <instanceof value="java.io.File"/>
           <and>
           <instanceof value="org.eclipse.emf.ecore.EObject"/>
            <or>
        	  <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="common.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="application.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="client.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="modulemap.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="ejb.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="jca.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="webapplication.xmi"/>
	          <test
                 forcePluginActivation="true"
                 property="org.eclipse.wst.common.emfworkbench.integration.emfPackage"
                 value="jsp.xmi"/>
	        </or>
	     </and>
	    </or>
        </possibleChildren> 
      <commonSorter
      		class="org.eclipse.jst.j2ee.navigator.internal.J2EEViewerSorter"
      		id="org.eclipse.jst.navigator.j2ee.ui.J2EEContent">
      		<parentExpression>
           		  <or>         
		            <instanceof 
		                  value="org.eclipse.jst.j2ee.internal.provider.J2EEItemProvider" />
		            <instanceof 
		                  value="org.eclipse.emf.ecore.EObject" />
		            <instanceof 
		                  value="org.eclipse.core.resources.IWorkspaceRoot" />  
		         </or>
		   </parentExpression>
      </commonSorter>   
      <actionProvider
            class="org.eclipse.jst.j2ee.navigator.internal.J2EEActionProvider"
            id="org.eclipse.jst.j2ee.navigator.ui.J2EEActionProvider">
         <enablement>
         	<or>
         	  <instanceof value="org.eclipse.emf.ecore.EObject" /> 
         	  <instanceof value="org.eclipse.jst.j2ee.internal.provider.J2EEItemProvider"/>  
            </or>
         </enablement>
      </actionProvider>
      <actionProvider
            class="org.eclipse.ui.internal.navigator.resources.actions.NewActionProvider"
            id="org.eclipse.jst.j2ee.navigator.internal.WebNewActionProvider">
         <enablement>
            <instanceof value="org.eclipse.jst.j2ee.internal.war.ui.util.WebGroupItemProvider"/>
         </enablement>
      </actionProvider>
      </navigatorContent>
      <!-- EJB New -->
      <commonWizard
            type="new"
            wizardId="org.eclipse.jst.ejb.ui.project.facet.EjbProjectWizard">
         <enablement>
           <or>
               <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
                <and>
                  <adapt type="org.eclipse.core.resources.IProject">
	               <or>
	                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         				 value="jst.ear"/>
	               </or>
	              </adapt>
                </and> 
               <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
           	   <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>
               <instanceof value="java.util.Collection"><instanceof value="java.util.Collection"><count value="0"/></instanceof></instanceof>
           </or>
         </enablement>
       </commonWizard>
       <!-- EJB Import -->
       <commonWizard
            type="import"
            wizardId="org.eclipse.jst.ejb.ui.internal.wizard.EJBComponentImportWizard">
         <enablement>
           <or>
               <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
               <and>
                 <adapt type="org.eclipse.core.resources.IProject">
	               <or>
	                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         				 value="jst.ear"/>
	               </or>
	             </adapt>
               </and> 
        	   <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
           	   <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>
               <instanceof value="java.util.Collection"><count value="0"/></instanceof>
            </or>
         </enablement>
       </commonWizard>
       <!-- EJB Export -->
       <commonWizard
            type="export"
            wizardId="org.eclipse.jst.ejb.ui.internal.wizard.EJBComponentExportWizard">
         <enablement>
           <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
                <adapt type="org.eclipse.core.resources.IProject">
                 <or>
	                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         				 value="jst.ejb"/>
	             </or>
	            </adapt>
             </and> 
             <instanceof value="org.eclipse.jst.j2ee.ejb.EJBJar"/>
           	 <instanceof value="org.eclipse.jst.j2ee.internal.ejb.provider.GroupedEJBItemProvider"/>
           </or>
         </enablement>
       </commonWizard>
       <!-- Add Enterprise Bean -->
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ejb.annotation.ui.internal.wizards.AddEjbWizard">
         <enablement>
          <or>
            <and>
	         <adapt type="org.eclipse.core.resources.IProject">
	           <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			value="jst.ejb"/>
         	 </adapt>
           </and>
           <instanceof value="org.eclipse.jst.j2ee.ejb.EJBJar"/>
           <instanceof value="org.eclipse.jst.j2ee.internal.ejb.provider.GroupedEJBItemProvider"/>         
          </or>
         </enablement>
       </commonWizard>
       <!-- Connector New -->
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorProjectWizard">
         <enablement>
           <or>
               <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
               <and>
                 <adapt type="org.eclipse.core.resources.IProject">
	               <or>
	                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         				 value="jst.ear"/>
	               </or>
	             </adapt>
               </and> 
               <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
           	   <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>
               <instanceof value="java.util.Collection"><count value="0"/></instanceof>
           </or>
         </enablement>
      </commonWizard>
      <!-- Connector import -->
      <commonWizard
            type="import"
            wizardId="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorComponentImportWizard">
         <enablement>
           <or>
               <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
               <and>
                 <adapt type="org.eclipse.core.resources.IProject">
	               <or>
	                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         				 value="jst.ear"/>
	               </or>
	             </adapt>
               </and> 
               <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
	           <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>
           	   <instanceof value="org.eclipse.jst.j2ee.jca.internal.impl.ResourceAdapterImpl"/>
               <instanceof value="java.util.Collection"><count value="0"/></instanceof>    
           </or>
         </enablement>
      </commonWizard>
      <!-- Connector Export -->
      <commonWizard
            type="export"
            wizardId="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorComponentExportWizard">
        <enablement>
          <or>
            <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
            <and>
              <adapt type="org.eclipse.core.resources.IProject">
                <or>
	              <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         		     value="jst.connector"/>
	            </or>
	          </adapt>
            </and> 
            <instanceof value="org.eclipse.jst.j2ee.jca.Connector"/>  
	        <instanceof value="org.eclipse.jst.j2ee.jca.internal.impl.ResourceAdapterImpl"/>
          </or>
        </enablement>
       </commonWizard>
       <!-- Web New -->
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.servlet.ui.project.facet.WebProjectWizard">
         <enablement>
           <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                <or>
                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			value="jst.web"/>
                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			value="jst.ear"/>
                </or>
               </adapt>
             </and> 
             <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
             <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>
             <instanceof value="java.util.Collection"><count value="0"/></instanceof>
           </or>
         </enablement>
       </commonWizard>
       <!-- New Servlet -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.servlet.ui.internal.wizard.AddServletWizard">
         <enablement>
           <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                  <or>
	                <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			   value="jst.web"/>
	             </or>
	           </adapt> 
             </and>
             <instanceof value="org.eclipse.jst.j2ee.webapplication.WebApp"/>
           	 <instanceof value="org.eclipse.jst.j2ee.internal.war.ui.util.WebServletGroupItemProvider"/>  	 
           </or>
         </enablement>
       </commonWizard>
       <!-- Web Import -->
       <commonWizard
            type="import"
            wizardId="org.eclipse.jst.servlet.ui.internal.wizard.WebComponentImportWizard">
         <enablement>
          <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                <or>
                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			value="jst.ear"/>
                </or>
               </adapt>
             </and>
           	 <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>
             <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
             <instanceof value="java.util.Collection"><count value="0"/></instanceof>   
          </or>
         </enablement>
      </commonWizard>
      <!-- Web Export -->
      <commonWizard
            type="export"
            wizardId="org.eclipse.jst.servlet.ui.internal.wizard.WebComponentExportWizard">
         <enablement>
          <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                 <or>
	                <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			   value="jst.web"/>
	             </or>
	           </adapt>
             </and>
             <instanceof value="org.eclipse.jst.j2ee.webapplication.WebApp"/>
             <instanceof value="org.eclipse.jst.j2ee.internal.war.ui.util.WebGroupItemProvider"/> 
            </or>
         </enablement>
       </commonWizard>
       <!-- EAR New -->
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ui.project.facet.EarProjectWizard">
         <enablement>
          <or> 
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <instanceof value="java.util.Collection"><count value="0"/></instanceof>
          </or>
         </enablement>
       </commonWizard>
       <!-- AppClient New -->
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ui.project.facet.appclient.AppClientProjectWizard">
         <enablement>
           <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                <or>
                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			 value="jst.ear"/>
                </or>
               </adapt>
             </and> 
             <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
           	 <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/> 
           	 <instanceof value="java.util.Collection"><count value="0"/></instanceof>
           </or>
         </enablement>
       </commonWizard>
       <!-- EAR Import -->
       <commonWizard
            type="import"
            wizardId="org.eclipse.jst.j2ee.internal.wizard.EARComponentImportWizard">
         <enablement>
           <or> 
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>   
             <instanceof value="java.util.Collection"><count value="0"/></instanceof>   
           </or>
         </enablement>
       </commonWizard>
       <!-- App Client Import -->
       <commonWizard
            type="import"
            wizardId="org.eclipse.jst.j2ee.internal.wizard.AppClientComponentImportWizard">
         <enablement>
           <or> 
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                <or>
                  <test 
                 		 forcePluginActivation="true"
                 		 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			 value="jst.ear"/>
                </or>
               </adapt>
             </and>
             <instanceof value="org.eclipse.jst.j2ee.application.Application"/>   
           	 <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>  
             <instanceof value="java.util.Collection"><count value="0"/></instanceof>   
           </or>
         </enablement>
       </commonWizard>
        <!-- Utility Jar Import -->
       <commonWizard
            type="import"
            wizardId="org.eclipse.jst.j2ee.ui.J2EEUtilityJarImportWizard">
         <enablement>
           <or> 
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                <or>
                  <test 
                 	 forcePluginActivation="true"
                 	 property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			 value="jst.ear"/> 
                </or>
               </adapt>
             </and>
             <instanceof value="org.eclipse.jst.j2ee.application.Application"/>   
             <instanceof value="org.eclipse.jst.j2ee.application.Module"/>  
           	 <instanceof value="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider"/>  
             <instanceof value="java.util.Collection"><count value="0"/></instanceof>   
           </or>
         </enablement>
       </commonWizard>        
        
         
      <!-- EAR export -->
      <commonWizard
            type="export"
            wizardId="org.eclipse.jst.j2ee.internal.wizard.EARComponentExportWizard">
         <enablement>
          <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                 <or>
	                <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			    value="jst.ear"/>
	             </or>
	           </adapt> 
             </and> 
             <instanceof value="org.eclipse.jst.j2ee.application.Application"/>
           </or>
         </enablement>
       </commonWizard>
       <!-- App Client export -->
       <commonWizard
            type="export"
            wizardId="org.eclipse.jst.j2ee.internal.wizard.AppClientComponentExportWizard">
         <enablement>
           <or>
             <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/>
             <and>
               <adapt type="org.eclipse.core.resources.IProject">
                 <or>
	               <test 
	                	forcePluginActivation="true"
	                	property="org.eclipse.wst.common.project.facet.core.projectFacet"
         			  value="jst.appclient"/>
	             </or>
	           </adapt> 
             </and>
             <instanceof value="org.eclipse.jst.j2ee.client.ApplicationClient"/>    
           </or>
         </enablement>
       </commonWizard>
       
       <!-- The contribution of the New *.jsp wizard to Files, Folders, and Projects 
       		is handled in org.eclipse.jst.jsp.ui. This contribution adds the 
       		wizard to the model elements contributed by the J2EE Content Provider -->
	   <commonWizard
			type="new"
			wizardId="org.eclipse.jst.jsp.ui.internal.wizard.NewJSPWizard">
			<enablement>
				<or>
		            <instanceof 
		            	value="org.eclipse.jst.j2ee.internal.war.ui.util.WebGroupItemProvider"/>
		            				            
		            <instanceof 
		            	value="org.eclipse.jst.j2ee.webapplication.WebApp"/>					

				</or>
			</enablement>
		</commonWizard>
		
      <!-- The contribution of the New *.html wizard to Files, Folders, and Projects 
       		is handled in org.eclipse.jst.html.ui. This contribution adds the 
       		wizard to the model elements contributed by the J2EE Content Provider -->		
		<commonWizard
			type="new"
			wizardId="org.eclipse.wst.html.ui.internal.wizard.NewHTMLWizard">
			<enablement>
				<or>
		            <instanceof 
		            	value="org.eclipse.jst.j2ee.internal.war.ui.util.WebGroupItemProvider"/>		            
		            <instanceof 
		            	value="org.eclipse.jst.j2ee.webapplication.WebApp"/>
				</or>
			</enablement>		
		</commonWizard>
   </extension>
   
  <extension 
  		point="org.eclipse.core.runtime.adapters">
    <factory 
      class="org.eclipse.jst.j2ee.navigator.internal.J2EEEMFAdapterFactory" 
      adaptableType="org.eclipse.jst.j2ee.ejb.EJBJar">
      <adapter type="org.eclipse.core.resources.IFile"/>
    </factory>
    <factory 
      class="org.eclipse.jst.j2ee.navigator.internal.J2EEEMFAdapterFactory" 
      adaptableType="org.eclipse.jst.j2ee.webapplication.WebApp">
      <adapter type="org.eclipse.core.resources.IFile"/>
    </factory>
    <factory 
      class="org.eclipse.jst.j2ee.navigator.internal.J2EEEMFAdapterFactory" 
      adaptableType="org.eclipse.jst.j2ee.client.ApplicationClient">
      <adapter type="org.eclipse.core.resources.IFile"/>
    </factory>
    <factory 
      class="org.eclipse.jst.j2ee.navigator.internal.J2EEEMFAdapterFactory" 
      adaptableType="org.eclipse.jst.j2ee.jca.Connector">
      <adapter type="org.eclipse.core.resources.IFile"/>
    </factory>
    <factory 
      class="org.eclipse.jst.j2ee.navigator.internal.J2EEEMFAdapterFactory" 
      adaptableType="org.eclipse.jst.j2ee.application.Application">
      <adapter type="org.eclipse.core.resources.IFile"/>
    </factory>
  </extension>
   
<!-- Drop Adapter for Adding Modules to EARs -->
 <!--  <extension
         id="org.eclipse.jst.j2ee.internal.ui.navigator.addModule.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.AddModuleDropAction"
            id="org.eclipse.jst.j2ee.internal.ui.navigator.addModule.dropHandler"
            name="%J2EE_Add_Module"
            description="%Adds_J2EE_modules_to_EAR_projects">
         <dragEnablement>
            <or>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.client.ApplicationClient">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.jca.Connector">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.ejb.EJBJar">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.webapplication.WebApp">
                  </objectClass>
               </or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <or>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.EARNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ejb.EJBNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ApplicationClientNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.web.WebNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.jca.ConnectorNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jdt.core.javanature">
                     </objectState>
                  </or>
               </and>
            </or>
         </dragEnablement>
         <dropEnablement
            validatorClass="org.eclipse.jst.j2ee.navigator.internal.dnd.AddModuleDropAction">
            <or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <objectState
                        name="projectNature"
                        value="org.eclipse.jst.j2ee.EARNature">
                  </objectState>
               </and>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.application.Application">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.earcreation.modulemap.EARProjectMap">
                  </objectClass>
               </or>
            </or>
         </dropEnablement>
         <serializers>
            <serializer
                  class="org.eclipse.jst.j2ee.navigator.internal.dnd.ModuleIdentifierSerializer"
                  id="org.eclipse.jst.j2ee.navigator.internal.dnd.ModuleIdentifierSerializer">
            </serializer>
         </serializers>
      </dropHandler>
   </extension> -->
   <!-- Drop Adapter for Adding Utility Jars to EARs -->
<!--   <extension
         id="org.eclipse.jst.navigator.j2ee.dnd.addUtilityJar.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.AddUtilityJarDropAction"
            id="org.eclipse.jst.j2ee.internal.ui.navigator.addUtilityJar.dropHandler"
            name="%J2EE_Add_Utility_Jar"
            description="%Adds_Utility_Jars_to_EAR_projects">
         <dragEnablement>
            <or>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.client.ApplicationClient">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.jca.Connector">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.ejb.EJBJar">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.webapplication.WebApp">
                  </objectClass>
               </or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <objectState
                        name="projectNature"
                        value="org.eclipse.jdt.core.javanature">
                  </objectState>
               </and>
            </or>
         </dragEnablement>
         <dropEnablement
            validatorClass="org.eclipse.jst.j2ee.navigator.internal.dnd.AddUtilityJarDropAction">
            <or>
               <and>
                  <objectClass
                        name="org.eclipse.core.resources.IProject">
                  </objectClass>
                  <objectState
                        name="projectNature"
                        value="org.eclipse.jst.j2ee.EARNature">
                  </objectState>
               </and>
               <or>
                  <objectClass
                        name="org.eclipse.jst.j2ee.application.Application">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.earcreation.modulemap.EARProjectMap">
                  </objectClass>
                  <objectClass
                        name="org.eclipse.jst.j2ee.internal.provider.J2EEUtilityJarItemProvider">
                  </objectClass>
               </or>
            </or>
         </dropEnablement>
         <serializers>
            <serializer
                  class="org.eclipse.jst.navigator.j2ee.dnd.ModuleIdentifierSerializer"
                  id="org.eclipse.jst.navigator.j2ee.dnd.utilityJarIdentifierSerializer">
            </serializer>
         </serializers>
      </dropHandler>
   </extension>
   <extension
         id="org.eclipse.jst.navigator.j2ee.dnd.utilityJarImport.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.AddExternalUtilityJarDropAction"
            id="org.eclipse.jst.j2ee.navigator.internal.dnd.utilityJarImport.dropHandler"
            name="%J2EE_Utility_Jar_Import"
            description="%Import_a_jar_file_UI_">
         <dropEnablement>
            <or>
               <objectClass
                     name="org.eclipse.jst.j2ee.application.Application">
               </objectClass>
               <objectClass
                     name="org.eclipse.jst.j2ee.internal.provider.J2EEUtilityJarItemProvider">
               </objectClass>
            </or>
         </dropEnablement>
      </dropHandler>
   </extension>
   <extension
         id="org.eclipse.jst.navigator.j2ee.dnd.j2eeImport.dropHandler"
         point="org.eclipse.wst.common.navigator.views.dropHandler">
      <dropHandler
            class="org.eclipse.jst.j2ee.navigator.internal.dnd.J2EEImportDropAction"
            id="org.eclipse.jst.j2ee.navigator.internal.dnd.j2eeImport.dropHandler"
            name="%J2EE_Import"
            description="%J2EE_IMPORT_MESSAGE">
         <dropEnablement>
            <or>
               <and>
                  <or>
	                  <objectClass
    	                    name="org.eclipse.core.resources.IProject">
        	          </objectClass>
            	      <objectClass
                	        name="org.eclipse.wst.common.navigator.internal.groups.NavigatorGroup">
	                  </objectClass>
                  </or>
                  <or>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.EARNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ejb.EJBNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.ApplicationClientNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.web.WebNature">
                     </objectState>
                     <objectState
                           name="projectNature"
                           value="org.eclipse.jst.j2ee.jca.ConnectorNature">
                     </objectState>
                  </or>
               </and>
              <objectClass
                    name="org.eclipse.jst.j2ee.internal.provider.ModulesItemProvider">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.application.Application">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.client.ApplicationClient">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.jca.Connector">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.ejb.EJBJar">
              </objectClass>
              <objectClass
                    name="org.eclipse.jst.j2ee.webapplication.WebApp">
              </objectClass>
            </or>
         </dropEnablement>
      </dropHandler>
   </extension>
   -->
   
<!-- ====================================================== -->
<!--           Label Decorators                             -->
<!-- ====================================================== -->
   <extension
         point="org.eclipse.ui.decorators">
      <decorator
            adaptable="true"
            location="TOP_LEFT"
            lightweight="true"
            label="%j2eeProjectDecorator"
            state="true"
            class="org.eclipse.jst.j2ee.navigator.internal.J2EEProjectDecorator"
            id="org.eclipse.jst.j2ee.navigator.internal.J2EEProjectDecorator">
         <enablement>
           <or>
            <objectClass name="org.eclipse.core.resources.IProject"/>
            <objectClass name="org.eclipse.jdt.core.IJavaProject"/>
           </or>
         </enablement>
         <description>
            %j2eeProjectDecorator.description
         </description>
      </decorator>
   </extension>
     
</plugin>


