[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