[jboss-cvs] JBossAS SVN: r109763 - in projects/metadata/common/trunk/src/main/java/org/jboss/metadata: annotation/creator/jboss and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Dec 7 14:30:17 EST 2010
Author: weston.price at jboss.com
Date: 2010-12-07 14:30:17 -0500 (Tue, 07 Dec 2010)
New Revision: 109763
Modified:
projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/DataSourceDefinitionProcessor.java
projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/jboss/AbstractComponentProcessor.java
projects/metadata/common/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java
Log:
[JBMETA-318] Added support for process DataSourceDefinition(s) on EJB3 components. This includes a change to the AbstractComponentProcess to handle the annotations correctly, as well as a change to the DataSourcesMetaData merge.
[JMETA-319] Fixed issue with DataSourceDefinitions process to allow for embedded @DataSourceDefinition annotations on components.
Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/DataSourceDefinitionProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/DataSourceDefinitionProcessor.java 2010-12-07 18:59:05 UTC (rev 109762)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/DataSourceDefinitionProcessor.java 2010-12-07 19:30:17 UTC (rev 109763)
@@ -42,7 +42,7 @@
* @version $Revision: 67218 $
*/
public class DataSourceDefinitionProcessor extends AbstractFinderUser
- implements Processor<DataSourcesMetaData, Class<?>>, Creator<Class<?>, DataSourceMetaData>
+ implements Processor<DataSourcesMetaData, Class<?>>
{
public DataSourceDefinitionProcessor(AnnotationFinder<AnnotatedElement> finder)
{
@@ -60,13 +60,19 @@
public void process(DataSourcesMetaData metaData, Class<?> type, DataSourceDefinition annotation)
{
- DataSourceMetaData dataSource = create(type);
+ DataSourceMetaData dataSource = create(annotation);
+ DataSourceMetaData orig = metaData.get(dataSource.getName());
+
+ if(orig != null)
+ {
+ dataSource.merge(orig, dataSource);
+ }
+
metaData.add(dataSource);
}
- public DataSourceMetaData create(Class<?> element)
+ public DataSourceMetaData create(DataSourceDefinition dataSource)
{
- DataSourceDefinition dataSource = finder.getAnnotation(element, DataSourceDefinition.class);
if (dataSource == null)
return null;
@@ -79,10 +85,12 @@
if (dataSource.url().length() > 0)
metaData.setUrl(dataSource.url());
if (dataSource.user().length() > 0)
- metaData.setUser(dataSource.user());
- if (dataSource.password().length() > 0)
- metaData.setPassword(dataSource.password());
- if (dataSource.databaseName().length() > 0)
+ metaData.setUser(dataSource.user());
+
+ //Let the default suffice for pw as an empty string may very well be valid (aka Hypersonic), we may need to do this for the other props as well
+ metaData.setPassword(dataSource.password());
+
+ if (dataSource.databaseName().length() > 0)
metaData.setDatabaseName(dataSource.databaseName());
if (dataSource.portNumber() != -1)
metaData.setPortNumber(dataSource.portNumber());
Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/jboss/AbstractComponentProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/jboss/AbstractComponentProcessor.java 2010-12-07 18:59:05 UTC (rev 109762)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/jboss/AbstractComponentProcessor.java 2010-12-07 19:30:17 UTC (rev 109763)
@@ -24,6 +24,8 @@
import java.lang.reflect.AnnotatedElement;
import org.jboss.metadata.annotation.creator.AbstractProcessor;
+import org.jboss.metadata.annotation.creator.DataSourceDefinitionProcessor;
+import org.jboss.metadata.annotation.creator.DataSourceDefinitionsProcessor;
import org.jboss.metadata.annotation.creator.EJBClassProcessor;
import org.jboss.metadata.annotation.creator.EJBFieldProcessor;
import org.jboss.metadata.annotation.creator.EJBMethodProcessor;
@@ -50,6 +52,7 @@
import org.jboss.metadata.ejb.jboss.JBossEnvironmentRefsGroupMetaData;
import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.DataSourcesMetaData;
import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
import org.jboss.metadata.javaee.spec.RemoteEnvironmentRefsGroupMetaData;
@@ -99,6 +102,9 @@
addFieldProcessor(new WebServiceRefFieldProcessor(finder));
addTypeProcessor(new WebServiceRefClassProcessor(finder));
addTypeProcessor(new WebServiceRefsClassProcessor(finder));
+ //@DataSourcesDefinitions/DataSourceDefinition
+ addTypeProcessor(new DataSourceDefinitionProcessor(finder));
+ addTypeProcessor(new DataSourceDefinitionsProcessor(finder));
}
/**
@@ -157,5 +163,16 @@
metaData.setPersistenceContextRefs(pcRefs);
}
processClass(pcRefs, type);
+
+ DataSourcesMetaData dataSources = metaData.getDataSources();
+
+ if(dataSources == null)
+ {
+ dataSources = new DataSourcesMetaData();
+ metaData.setDataSources(dataSources);
+ }
+
+ processClass(dataSources, type);
+
}
}
Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java 2010-12-07 18:59:05 UTC (rev 109762)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java 2010-12-07 19:30:17 UTC (rev 109763)
@@ -184,17 +184,21 @@
EJBLocalReferencesMetaData jbossEjbLocalRefs = null;
PersistenceContextReferencesMetaData specPersistenceContextRefs = null;
PersistenceContextReferencesMetaData jbossPersistenceContextRefs = null;
-
+ DataSourcesMetaData specDataSourcesMetaData = null;
+ DataSourcesMetaData jbossDataSourcesMetaData = null;
+
if (specEnv != null)
{
ejbLocalRefs = specEnv.getEjbLocalReferences();
specPersistenceContextRefs = specEnv.getPersistenceContextRefs();
+ specDataSourcesMetaData = specEnv.getDataSources();
}
if (jbossEnv != null)
{
jbossEjbLocalRefs = jbossEnv.getEjbLocalReferences();
jbossPersistenceContextRefs = jbossEnv.getPersistenceContextRefs();
+ jbossDataSourcesMetaData = jbossEnv.getDataSources();
}
else
{
@@ -229,6 +233,13 @@
if (mergedPcRefs != null)
this.setPersistenceContextRefs(mergedPcRefs);
+ DataSourcesMetaData mergedDataSources = DataSourcesMetaData.merge(jbossDataSourcesMetaData, specDataSourcesMetaData, overridenFile, overrideFile);
+
+ if(mergedDataSources != null)
+ {
+ this.setDataSources(mergedDataSources);
+ }
+
}
public void merge(JBossEnvironmentRefsGroupMetaData override, JBossEnvironmentRefsGroupMetaData original, ResourceManagersMetaData resourceManagers)
More information about the jboss-cvs-commits
mailing list