[jboss-cvs] JBossAS SVN: r76651 - in projects/ejb3/trunk/interceptors/src: test/java/org/jboss/ejb3 and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Aug 5 06:16:09 EDT 2008


Author: wolfc
Date: 2008-08-05 06:16:09 -0400 (Tue, 05 Aug 2008)
New Revision: 76651

Added:
   projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java
   projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/
   projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/
   projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml
Modified:
   projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java
Log:
EJBTHREE-1448: hack to make sure that an installed annotation repository becomes authoritative

Added: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java	2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,181 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.interceptors.container;
+
+import java.lang.annotation.Annotation;
+
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.scope.ScopeLevel;
+import org.jboss.metadata.spi.signature.Signature;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+class DummyMetaData implements MetaData
+{
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getAnnotation(java.lang.Class)
+    */
+   public <T extends Annotation> T getAnnotation(Class<T> annotationType)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getAnnotations()
+    */
+   public Annotation[] getAnnotations()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getComponentMetaData(org.jboss.metadata.spi.signature.Signature)
+    */
+   public MetaData getComponentMetaData(Signature signature)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getLocalAnnotations()
+    */
+   public Annotation[] getLocalAnnotations()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getLocalMetaData()
+    */
+   public Object[] getLocalMetaData()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getMetaData()
+    */
+   public Object[] getMetaData()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getMetaData(java.lang.Class)
+    */
+   public <T> T getMetaData(Class<T> type)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getMetaData(java.lang.String)
+    */
+   public Object getMetaData(String name)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getMetaData(java.lang.String, java.lang.Class)
+    */
+   public <T> T getMetaData(String name, Class<T> type)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getScopeMetaData(org.jboss.metadata.spi.scope.ScopeLevel)
+    */
+   public MetaData getScopeMetaData(ScopeLevel level)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#getValidTime()
+    */
+   public long getValidTime()
+   {
+      // TODO Auto-generated method stub
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#isAnnotationPresent(java.lang.Class)
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      // TODO Auto-generated method stub
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#isEmpty()
+    */
+   public boolean isEmpty()
+   {
+      // TODO Auto-generated method stub
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#isMetaDataPresent(java.lang.Class)
+    */
+   public boolean isMetaDataPresent(Class<?> type)
+   {
+      // TODO Auto-generated method stub
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#isMetaDataPresent(java.lang.String)
+    */
+   public boolean isMetaDataPresent(String name)
+   {
+      // TODO Auto-generated method stub
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.metadata.spi.MetaData#isMetaDataPresent(java.lang.String, java.lang.Class)
+    */
+   public boolean isMetaDataPresent(String name, Class<?> type)
+   {
+      // TODO Auto-generated method stub
+      return false;
+   }
+
+}

Modified: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java	2008-08-05 10:15:18 UTC (rev 76650)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java	2008-08-05 10:16:09 UTC (rev 76651)
@@ -85,9 +85,14 @@
       assert container != null : "container is null";
       
       this.container = container;
-      
+
       if(pAnnotations != null)
+      {
+         // FIXME: This is a hack to make sure that any installed annotation repository is authoritative
+         setMetadata(new DummyMetaData());
+         
          this.annotations = pAnnotations;
+      }
       
       // For convenience we add the ManagedObject annotation
       ManagedObject annotation = new ManagedObject()

Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java	2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.interceptors.test.common;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.ejb3.interceptors.direct.AbstractDirectContainer;
+import org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge;
+import org.jboss.ejb3.interceptors.metadata.InterceptorComponentMetaDataLoaderFactory;
+import org.jboss.ejb3.interceptors.metadata.InterceptorMetaDataBridge;
+import org.jboss.ejb3.metadata.MetaDataBridge;
+import org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorMetaData;
+
+/**
+ * Emulates an EJB container to the best of its abilities.
+ * 
+ * Meta data bridges for interceptors are setup, so meta data can be processed.
+ * 
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class ManagedObjectContainer<T> extends AbstractDirectContainer<T, ManagedObjectContainer<T>>
+{
+   /**
+    * Create a new managed object container.
+    * 
+    * @param name           the name of the managed object (/ EJB)
+    * @param domainName     the domain name to get interceptors from
+    * @param beanClass      the managed object class
+    * @param beanMetaData   the associated meta data
+    */
+   public ManagedObjectContainer(String name, String domainName, Class<? extends T> beanClass, JBossEnterpriseBeanMetaData beanMetaData)
+   {
+      super();
+      
+      assert name != null : "name is null";
+      assert domainName != null : "domainName is null";
+      assert beanClass != null : "beanClass is null";
+      assert beanMetaData != null : "beanMetaData is null";
+      
+      ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+      AnnotationRepositoryToMetaData annotations = new AnnotationRepositoryToMetaData(beanClass, beanMetaData, name, classLoader);
+      List<MetaDataBridge<InterceptorMetaData>> interceptorBridges = new ArrayList<MetaDataBridge<InterceptorMetaData>>();
+      interceptorBridges.add(new InterceptorMetaDataBridge());
+      annotations.addComponentMetaDataLoaderFactory(new InterceptorComponentMetaDataLoaderFactory(interceptorBridges));
+      annotations.addMetaDataBridge(new BeanInterceptorMetaDataBridge(beanClass, classLoader, beanMetaData));
+      
+      initializeAdvisor(name, getDomain(domainName), beanClass, annotations);
+   }
+}

Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java	2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.interceptors.test.metadatacomplete;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * By setting metadata complete, the annotated lifecycle callback
+ * should be ignored.
+ * 
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class TwoLifecycleMethodsBean
+{
+   public static boolean annotatedPostConstructRan = false;
+   public static boolean otherPostConstructRan = false;
+   
+   @PostConstruct
+   public void annotatedPostConstruct()
+   {
+      annotatedPostConstructRan = true;
+   }
+   
+   public void otherPostConstruct()
+   {
+      otherPostConstructRan = true;
+   }
+}

Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java	2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,157 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.interceptors.test.metadatacomplete.unit;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URL;
+
+import org.jboss.aspects.common.AOPDeployer;
+import org.jboss.ejb3.interceptors.container.BeanContext;
+import org.jboss.ejb3.interceptors.test.common.ManagedObjectContainer;
+import org.jboss.ejb3.interceptors.test.metadatacomplete.TwoLifecycleMethodsBean;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.builder.JBossXBBuilder;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.w3c.dom.ls.LSInput;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class MetadataCompleteTestCase
+{
+   private static final Logger log = Logger.getLogger(MetadataCompleteTestCase.class);
+   private static final AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+   
+   private JBossEnterpriseBeanMetaData beanMetaData;
+   
+   protected static SchemaBindingResolver schemaResolverForClass(final Class<?> root)
+   {
+      return new SchemaBindingResolver()
+      {
+         public String getBaseURI()
+         {
+            return null;
+         }
+
+         public SchemaBinding resolve(String nsUri, String baseURI, String schemaLocation)
+         {
+            return JBossXBBuilder.build(root);
+         }
+
+         public LSInput resolveAsLSInput(String nsUri, String baseUri, String schemaLocation)
+         {
+            return null;
+         }
+
+         public void setBaseURI(String baseURI)
+         {
+         }
+      };
+   }
+
+   @Before
+   public void setUp() throws Exception
+   {
+      TwoLifecycleMethodsBean.annotatedPostConstructRan = false;
+      TwoLifecycleMethodsBean.otherPostConstructRan = false;
+      
+      // Bootstrap metadata
+      UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
+      Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
+      URL url = Thread.currentThread().getContextClassLoader().getResource("metadatacomplete/META-INF/ejb-jar.xml");
+      assertNotNull("Can't find descriptor metadatacomplete/META-INF/ejb-jar.xml", url);
+      EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
+      JBoss50MetaData jbossMetaData = new JBoss50MetaData();
+      jbossMetaData.merge(null, metaData);
+      
+      beanMetaData = jbossMetaData.getEnterpriseBean("TwoLifecycleMethodsBean");
+      assertNotNull(beanMetaData);   
+   }
+   
+   @BeforeClass
+   public static void setUpBeforeClass() throws Exception
+   {
+      log.info(deployer.deploy());
+   }
+
+   @AfterClass
+   public static void tearDownAfterClass() throws Exception
+   {
+      log.info(deployer.undeploy());
+   }
+
+   @Test
+   public void testAnnotations() throws Throwable
+   {
+      // ignore the descriptor
+      JBoss50MetaData metaData = new JBoss50MetaData();
+      
+      // To avoid NPE
+      metaData.setAssemblyDescriptor(new JBossAssemblyDescriptorMetaData());
+      
+      JBossEnterpriseBeansMetaData enterpriseBeans = new JBossEnterpriseBeansMetaData();
+      metaData.setEnterpriseBeans(enterpriseBeans);
+      
+      JBossEnterpriseBeanMetaData beanMetaData = new JBossSessionBeanMetaData();
+      beanMetaData.setEjbName("TwoLifecycleMethodsBean");
+      enterpriseBeans.add(beanMetaData);
+      
+      ManagedObjectContainer<TwoLifecycleMethodsBean> container = new ManagedObjectContainer<TwoLifecycleMethodsBean>(beanMetaData.getEjbName(), "Test", TwoLifecycleMethodsBean.class, beanMetaData);
+      
+      BeanContext<TwoLifecycleMethodsBean> bean = container.construct();
+      
+      container.destroy(bean);
+      
+      assertTrue(TwoLifecycleMethodsBean.annotatedPostConstructRan);
+      assertFalse(TwoLifecycleMethodsBean.otherPostConstructRan);
+   }
+   
+   @Test
+   public void testMetadataComplete() throws Throwable
+   {
+      ManagedObjectContainer<TwoLifecycleMethodsBean> container = new ManagedObjectContainer<TwoLifecycleMethodsBean>(beanMetaData.getEjbName(), "Test", TwoLifecycleMethodsBean.class, beanMetaData );
+      
+      BeanContext<TwoLifecycleMethodsBean> bean = container.construct();
+      
+      container.destroy(bean);
+      
+      assertTrue(TwoLifecycleMethodsBean.otherPostConstructRan);
+      assertFalse(TwoLifecycleMethodsBean.annotatedPostConstructRan);
+   }
+}

Added: projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml	2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+                            http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+   version="3.0" metadata-complete="true">
+   <display-name>MetaDataCompleteTest</display-name>
+   <enterprise-beans>
+      <session>
+         <ejb-name>TwoLifecycleMethodsBean</ejb-name>
+         <post-construct>
+            <lifecycle-callback-method>otherPostConstruct</lifecycle-callback-method>
+         </post-construct>
+      </session>
+   </enterprise-beans>
+</ejb-jar>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list