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

     <extension-point id="componentWorkingSet" name="Component Working Set" schema="schema/componentWorkingSet.exsd"/>
   
<!-- 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>
   
   <extension
         point="org.eclipse.wst.common.navigator.views.navigatorContent">
      <navigatorContent
            name="%extension.j2ee.name"
            priority="higher"
            icon="icons/J2EEPerspective.gif" 
            contentProvider="org.eclipse.jst.j2ee.navigator.internal.J2EEContentProvider"
            labelProvider="org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider"
            actionProvider="org.eclipse.jst.j2ee.navigator.internal.J2EEActionProvider"
            openListener="org.eclipse.jst.j2ee.internal.actions.J2EEResourceOpenListener"
            id="org.eclipse.jst.navigator.j2ee.ui.J2EEContent.experimental">
         <enables>
         <or>
            <and>
               <objectClass
                     name="org.eclipse.core.resources.IProject">
               </objectClass>
               <or>
                  <objectState
                        name="nature"
                        value="org.eclipse.wst.common.modulecore.ModuleCoreNature">
                  </objectState>
              
               </or>
            </and>   
            <objectClass
                    adaptable="true"
                  	name="java.io.File">
            </objectClass>   
            <objectClass name="org.eclipse.jst.j2ee.internal.ejb.provider.J2EEJavaClassProviderHelper" />      
            </or>
         </enables>
         
         <emfEnablement>
         	<package uri="org.eclipse.emf.ecore.resource" />
         	<package uri="common.xmi" />         	
         	<package uri="application.xmi" />         	         	
         	<package uri="client.xmi" />         	         	
         	<package uri="modulemap.xmi" />           	
         	<package uri="ejb.xmi" />                 	
         	<package uri="jca.xmi" />                 	
         	<package uri="webapplication.xmi" />                 	
         	<package uri="jsp.xmi" />    
          <package uri="commonext.xmi" />
          <package uri="localtran.xmi" />          
          <package uri="ejbext.xmi" />                    
          <package uri="webappext.xmi" />                    
          <package uri="applicationext.xmi" />            
          <package uri="applicationclientext.xmi" />                  
          <package uri="ejbbnd.xmi" />                  
          <package uri="webappbnd.xmi" />                  
          <package uri="commonbnd.xmi" />  
          <package uri="j2cbnd.xmi" />                  
          <package uri="clientbnd.xmi" />                  
          <package uri="applicationbnd.xmi" />                  
          <package uri="ejbrdbmapping.xmi" />
          <package uri="http:///ejbrdbmapping.ecore" />                    	
         </emfEnablement>
      </navigatorContent>
   </extension>
   
   <extension
         point="org.eclipse.wst.common.navigator.views.actionProvider">
      <actionProvider
            class="org.eclipse.jst.common.navigator.internal.actions.OpenActionsExtension" >
         <enablement>
         	<or>
	         	<objectClass
	         		adaptable="true"
	                  name="org.eclipse.emf.ecore.EObject" />
	         	<objectClass
	         		adaptable="true"
	                  name="org.eclipse.emf.edit.provider.ItemProvider" />	    
            </or>
         </enablement>
      </actionProvider>
   </extension> 
   
      <extension
         point="org.eclipse.wst.common.navigator.views.actionProvider">
      <actionProvider 
            class="org.eclipse.wst.common.navigator.internal.actions.PortingActionExtension">
			<enablement>
				<or> 
				   <objectClass
						adaptable="true"
						name="org.eclipse.emf.ecore.EObject" />		
					<objectClass
	         			adaptable="true"
	                  	name="org.eclipse.emf.edit.provider.ItemProvider" />	 
	                <objectClass
	         			adaptable="true"
	                  	name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet" />	 																				
				</or>
			</enablement>
      </actionProvider>
   </extension>
   <!-- =========================================================================== -->
<!-- Component Working Set                                                            -->
<!-- =========================================================================== -->
   <extension
         point="org.eclipse.ui.workingSets">
      <workingSet
            name="Component"
             updaterClass="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetUpdater"
             icon="icons/J2EEPerspective.gif"
             id="org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage">
      </workingSet>
   </extension>
   
      <extension
            point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
             <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.ejb"
                  icon = "icons/ejbgroup_obj.gif"
                  label = "%EJB_Projects">
             </componentWorkingSet>
      </extension>
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		<componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.web"
                  icon = "icons/webgroup_obj.gif"
                  label = "%Web_Projects">
             </componentWorkingSet>
      </extension>
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		  <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.ear"
                  icon = "icons/eargroup_obj.gif"
                  label = "%Enterprise_Applications">
             </componentWorkingSet>
      </extension>
      
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		  <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.appclient"
                  icon = "icons/appclientgroup_obj.gif"
                  label = "%Application_Client_Projects">
             </componentWorkingSet>
      </extension>
      
      <extension 
       		point="org.eclipse.jst.j2ee.navigator.ui.componentWorkingSet">
      		  <componentWorkingSet
             	  id = "org.eclipse.jst.j2ee.navigator.ui.ComponentWorkingSetPage"
                  typeId = "jst.connector"
                  icon = "icons/connectorgroup_obj.gif"
                  label = "%Connector_Projects">
             </componentWorkingSet>
      </extension>
      
      <extension
            point="org.eclipse.jst.common.navigator.java.workingSetProviders">
            <workingSetProviders
            	class="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetProvider">
            </workingSetProviders>
      </extension>
       <extension
       	point="org.eclipse.ui.elementFactories">
	    <factory
	          class="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetFactory"
	          id="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSetFactory"/>
	 </extension>  
	 
<!-- =========================================================================== -->
<!-- Adding the New to the Component Working Sets                                -->
<!-- =========================================================================== -->
 
	 <extension
         point="org.eclipse.wst.common.navigator.views.actionProvider">
      <actionProvider
            class="org.eclipse.jst.common.navigator.internal.actions.OpenActionsExtension" >
         <enablement>
         	<or>
	         	<objectClass
	         		adaptable="true"
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet" />
            </or>
         </enablement>
      </actionProvider>
   </extension> 
   
   
   <extension
         point="org.eclipse.wst.common.navigator.workbench.commonWizard">
          <!-- EAR New -->
          <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ui.project.facet.EarProjectWizard">
         <enablement>
         <or> 
             <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.ear">
                </objectState>
               
             </and>      
            </or>
         </enablement>
       </commonWizard>
        <!-- AppClient New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.ui.project.facet.appclient.AppClientProjectWizard">
         <enablement>
           <or> 
             <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.appclient">
                </objectState>
               
             </and>      
            </or>
         </enablement>
       </commonWizard>
       <commonWizard
            type="new"
            wizardId="org.eclipse.jst.servlet.ui.project.facet.WebProjectWizard">
         <enablement>
           <or>
               <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.web">
                </objectState>
             </and>      
            </or>
         </enablement>
       </commonWizard>
       <!-- Connector New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorProjectWizard">
         <enablement>
          <or>
               <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.connector">
                </objectState>
             </and>      
            </or>
         </enablement>
       </commonWizard>
       <!-- EJB New -->
        <commonWizard
            type="new"
            wizardId="org.eclipse.jst.ejb.ui.project.facet.EjbProjectWizard">
         <enablement>
          <or>
               <and>
               <objectClass
	                  name="org.eclipse.jst.j2ee.navigator.internal.workingsets.ComponentWorkingSet">
	           </objectClass>
	            <objectState
                        name="componentTypeId"
                        value="jst.ejb">
                </objectState>
             </and>      
            </or>
         </enablement>
       </commonWizard>
       
   </extension>
     
     
     
</plugin>


