port of server tools rework for temp m3 stream for web services
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployable.java b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployable.java
index cd9df11..72a41b1 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployable.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployable.java
@@ -19,8 +19,6 @@
 import org.eclipse.jst.j2ee.internal.project.J2EEModuleNature;
 import org.eclipse.jst.j2ee.internal.project.J2EENature;
 import org.eclipse.jst.server.j2ee.IEJBModule;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleType;
 
 public class EJBDeployable extends J2EEDeployable implements IEJBModule {
 	/**
@@ -82,27 +80,4 @@
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.wst.server.core.IModule#getModuleType()
-     */
-    public IModuleType getModuleType() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.wst.server.core.IModule#getChildModules(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    public IModule[] getChildModules(IProgressMonitor monitor) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-     */
-    public Object getAdapter(Class adapter) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableFactory.java b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableFactory.java
index b0dc034..19a5ed1 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableFactory.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableFactory.java
@@ -14,7 +14,8 @@
 import org.eclipse.jst.j2ee.internal.project.IEJBNatureConstants;
 import org.eclipse.jst.j2ee.internal.project.J2EENature;
 import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.model.ModuleDelegate;
+
+import com.ibm.wtp.common.logger.proxy.Logger;
 ;
 
 /**
@@ -45,24 +46,28 @@
 		return IEJBNatureConstants.NATURE_ID;
 	}
 
-	/*
-	 * @see J2EEDeployableFactory#createDeployable(J2EENature)
-	 */
-	public IModule createModule(J2EENature nature) {
-		return new EJBDeployable(nature, ID);
-	}
 
-
-    public ModuleDelegate getModuleDelegate(IModule module) {
-        // TODO Auto-generated method stub
-        return null;
+	
+    public IModule createModule(J2EENature nature) {
+        if (nature == null)
+            return null;
+        EJBDeployable moduleDelegate = null;
+        IModule module = nature.getModule();
+        if (module == null) {
+            try {
+                moduleDelegate = new EJBDeployable(nature, ID);
+                module = createModule(moduleDelegate.getId(), moduleDelegate.getName(), moduleDelegate.getType(), moduleDelegate.getVersion(), moduleDelegate.getProject());
+                nature.setModule(module);
+                moduleDelegate.initialize(module);
+            } catch (Exception e) {
+                Logger.getLogger().write(e);
+            } finally {
+                moduleDelegates.add(moduleDelegate);
+            }
+        }
+        return module;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.wst.server.core.model.ModuleFactoryDelegate#getModules()
-     */
-    public IModule[] getModules() {
-        // TODO Auto-generated method stub
-        return null;
-    }
+
+
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableObjectAdapter.java b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableObjectAdapter.java
index 47e6a61..5c098a3 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableObjectAdapter.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/deployables/EJBDeployableObjectAdapter.java
@@ -24,7 +24,6 @@
 import org.eclipse.jst.server.j2ee.EJBBean;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.model.ModuleArtifactAdapterDelegate;
 
 import com.ibm.wtp.common.logger.proxy.Logger;
 import com.ibm.wtp.emf.workbench.ProjectUtilities;
@@ -33,7 +32,7 @@
  * @version 1.0
  * @author
  */
-public class EJBDeployableObjectAdapter extends ModuleArtifactAdapterDelegate {
+public class EJBDeployableObjectAdapter {
 	/**
 	 * Constructor for EJBDeployableObjectAdapter.
 	 */
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/plugin.xml b/plugins/org.eclipse.jst.j2ee.ejb/plugin.xml
index ad87101..6aaed3a 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/plugin.xml
+++ b/plugins/org.eclipse.jst.j2ee.ejb/plugin.xml
@@ -38,13 +38,6 @@
    </requires>
 
 
-<!--============================-->
-<!-- EJB Codegen Ext Handler    -->
-<!--============================-->
-   <extension-point id="EJBCodegenHandler" name="EJB Codegen Extension Handler" schema="schema/EJBCodegenHandler.exsd"/>
-   <extension-point id="DeleteDeployCode" name="DeleteDeployCode" schema="schema/DeleteDeployCode.exsd"/>
-   <extension-point id="BackendMigration" name="BackendMigration" schema="schema/BackendMigration.exsd"/>
-   <extension-point id="Delete11Relationships" name="Delete11Relationships" schema="schema/Delete11Relationships.exsd"/>
 
 <!--============================-->
 <!-- EJB 1.1 Nature             -->
@@ -145,26 +138,26 @@
 <!-- Purpose: Define adapters for EJB resources                   -->
 <!-- Extension point: com.ibm.etools.server.core.moduleObjectAdapters -->
 <!-- ==================================================================== -->
-   <extension
-         point="org.eclipse.wst.server.core.moduleArtifactAdapters">
+  <!-- <extension
+         point="org.eclipse.wst.server.ui.moduleArtifactAdapters">
       <moduleArtifactAdapter
             objectClass="org.eclipse.jst.j2ee.internal.ejb.EJBJar"
-            class="org.eclipse.jst.j2ee.internal.ejb.deployables.EJBDeployableObjectAdapter"
+            class="org.eclipse.jst.j2ee.ejb.internal.deployables.EJBDeployableObjectAdapter"
             id="com.ibm.wtp.server.j2ee.ejb">
       </moduleArtifactAdapter>
       <moduleArtifactAdapter
             objectClass="org.eclipse.jst.j2ee.internal.ejb.EnterpriseBean"
-            class="org.eclipse.jst.j2ee.internal.ejb.deployables.EJBDeployableObjectAdapter"
+            class="org.eclipse.jst.j2ee.ejb.internal.deployables.EJBDeployableObjectAdapter"
             id="com.ibm.wtp.server.j2ee.ejb2">
       </moduleArtifactAdapter>
       <moduleArtifactAdapter
             objectClass="org.eclipse.core.resources.IProject"
-            class="org.eclipse.jst.j2ee.internal.ejb.deployables.EJBDeployableObjectAdapter"
+            class="org.eclipse.jst.j2ee.ejb.internal.deployables.EJBDeployableObjectAdapter"
             id="com.ibm.wtp.server.j2ee.ejb3">
       </moduleArtifactAdapter>
       <moduleArtifactAdapter
             objectClass="org.eclipse.core.resources.IFile"
-            class="org.eclipse.jst.j2ee.internal.ejb.deployables.EJBDeployableObjectAdapter"
+            class="org.eclipse.jst.j2ee.ejb.internal.deployables.EJBDeployableObjectAdapter"
             id="com.ibm.wtp.server.j2ee.ejb4">
       </moduleArtifactAdapter>
       <moduleArtifactAdapter
@@ -172,7 +165,7 @@
             class="org.eclipse.jst.j2ee.ejb.internal.deployables.EJBDeployableObjectAdapter"
             id="com.ibm.wtp.server.j2ee.ejb5">
       </moduleArtifactAdapter>
-   </extension>
+   </extension>-->
 <!-- =============================================================== -->
 <!-- Purpose: Define the default module project factory          -->
 <!-- Extension point: org.eclipse.wst.server.core.moduleFactories -->
@@ -249,4 +242,525 @@
             selected="true">
         </filter>
     </extension>
+    
+    
+    <!-- ================================================ -->
+    <!--  EJB Tag set definitions for XDoclet             -->
+    <!-- ================================================ -->
+    <extension
+         id="EJBTagSets"
+         point="org.eclipse.jst.common.annotations.controller.AnnotationTagSet">
+      <AnnotationTagSet
+            name="ejb">
+      </AnnotationTagSet>
+   </extension>
+   <extension
+         id="EJBAnnotationInfo"
+         point="org.eclipse.jst.common.annotations.controller.AnnotationTagInfo">
+      <AnnotationTagInfo tagSet="ejb" tagName="value-object" scope="type"
+      			multiplicity="*">
+      	<attrib name="abstract" type="bool"/>
+      	<attrib name="extends"/>
+      	<attrib name="implements"/>
+      	<attrib name="match"/>
+      	<attrib name="name">
+      		<unique scope="type"/>
+      	</attrib>
+      	<attrib name="generatePKConstructor" type="bool"/>
+      </AnnotationTagInfo>
+      
+      <AnnotationTagInfo tagSet="ejb" tagName="value-object" scope="method">
+      	<attrib name="match"/>
+      	<attrib name="compose"/>
+      	<attrib name="compose-name"/>
+      	<attrib name="aggregate"/>
+      	<attrib name="aggregate-name"/>
+      	<attrib name="members"/>
+      	<attrib name="members-name"/>
+      	<attrib name="relation"/>
+      	<attrib name="type"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="session"
+            scope="type">
+         <attrib
+               use="required"
+               name="name">
+               <unique scope="module"/>
+         </attrib>
+         <attrib
+               name="description">
+         </attrib>
+         <attrib
+               name="display-name">
+         </attrib>
+         <attrib
+               name="small-icon">
+         </attrib>
+         <attrib
+               name="large-icon">
+         </attrib>
+         <attrib
+               name="generate"
+               type="bool">
+         </attrib>
+         <attrib
+               name="jndi-name">
+         </attrib>
+         <attrib
+               name="local-jndi-name">
+         </attrib>
+         <attrib
+               name="view-type" type="enum">
+               <enumValues value="local"/>
+               <enumValues value="remote"/>
+               <enumValues value="both"/>
+         </attrib>
+         <attrib
+               name="type" type="enum">
+               <enumValues value="Stateless"/>
+         </attrib>
+         <attrib
+               name="transaction-type" type="enum">
+               <enumValues value="Container"/>
+               <enumValues value="Bean"/>
+         </attrib>     
+         <attrib
+               name="remote-business-interface"
+               type="javaType">
+         </attrib>
+         <attrib
+               name="local-business-interface"
+               type="javaType">
+         </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="relation" scope="method">
+      		<attrib name="name" use="required"/>
+      		<attrib name="role-name" use="required"/>
+      		<attrib name="cascade-delete"/>
+      		<attrib name="target-ejb"/>
+      		<attrib name="target-role-name"/>
+      		<attrib name="target-cascade-delete"/>
+      		<attrib name="target-multiple"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="bean"
+            scope="type">
+         <attrib
+               use="required"
+               name="name">
+               <unique scope="module"/>
+         </attrib>
+         <attrib
+               name="description">
+         </attrib>
+         <attrib
+               name="display-name">
+         </attrib>
+         <attrib
+               name="small-icon">
+         </attrib>
+         <attrib
+               name="large-icon">
+         </attrib>
+         <attrib
+               name="generate"
+               type="bool">
+         </attrib>
+         <attrib
+               name="jndi-name">
+         </attrib>
+         <attrib
+               name="local-jndi-name">
+         </attrib>
+         <attrib
+               name="view-type" type="enum">
+               <enumValues value="local"/>
+               <enumValues value="remote"/>
+               <enumValues value="both"/>
+         </attrib>
+         <attrib
+               name="type" type="enum">
+               <enumValues value="CMP"/>
+               <enumValues value="BMP"/>
+               <enumValues value="Stateless"/>
+               <enumValues value="Stateful"/>
+         </attrib>
+         <attrib
+               name="transaction-type" type="enum">
+               <enumValues value="Container"/>
+               <enumValues value="Bean"/>
+         </attrib>
+         <attrib
+               name="reentrant"
+               type="bool">
+         </attrib>
+         <attrib
+               name="cmp-version" type="enum">
+               <enumValues value="2.x"/>
+         </attrib>
+         <attrib
+               name="schema">
+         </attrib>
+         <attrib
+               name="primkey-field">
+         </attrib>
+         <attrib
+               name="use-soft-locking"
+               type="bool">
+         </attrib>
+         <attrib
+               name="message-selector">
+         </attrib>
+         <attrib
+               name="acknowledge-mode" type="enum">
+               <enumValues value="Auto-acknowledge"/>
+               <enumValues value="Dups-ok-acknowledge"/>
+         </attrib>
+         <attrib
+               name="destination-type" type="enum">
+               <enumValues value="javax.jms.Queue"/>
+               <enumValues value="javax.jms.Topic"/>
+         </attrib>
+         <attrib
+               name="subscription-durability" type="enum">
+               <enumValues value="Durable"/>
+               <enumValues value="NonDurable"/>
+         </attrib>
+         <attrib
+               name="remote-business-interface"
+               type="javaType">
+         </attrib>
+         <attrib
+               name="local-business-interface"
+               type="javaType">
+         </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="select" scope="method" multiplicity="*">
+      	<attrib name="query" use="required"/>
+      	<attrib name="result-type-mapping" type="enum">
+      		<enumValues value="none"/>
+      		<enumValues value="Local"/>
+      		<enumValues value="Remote"/>
+      	</attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="ejb-external-ref" scope="type" multiplicity="*">
+      	<attrib name="ref-name" use="required"/>
+      	<attrib name="view-type" use="required" type="enum">
+      		<enumValues value="local"/>
+      		<enumValues value="remote"/>
+      	</attrib>
+      	<attrib name="link" use="required"/>
+      	<attrib name="type" use="required" type="enum">
+      		<enumValues value="Entity"/>
+      		<enumValues value="Session"/>
+      	</attrib>
+      	<attrib name="home" type="javaType" use="required"/>
+      	<attrib name="business" type="javaType" use="required"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="home-method"
+            scope="method">
+         <attrib
+               name="view-type"
+               description="ath.view-type.home-method"
+               type="enum">
+               <enumValues value="local"/>
+               <enumValues value="remote"/>
+         </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="interface-method"
+            scope="method">
+         <attrib
+               name="view-type"
+               description="ath.view-type.interface-method"
+               type="enum">
+               <enumValues value="local"/>
+               <enumValues value="remote"/>
+               <enumValues value="both"/>
+         </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="create-method"
+            scope="method">
+         <attrib
+               name="view-type"
+               description="ath.view-type.create-method"
+               type="enum">
+               <enumValues value="local"/>
+               <enumValues value="remote"/>
+         </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="env-entry"
+            scope="type" multiplicity="*">
+            <attrib name="name" use="required">
+            </attrib>
+            <attrib name="description"/>
+            <attrib name="type" type="enum">
+            	<enumValues value="java.lang.Boolean"/>
+            	<enumValues value="java.lang.Byte"/>
+				<enumValues value="java.lang.Character"/>
+				<enumValues value="java.lang.String"/>
+				<enumValues value="java.lang.Short"/>
+				<enumValues value="java.lang.Integer"/>
+				<enumValues value="java.lang.Long"/>
+				<enumValues value="java.lang.Float"/>
+				<enumValues value="java.lang.Double"/>
+			</attrib>
+            <attrib name="value"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="ejb-ref"
+            scope="type" multiplicity="*">
+          	
+          <attrib name="ejb-name" use="required"/>
+          <attrib name="view-type" use="required" type="enum">
+          	<enumValues value="local"/>
+          	<enumValues value="remote"/>
+          </attrib>
+          <attrib name="ref-name"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="security-role-ref"
+            scope="type" multiplicity="*">
+         <attrib name="role-name" use="required"/>
+         <attrib name="role-link" use="required"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="security-identity"
+            scope="type">
+         <attrib name="description"/>
+         <attrib name="use-caller-identity" type="bool"/>
+         <attrib name="run-as"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="resource-ref"
+            scope="type" multiplicity="*">
+         <attrib name="res-ref-name" use="required"/>
+         <attrib name="res-type" use="required" type="javaType"/>
+         <attrib name="res-auth" use="required" type="enum">
+         	<enumValues value="Container"/>
+         	<enumValues value="Application"/>
+         </attrib>
+         <attrib name="res-sharing-scope" type="enum">
+         	<enumValues value="Shareable"/>
+         	<enumValues value="Unshareable"/>
+         </attrib>
+         <attrib name="jndi-name"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="resource-env-ref"
+            scope="type" multiplicity="*">
+            <attrib name="name" use="required"/>
+            <attrib name="type" use="required" type="javaType"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="interface"
+            scope="type">
+          <attrib name="extends"/>
+          <attrib name="local-extends"/>
+          <attrib name="generate" type="bool"/>
+          <attrib name="remote-class"/>
+          <attrib name="local-class"/>
+          <attrib name="remote-pattern"/>
+          <attrib name="local-pattern"/>
+          <attrib name="pattern"/>
+          <attrib name="remote-package"/>
+          <attrib name="local-package"/>
+          <attrib name="package"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="home"
+            scope="type">
+          <attrib name="extends"/>
+          <attrib name="local-extends"/>
+          <attrib name="generate" type="bool"/>
+          <attrib name="remote-class"/>
+          <attrib name="local-class"/>
+          <attrib name="remote-pattern"/>
+          <attrib name="local-pattern"/>
+          <attrib name="pattern"/>
+          <attrib name="remote-package"/>
+          <attrib name="local-package"/>
+          <attrib name="package"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="pk"
+            scope="type">
+         <attrib name="class" use="required"/>
+         <attrib name="pattern"/>
+         <attrib name="package"/>
+         <attrib name="generate" type="bool"/>
+         <attrib name="extends" type="javaType"/>
+         <attrib name="implements" type="javaType"/>
+         <attrib name="role-name"/>
+         <attrib name="unchecked" type="bool"/>
+         <attrib name="method-intf" type="enum">
+         	<enumValues value="Home"/>
+         	<enumValues value="LocalHome"/>
+         </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="pk-field"
+            scope="method">
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="persistence"
+            scope="type">
+         <attrib name="table-name"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="persistence"
+            scope="method">
+          <attrib name="column-name"/>
+          <attrib name="jdbc-type" type="enum">
+          	<enumValues value="ARRAY"/>
+          	<enumValues value="BIGINT"/>
+          	<enumValues value="BINARY"/>
+          	<enumValues value="BIT"/>
+          	<enumValues value="BLOB"/>
+          	<enumValues value="BOOLEAN"/>
+          	<enumValues value="CHAR"/>
+          	<enumValues value="CLOB"/>
+          	<enumValues value="DATALINK"/>
+          	<enumValues value="DATE"/>
+          	<enumValues value="DECIMAL"/>
+          	<enumValues value="DISTINCT"/>
+          	<enumValues value="DOUBLE"/>
+          	<enumValues value="FLOAT"/>
+          	<enumValues value="INTEGER"/>
+          	<enumValues value="JAVA_OBJECT"/>
+          	<enumValues value="LONGVARBINARY"/>
+          	<enumValues value="LONGVARCHAR"/>
+          	<enumValues value="NULL"/>
+          	<enumValues value="NUMERIC"/>
+          	<enumValues value="OTHER"/>
+          	<enumValues value="REAL"/>
+          	<enumValues value="REF"/>
+          	<enumValues value="SMALLINT"/>
+          	<enumValues value="STRUCT"/>
+          	<enumValues value="TIME"/>
+          	<enumValues value="TIMESTAMP"/>
+          	<enumValues value="TINYINT"/>
+          	<enumValues value="VARBINARY"/>
+          	<enumValues value="VARCHAR"/>
+		  </attrib>
+          <attrib name="sql-type"/>
+          <attrib name="read-only"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+            tagSet="ejb"
+            tagName="finder"
+            scope="type"
+            multiplicity="*">
+          <attrib name="view-type" type="enum">
+          	<enumValues value="local"/>
+          	<enumValues value="remote"/>
+          	<enumValues value="both"/>
+          </attrib>
+          <attrib name="description"/>
+          <attrib name="signature" use="required"/>
+          <attrib name="unchecked" type="bool"/>
+          <attrib name="role-name"/>
+          <attrib name="query" use="required"/>
+          <attrib name="result-type-mapping" type="enum">
+          	<enumValues value="none"/>
+          	<enumValues value="Local"/>
+          	<enumValues value="Remote"/>
+          </attrib>
+          <attrib name="transaction-type"/>
+          <attrib name="method-intf" type="enum">
+          	<enumValues value="Home"/>
+          	<enumValues value="LocalHome"/>
+          </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="transaction" scope="method">
+      	<attrib name="type" use="required" type="enum">
+      		<enumValues value="NotSupported"/>
+      		<enumValues value="Supports"/>
+      		<enumValues value="Required"/>
+      		<enumValues value="RequiresNew"/>
+      		<enumValues value="Mandatory"/>
+      		<enumValues value="Never"/>
+      	</attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="transaction" scope="type">
+      	<attrib name="type" use="required" type="enum">
+      		<enumValues value="NotSupported"/>
+      		<enumValues value="Supports"/>
+      		<enumValues value="Required"/>
+      		<enumValues value="RequiresNew"/>
+      		<enumValues value="Mandatory"/>
+      		<enumValues value="Never"/>
+      	</attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="facade-method" scope="method">
+      	<attrib name="invalidate" type="bool"/>
+      	<attrib name="cache" type="bool"/>
+      	<attrib name="immutable" type="bool"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo
+      		tagSet="ejb"
+      		tagName="util"
+      		scope="type">
+      		
+      	  <attrib name="generate" use="required" type="enum">
+      	  	<enumValues value="no"/>
+      	  	<enumValues value="logical"/>
+      	  	<enumValues value="physical"/>
+      	  </attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="facade" scope="type">
+      	<attrib name="name"/>
+      	<attrib name="description"/>
+      	<attrib name="display-name"/>
+      	<attrib name="small-icon"/>
+      	<attrib name="large-icon"/>
+      	<attrib name="jndi-name"/>
+      	<attrib name="local-jndi-name"/>
+      	<attrib name="view-type" type="enum">
+      		<enumValues value="local"/>
+      		<enumValues value="remote"/>
+      		<enumValues value="both"/>
+      	</attrib>
+      	<attrib name="type" use="required" type="enum">
+      		<enumValues value="Stateless"/>
+      		<enumValues value="Stateful"/>
+      	</attrib>
+      	<attrib name="transaction-type" type="enum">
+      		<enumValues value="Bean"/>
+      		<enumValues value="Container"/>
+      	</attrib>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="remote-facade" scope="type"/>
+      <AnnotationTagInfo tagSet="ejb" tagName="permission" scope="method">
+      	<attrib name="role-name"/>
+      	<attrib name="unchecked" type="bool"/>
+      </AnnotationTagInfo>
+      <AnnotationTagInfo tagSet="ejb" tagName="permission" scope="type">
+      	<attrib name="role-name"/>
+      	<attrib name="unchecked" type="bool"/>
+      </AnnotationTagInfo>
+      
+    </extension>
+    
 </plugin>