[jboss-cvs] JBossAS SVN: r72018 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/ejb3 and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Apr 11 08:55:41 EDT 2008
Author: wolfc
Date: 2008-04-11 08:55:41 -0400 (Fri, 11 Apr 2008)
New Revision: 72018
Added:
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MetaDataStatelessBean.java
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testPostConstruct.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
Log:
JBMETA-14: merge lifecycle callbacks
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java 2008-04-11 12:11:05 UTC (rev 72017)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java 2008-04-11 12:55:41 UTC (rev 72018)
@@ -93,6 +93,16 @@
// For serialization
}
+ private LifecycleCallbacksMetaData addAll(LifecycleCallbacksMetaData current, LifecycleCallbacksMetaData additions)
+ {
+ if(additions == null)
+ return current;
+ if(current == null)
+ current = new LifecycleCallbacksMetaData();
+ current.addAll(additions);
+ return current;
+ }
+
/**
* Get the environmentEntries.
*
@@ -373,9 +383,20 @@
MessageDestinationReferencesMetaData messageDestinationRefs = null;
MessageDestinationReferencesMetaData jbossMessageDestinationRefs = null;
PersistenceUnitReferencesMetaData persistenceUnitRefs = null;
- LifecycleCallbacksMetaData postConstructs = null;
- LifecycleCallbacksMetaData preDestroys = null;
+// LifecycleCallbacksMetaData postConstructs = null;
+// LifecycleCallbacksMetaData preDestroys = null;
+ if(jbossEnv != null)
+ {
+ postConstructs = addAll(postConstructs, jbossEnv.getPostConstructs());
+ preDestroys = addAll(preDestroys, jbossEnv.getPreDestroys());
+ }
+ if(specEnv != null)
+ {
+ postConstructs = addAll(postConstructs, specEnv.getPostConstructs());
+ preDestroys = addAll(preDestroys, specEnv.getPreDestroys());
+ }
+
if (specEnv != null)
{
annotatedEjbRefs = specEnv.getAnnotatedEjbReferences();
@@ -385,8 +406,6 @@
resEnvRefs = specEnv.getResourceEnvironmentReferences();
messageDestinationRefs = specEnv.getMessageDestinationReferences();
persistenceUnitRefs = specEnv.getPersistenceUnitRefs();
- postConstructs = specEnv.getPostConstructs();
- preDestroys = specEnv.getPreDestroys();
}
if (jbossEnv != null)
@@ -456,12 +475,6 @@
if (persistenceUnitRefs != null)
setPersistenceUnitRefs(persistenceUnitRefs);
- if (postConstructs != null)
- setPostConstructs(postConstructs);
-
- if (preDestroys != null)
- setPreDestroys(preDestroys);
-
if(annotatedEjbRefs != null)
this.setAnnotatedEjbReferences(annotatedEjbRefs);
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2008-04-11 12:11:05 UTC (rev 72017)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2008-04-11 12:55:41 UTC (rev 72018)
@@ -391,7 +391,7 @@
System.out.println(transaction);
}
- assertEquals(7, metaData.getEnterpriseBeans().size());
+ assertEquals(8, metaData.getEnterpriseBeans().size());
assertMyStatefulBean(metaData.getEnterpriseBean("AnotherName")); // MyStatefulBean
assertMyStateless21Bean(metaData.getEnterpriseBean("MyStateless21Bean"));
@@ -580,6 +580,33 @@
}
/**
+ * Test merging annotation and xml based metadata
+ * @throws Exception
+ */
+ public void testPostConstruct()
+ throws Exception
+ {
+ Class<?>[] beanClasses = {
+ MetaDataStatelessBean.class
+ };
+ List<Class<?>> classes = Arrays.asList(beanClasses);
+ AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+ EjbJar30Creator creator = new EjbJar30Creator(finder);
+ EjbJar30MetaData metaData = creator.create(classes);
+ EjbJar3xMetaData specMetaData = unmarshal(EjbJar3xMetaData.class);
+ EjbJar3xMetaData merged = new EjbJar30MetaData();
+ AnnotationMergedView.merge(merged, specMetaData, metaData);
+
+ SessionBeanMetaData sessionBean = (SessionBeanMetaData) merged.getEnterpriseBean("MetaDataStatelessBean");
+ assertNotNull(sessionBean);
+ LifecycleCallbacksMetaData lifecycleCallbacks = sessionBean.getPostConstructs();
+ assertNotNull(lifecycleCallbacks);
+ assertEquals(1, lifecycleCallbacks.size());
+ LifecycleCallbackMetaData lifecycleCallback = lifecycleCallbacks.get(0);
+ assertEquals("postConstruct", lifecycleCallback.getMethodName());
+ }
+
+ /**
* Test that we don't lose anything because of an annotation merge.
*
* @throws Exception
Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MetaDataStatelessBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MetaDataStatelessBean.java (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MetaDataStatelessBean.java 2008-04-11 12:55:41 UTC (rev 72018)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, 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.test.metadata.annotation.ejb3;
+
+import javax.ejb.Stateless;
+
+/**
+ * This bean has a postConstruct in the descriptor.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+ at Stateless
+public class MetaDataStatelessBean
+{
+ public void postConstruct()
+ {
+
+ }
+}
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testPostConstruct.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testPostConstruct.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testPostConstruct.xml 2008-04-11 12:55:41 UTC (rev 72018)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar version="3.0"
+ 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">
+ <enterprise-beans>
+ <session>
+ <ejb-name>MetaDataStatelessBean</ejb-name>
+ <ejb-class>org.jboss.test.metadata.annotation.ejb3.MetaDataStatelessBean</ejb-class>
+ <post-construct>
+ <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
+ </post-construct>
+ </session>
+ </enterprise-beans>
+</ejb-jar>
More information about the jboss-cvs-commits
mailing list