You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/07/31 22:28:49 UTC

svn commit: r1152629 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java

Author: rmannibucau
Date: Sun Jul 31 20:28:48 2011
New Revision: 1152629

URL: http://svn.apache.org/viewvc?rev=1152629&view=rev
Log:
@Repository: if there is only one persistence context in the app using it by default

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1152629&r1=1152628&r2=1152629&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Sun Jul 31 20:28:48 2011
@@ -693,17 +693,26 @@ public class Assembler extends Assembler
                 for (String repository : ejbJar.repositories) {
                     try {
                         Class<?> proxied = classLoader.loadClass(repository);
-                        // TODO: move it in config
+
+                        // TODO: move it in config?
                         Repository annotation = proxied.getAnnotation(Repository.class);
                         PersistenceContext pc = annotation.context();
+                        String unitName = pc.unitName();
+                        if ("".equals(pc.unitName())) {
+                            if (appInfo.persistenceUnits.size() == 1) {
+                                unitName = appInfo.persistenceUnits.iterator().next().name;
+                            } else {
+                                throw new OpenEJBException("specify a unit name for repository " + repository);
+                            }
+                        }
 
                         // create the em
                         Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
                         EntityManagerFactory factory;
                         try {
-                            factory = (EntityManagerFactory) context.lookup(units.get(pc.unitName()));
+                            factory = (EntityManagerFactory) context.lookup(units.get(unitName));
                         } catch (NamingException e) {
-                            throw new OpenEJBException("PersistenceUnit '" + pc.unitName() + "' not found");
+                            throw new OpenEJBException("PersistenceUnit '" + unitName + "' not found");
                         }
                         Map<String, String> properties = new LinkedHashMap<String, String>();
                         for (PersistenceProperty property : pc.properties()) {
@@ -720,7 +729,9 @@ public class Assembler extends Assembler
                         if (jndi == null || jndi.isEmpty()) {
                             jndi = "openejb/Repository/" + repository;
                         }
-                        containerSystemContext.bind(jndi, proxy); // TODO in a better way
+
+                        // TODO in a better way
+                        containerSystemContext.bind(jndi, proxy);
                         repositoryNames.add(jndi);
                         logger.info("Bound @Repository " + repository + " to " + jndi);
                         appContext.getGlobalJndiContext().bind("global/" + jndi, proxy);