Author: dblevins
Date: Mon Sep 24 21:28:29 2007
New Revision: 579058

URL: http://svn.apache.org/viewvc?rev=579058&view=rev
Log:
Merged several fixes from trunk:
577530:  reformatted
577541:  Resolve paths to the conf dir, openejb base, or user dir log error on 
hardwired logger if the directories for the log files don't exist.
578355:  Turned the List of remote and local business interfaces into a Set to 
prevent duplication
578356:  Added explicit message to when something a remote interfaces 
passes/returns/throws is not serializable.
578381:  Convert exceptions properly for business intefaces that extend 
javax.rmi.Remote
578402:  Fixed up the logging.properties to match the 
embedded.logging.properties in terms of levels
578409:  Fixed the feature that intended to cut out the openejb system apps 
when doing embedded testing.
579035:  Fixed issue with not being able to specify xml overrides for @EJB 
annotation usage
579038:  Put the SecurityServiceImpl before the PseudoSecurityService so it's 
picked for the default.


Modified:
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
    
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/logging.properties
    
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
    
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/RemoteBean.java
    
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
 Mon Sep 24 21:28:29 2007
@@ -335,7 +335,7 @@
                 context.bind(name, ref);
                 bindings.add(name);
                 beanInfo.jndiNames.add(externalName);
-                logger.info("Jndi(name=" + externalName +") bound to 
Ejb(deployment-id="+beanInfo.ejbDeploymentId+")");
+                logger.info("Jndi(name=" + externalName +") --> 
Ejb(deployment-id="+beanInfo.ejbDeploymentId+")");
             } catch (NameAlreadyBoundException e) {
                 DeploymentInfo deployment = findNameOwner(name);
                 if (deployment != null){

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 Mon Sep 24 21:28:29 2007
@@ -1484,6 +1484,28 @@
             }
             ejbRef.setMappedName(mappedName);
 
+
+            Map<String, EjbRef> remoteRefs = 
mapReferences(consumer.getEjbRef());
+            if (remoteRefs.containsKey(ejbRef.getName())){
+                EjbRef ref = remoteRefs.get(ejbRef.getName());
+                if (ref.getRemote() == null) ref.setRemote(ejbRef.getRemote());
+                if (ref.getHome() == null) ref.setHome(ejbRef.getHome());
+                if (ref.getMappedName() == null) 
ref.setMappedName(ejbRef.getMappedName());
+                ref.getInjectionTarget().addAll(ejbRef.getInjectionTarget());
+                return;
+            }
+
+            Map<String, EjbLocalRef> localRefs = 
mapReferences(consumer.getEjbLocalRef());
+            if (localRefs.containsKey(ejbRef.getName())){
+                EjbLocalRef ejbLocalRef = new EjbLocalRef(ejbRef);
+                EjbLocalRef ref = localRefs.get(ejbLocalRef.getName());
+                if (ref.getLocal() == null) 
ref.setLocal(ejbLocalRef.getLocal());
+                if (ref.getLocalHome() == null) 
ref.setLocalHome(ejbLocalRef.getLocalHome());
+                if (ref.getMappedName() == null) 
ref.setMappedName(ejbLocalRef.getMappedName());
+                
ref.getInjectionTarget().addAll(ejbLocalRef.getInjectionTarget());
+                return;
+            }
+
             switch (ejbRef.getRefType()) {
                 case UNKNOWN:
                 case REMOTE:
@@ -1493,6 +1515,14 @@
                     consumer.getEjbLocalRef().add(new EjbLocalRef(ejbRef));
                     break;
             }
+        }
+
+        private static <T extends JndiReference> Map<String, T> 
mapReferences(List<T> refsList) {
+            Map<String, T> refs = new HashMap<String, T>(refsList.size());
+            for (T ref : refsList) {
+                refs.put(ref.getName(), ref);
+            }
+            return refs;
         }
 
         private List<Class<?>> copy(List<Class<?>> classes) {

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
 Mon Sep 24 21:28:29 2007
@@ -226,7 +226,7 @@
             if (!filterDescriptors){
                 unchecked = prefiltered.exclude(urlSet);
                 if (filterSystemApps){
-                    urlSet = 
urlSet.exclude(".*/openejb-[^/]+(.(jar|ear|war)(!/)?|/target/classes/?)");
+                    unchecked = 
unchecked.exclude(".*/openejb-[^/]+(.(jar|ear|war)(./)?|/target/classes/?)");
                 }
                 processUrls(unchecked.getUrls(), classLoader, false, base, 
jarList);
             }

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
 Mon Sep 24 21:28:29 2007
@@ -23,6 +23,7 @@
 import java.io.ObjectOutputStream;
 import java.io.ObjectStreamException;
 import java.io.Serializable;
+import java.io.NotSerializableException;
 import java.lang.ref.WeakReference;
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
@@ -34,7 +35,6 @@
 import java.util.Properties;
 import java.util.List;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.WeakHashMap;
 import java.util.Set;
 
@@ -59,6 +59,7 @@
 import org.apache.openejb.util.proxy.ProxyManager;
 
 public abstract class BaseEjbProxyHandler implements InvocationHandler, 
Serializable {
+    private static final String OPENEJB_LOCALCOPY = "openejb.localcopy";
 
     private static class ProxyRegistry {
 
@@ -184,7 +185,7 @@
 
     private static boolean parseRemoteCopySetting() {
         Properties properties = SystemInstance.get().getProperties();
-        String value = properties.getProperty("openejb.localcopy");
+        String value = properties.getProperty(OPENEJB_LOCALCOPY);
         if (value == null) {
             value = 
properties.getProperty(org.apache.openejb.core.EnvProps.INTRA_VM_COPY);
         }
@@ -247,7 +248,7 @@
                 IntraVmCopyMonitor.preCopyOperation();
                 try {
                     throwable = (Throwable) copyObj(throwable);
-                    throw convertException(throwable, method);
+                    throw convertException(throwable, method, interfce);
                 } finally {
                     IntraVmCopyMonitor.postCopyOperation();
                 }
@@ -288,7 +289,7 @@
                 IntraVmCopyMonitor.preCrossClassLoaderOperation();
                 try {
                     throwable = (Throwable) copyObj(throwable);
-                    throw convertException(throwable, method);
+                    throw convertException(throwable, method, interfce);
                 } finally {
                     IntraVmCopyMonitor.postCrossClassLoaderOperation();
                 }
@@ -319,7 +320,7 @@
 
                 return _invoke(proxy, interfce, method, args);
             } catch (Throwable t) {
-                throw convertException(t, method);
+                throw convertException(t, method, interfce);
             }
         }
     }
@@ -329,10 +330,12 @@
      * will be the top element in the stacktrace
      * @param e
      * @param method
+     * @param interfce
      */
-    protected Throwable convertException(Throwable e, Method method) {
+    protected Throwable convertException(Throwable e, Method method, Class 
interfce) {
+        boolean rmiRemote = java.rmi.Remote.class.isAssignableFrom(interfce);
         if (e instanceof TransactionRequiredException) {
-            if (interfaceType.isBusiness()) {
+            if (!rmiRemote && interfaceType.isBusiness()) {
                 return new 
EJBTransactionRequiredException(e.getMessage()).initCause(getCause(e));
             } else if (interfaceType.isLocal()) {
                 return new 
TransactionRequiredLocalException(e.getMessage()).initCause(getCause(e));
@@ -341,7 +344,7 @@
             }
         }
         if (e instanceof TransactionRolledbackException) {
-            if (interfaceType.isBusiness()) {
+            if (!rmiRemote && interfaceType.isBusiness()) {
                 return new 
EJBTransactionRolledbackException(e.getMessage()).initCause(getCause(e));
             } else if (interfaceType.isLocal()) {
                 return new 
TransactionRolledbackLocalException(e.getMessage()).initCause(getCause(e));
@@ -350,7 +353,7 @@
             }
         }
         if (e instanceof NoSuchObjectException) {
-            if (interfaceType.isBusiness()) {
+            if (!rmiRemote && interfaceType.isBusiness()) {
                 return new 
NoSuchEJBException(e.getMessage()).initCause(getCause(e));
             } else if (interfaceType.isLocal()) {
                 return new 
NoSuchObjectLocalException(e.getMessage()).initCause(getCause(e));
@@ -359,7 +362,7 @@
             }
         }
         if (e instanceof RemoteException) {
-            if (interfaceType.isBusiness()) {
+            if (!rmiRemote && interfaceType.isBusiness()) {
                 return new EJBException(e.getMessage()).initCause(getCause(e));
             } else if (interfaceType.isLocal()) {
                 return new EJBException(e.getMessage()).initCause(getCause(e));
@@ -368,7 +371,7 @@
             }
         }
         if (e instanceof AccessException) {
-            if (interfaceType.isBusiness()) {
+            if (!rmiRemote && interfaceType.isBusiness()) {
                 return new 
AccessLocalException(e.getMessage()).initCause(getCause(e));
             } else if (interfaceType.isLocal()) {
                 return new 
AccessLocalException(e.getMessage()).initCause(getCause(e));
@@ -498,10 +501,15 @@
         }
 
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream(128);
-        ObjectOutputStream out = new ObjectOutputStream(baos);
-        out.writeObject(object);
-        out.close();
+        ByteArrayOutputStream baos = null;
+        try {
+            baos = new ByteArrayOutputStream(128);
+            ObjectOutputStream out = new ObjectOutputStream(baos);
+            out.writeObject(object);
+            out.close();
+        } catch (NotSerializableException e) {
+            throw (IOException) new NotSerializableException(e.getMessage()+" 
: The EJB specification restricts remote interfaces to only serializable data 
types.  This can be disabled for in-vm use with the "+OPENEJB_LOCALCOPY+"=false 
system property.").initCause(e);
+        }
 
         ByteArrayInputStream bais = new 
ByteArrayInputStream(baos.toByteArray());
         ObjectInputStream in = new EjbObjectInputStream(bais);

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 Mon Sep 24 21:28:29 2007
@@ -18,6 +18,8 @@
 
 import org.apache.log4j.Level;
 import org.apache.log4j.PropertyConfigurator;
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.SimpleLayout;
 import org.apache.openejb.loader.FileUtils;
 import org.apache.openejb.loader.SystemInstance;
 
@@ -32,10 +34,12 @@
 import java.io.InputStream;
 import java.net.URL;
 import java.text.MessageFormat;
+import java.util.Map;
 import java.util.MissingResourceException;
 import java.util.Properties;
 import java.util.ResourceBundle;
-import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
 
 public class Logger {
 
@@ -118,102 +122,147 @@
     private static final Computable<String, MessageFormat> messageFormatCache 
= new Memoizer<String, MessageFormat>(
             messageFormatResolver);
 
-       private static final String LOGGING_PROPERTIES_FILE = 
"logging.properties";
-       private static final String EMBEDDED_PROPERTIES_FILE = 
"embedded.logging.properties";
-       static {
-               try {
-                       String prop = 
System.getProperty("openejb.logger.external","false");
-                       boolean externalLogging = Boolean.parseBoolean(prop);
-                       if(!externalLogging)
-                               configureInternal();
-               } catch (Exception e) {
-         // The fall back here is that if log4j.configuration system property 
is set, then that configuration file will be used. 
-                       e.printStackTrace();
-               }
-       }
-
-       private static void configureInternal() throws IOException {
-               
-               System.setProperty("openjpa.Log", "log4j");
-               SystemInstance system = SystemInstance.get();
-               FileUtils base = system.getBase();
-               File confDir = base.getDirectory("conf");
-               File loggingPropertiesFile = new File(confDir, 
LOGGING_PROPERTIES_FILE);
-               if (confDir.exists()) {
-                       if (loggingPropertiesFile.exists()) {
-                               BufferedInputStream bis = new 
BufferedInputStream(new FileInputStream(loggingPropertiesFile));
-                               Properties props = new Properties();
-                               props.load(bis);
+    private static final String LOGGING_PROPERTIES_FILE = "logging.properties";
+    private static final String EMBEDDED_PROPERTIES_FILE = 
"embedded.logging.properties";
+
+    static {
+        try {
+            String prop = System.getProperty("openejb.logger.external", 
"false");
+            boolean externalLogging = Boolean.parseBoolean(prop);
+            if (!externalLogging)
+                configureInternal();
+        } catch (Exception e) {
+            // The fall back here is that if log4j.configuration system 
property is set, then that configuration file will be used.
+            e.printStackTrace();
+        }
+    }
+
+    private static void configureInternal() throws IOException {
+
+        System.setProperty("openjpa.Log", "log4j");
+        SystemInstance system = SystemInstance.get();
+        FileUtils base = system.getBase();
+        File confDir = base.getDirectory("conf");
+        File loggingPropertiesFile = new File(confDir, 
LOGGING_PROPERTIES_FILE);
+        if (confDir.exists()) {
+            if (loggingPropertiesFile.exists()) {
+                BufferedInputStream bis = new BufferedInputStream(new 
FileInputStream(loggingPropertiesFile));
+                Properties props = new Properties();
+                props.load(bis);
                 preprocessProperties(props);
                 PropertyConfigurator.configure(props);
-                               try{
-                                       bis.close();
-                               }catch(IOException e){
-                                       
-                               }
-                       } else {
-                               
installLoggingPropertiesFile(loggingPropertiesFile);
-                       }
-               }else{
-                       configureEmbedded();
-               } 
-       }
-
-    private static void preprocessProperties(Properties props) {
-        String openejbHome = 
SystemInstance.get().getHome().getDirectory().getAbsolutePath();
-        String openejbBase = 
SystemInstance.get().getBase().getDirectory().getAbsolutePath();
-        for (Map.Entry<Object, Object> entry : props.entrySet()) {
+                try {
+                    bis.close();
+                } catch (IOException e) {
+
+                }
+            } else {
+                installLoggingPropertiesFile(loggingPropertiesFile);
+            }
+        } else {
+            configureEmbedded();
+        }
+    }
+
+    private static void preprocessProperties(Properties properties) {
+        FileUtils base = SystemInstance.get().getBase();
+        File confDir = new File(base.getDirectory(), "conf");
+        File baseDir = base.getDirectory();
+        File userDir = new File("foo").getParentFile();
+
+        File[] paths = {confDir, baseDir, userDir};
+
+        List missing = new ArrayList();
+
+        for (Map.Entry<Object, Object> entry : properties.entrySet()) {
+            String key = (String) entry.getKey();
             String value = (String) entry.getValue();
-            value = value.replace("${openejb.home}", openejbHome);
-            value = value.replace("${openejb.base}", openejbBase);
-            entry.setValue(value);
+
+
+            if (key.endsWith(".File")) {
+
+                boolean found = false;
+                for (int i = 0; i < paths.length && !found; i++) {
+                    File path = paths[i];
+                    File logfile = new File(path, value);
+                    if (logfile.getParentFile().exists()) {
+                        properties.setProperty(key, logfile.getAbsolutePath());
+                        found = true;
+                    }
+                }
+
+                if (!found) {
+                    File logfile = new File(paths[0], value);
+                    missing.add(logfile);
+                }
+            }
+        }
+
+        if (missing.size() > 0) {
+            org.apache.log4j.Logger logger = getFallabckLogger();
+
+            logger.error("Logging may not operate as expected.  The 
directories for the following files do not exist so no file can be created.  
See the list below.");
+            for (int i = 0; i < missing.size(); i++) {
+                File file = (File) missing.get(i);
+                logger.error("[" + i + "] " + file.getAbsolutePath());
+            }
         }
     }
 
-    private static void configureEmbedded(){
-       URL resource = 
Thread.currentThread().getContextClassLoader().getResource(EMBEDDED_PROPERTIES_FILE);
-       if(resource != null)
-               PropertyConfigurator.configure(resource);
-       else
-               System.out.println("FATAL ERROR WHILE CONFIGURING LOGGING!!!. 
MISSING embedded.logging.properties FILE ");
+    private static org.apache.log4j.Logger getFallabckLogger() {
+        org.apache.log4j.Logger logger = 
org.apache.log4j.Logger.getLogger("OpenEJB.logging");
+
+        SimpleLayout simpleLayout = new SimpleLayout();
+        ConsoleAppender newAppender = new ConsoleAppender(simpleLayout);
+        logger.addAppender(newAppender);
+        return logger;
+    }
+
+    private static void configureEmbedded() {
+        URL resource = 
Thread.currentThread().getContextClassLoader().getResource(EMBEDDED_PROPERTIES_FILE);
+        if (resource != null)
+            PropertyConfigurator.configure(resource);
+        else
+            System.out.println("FATAL ERROR WHILE CONFIGURING LOGGING!!!. 
MISSING embedded.logging.properties FILE ");
     }
 
     private static void installLoggingPropertiesFile(File 
loggingPropertiesFile) throws IOException {
-       URL resource = 
Thread.currentThread().getContextClassLoader().getResource(LOGGING_PROPERTIES_FILE);
-        if(resource == null){
-               System.out.println("FATAL ERROR WHILE CONFIGURING LOGGING!!!. 
MISSING logging.properties FILE ");
-               return;
-        }
-       InputStream in = resource.openStream();
-       in = new BufferedInputStream(in);
-       ByteArrayOutputStream bao = new ByteArrayOutputStream();
+        URL resource = 
Thread.currentThread().getContextClassLoader().getResource(LOGGING_PROPERTIES_FILE);
+        if (resource == null) {
+            System.out.println("FATAL ERROR WHILE CONFIGURING LOGGING!!!. 
MISSING logging.properties FILE ");
+            return;
+        }
+        InputStream in = resource.openStream();
+        in = new BufferedInputStream(in);
+        ByteArrayOutputStream bao = new ByteArrayOutputStream();
         byte buf[] = new byte[4096];
         int i = in.read(buf);
-        while(i != -1){
-               bao.write(buf);
-               i = in.read(buf);
+        while (i != -1) {
+            bao.write(buf);
+            i = in.read(buf);
         }
         byte[] byteArray = bao.toByteArray();
         ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
-        
+
         Properties props = new Properties();
         props.load(bis);
         preprocessProperties(props);
-               BufferedOutputStream bout = new BufferedOutputStream(new 
FileOutputStream(loggingPropertiesFile));
-               bout.write(byteArray);
+        BufferedOutputStream bout = new BufferedOutputStream(new 
FileOutputStream(loggingPropertiesFile));
+        bout.write(byteArray);
         PropertyConfigurator.configure(props);
         try {
-                       bout.close();
-               } catch (IOException e) {
-                       
-               }
+            bout.close();
+        } catch (IOException e) {
+
+        }
         try {
-                       in.close();
-               } catch (IOException e) {
+            in.close();
+        } catch (IOException e) {
 
-               }
+        }
 
     }
+
     /**
      * Given a key and a baseName, this method computes a message for a key. if
      * the key is not found in this ResourceBundle for this baseName, then it
@@ -256,7 +305,7 @@
     /**
      * Finds a Logger from the cache and returns it. If not found in cache 
then builds a Logger and returns it.
      *
-     * @param category     - The category of the logger
+     * @param category - The category of the logger
      * @param baseName - The baseName for the ResourceBundle
      * @return Logger
      */
@@ -287,11 +336,12 @@
         String name = clazz.getName();
         return name.substring(0, name.lastIndexOf("."));
     }
-    
-    public Logger getLogger(String moduleId){
-       return Logger.getInstance(this.category,this.baseName);
-       
+
+    public Logger getLogger(String moduleId) {
+        return Logger.getInstance(this.category, this.baseName);
+
     }
+
     /**
      * Formats a given message
      *

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
 Mon Sep 24 21:28:29 2007
@@ -160,12 +160,12 @@
     # Specifies the size of the bean pools for this
     # stateful SessionBean container.
 
-    PoolSize 100
+    PoolSize 1000
 
     # Property name that specifies the number of instances
     # to passivate at one time when doing bulk passivation.
 
-    BulkPassivate 50
+    BulkPassivate 100
 
   </ServiceProvider>
 
@@ -217,16 +217,16 @@
   # ================================================
   -->
   <ServiceProvider
-          id="PseudoSecurityService"
+          id="Default Security Service"
           service="SecurityService"
           types="SecurityService"
-          class-name="org.apache.openejb.ri.sp.PseudoSecurityService"/>
+          class-name="org.apache.openejb.core.security.SecurityServiceImpl"/>
 
   <ServiceProvider
-          id="Default Security Service"
+          id="PseudoSecurityService"
           service="SecurityService"
           types="SecurityService"
-          class-name="org.apache.openejb.core.security.SecurityServiceImpl"/>
+          class-name="org.apache.openejb.ri.sp.PseudoSecurityService"/>
 
   <!--
   # ================================================

Modified: 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/logging.properties
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/logging.properties?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/logging.properties
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-core/src/main/resources/logging.properties
 Mon Sep 24 21:28:29 2007
@@ -14,26 +14,28 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
-log4j.category.OpenEJB=warn,R
-log4j.category.OpenEJB.startup=debug
-log4j.category.OpenEJB.server=info
 
-log4j.category.CORBA-Adapter=debug,R
-log4j.category.Transaction=warn,TX
-log4j.category.org.apache.geronimo=error,R
-log4j.category.org.apache.activemq=error,R
-log4j.category.openjpa=error,R
+log4j.category.OpenEJB             = warn,R
+log4j.category.OpenEJB.server      = info
+log4j.category.OpenEJB.startup     = info
+log4j.category.OpenEJB.startup.config = info
+log4j.category.OpenEJB.hsql        = info
+log4j.category.CORBA-Adapter       = error,R
+log4j.category.Transaction         = warn,TX
+log4j.category.org.apache.activemq = error,R
+log4j.category.org.apache.geronimo = error,R
+log4j.category.openjpa             = error,R
 
 log4j.appender.R=org.apache.log4j.RollingFileAppender
 log4j.appender.R.layout=org.apache.log4j.PatternLayout
 log4j.appender.R.MaxFileSize=1000KB
 log4j.appender.R.MaxBackupIndex=7
-log4j.appender.R.File=${openejb.base}/logs/openejb.log
+log4j.appender.R.File=logs/openejb.log
 log4j.appender.R.layout.ConversionPattern=%d - %-5p - %m%n
 
 log4j.appender.TX=org.apache.log4j.RollingFileAppender
 log4j.appender.TX.layout=org.apache.log4j.PatternLayout
 log4j.appender.TX.MaxFileSize=1000KB
 log4j.appender.TX.MaxBackupIndex=100
-log4j.appender.TX.File=${openejb.base}/logs/transaction.log
+log4j.appender.TX.File=logs/transaction.log
 log4j.appender.TX.layout.ConversionPattern=%d - %-5p - %m%n

Modified: 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
 Mon Sep 24 21:28:29 2007
@@ -31,6 +31,7 @@
 import java.util.List;
 import java.util.Collections;
 import java.util.Set;
+import java.util.Collection;
 
 
 /**
@@ -497,12 +498,12 @@
         return this.securityRoleRef;
     }
 
-    public List<String> getBusinessLocal() {
-        return Collections.EMPTY_LIST;
+    public Collection<String> getBusinessLocal() {
+        return Collections.EMPTY_SET;
     }
 
-    public List<String> getBusinessRemote() {
-        return Collections.EMPTY_LIST;
+    public Collection<String> getBusinessRemote() {
+        return Collections.EMPTY_SET;
     }
 
     public SecurityIdentity getSecurityIdentity() {

Modified: 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/RemoteBean.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/RemoteBean.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/RemoteBean.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/RemoteBean.java
 Mon Sep 24 21:28:29 2007
@@ -18,6 +18,7 @@
 package org.apache.openejb.jee;
 
 import java.util.List;
+import java.util.Collection;
 
 /**
  * @version $Revision$ $Date$
@@ -42,7 +43,7 @@
 
     public List<SecurityRoleRef> getSecurityRoleRef();
 
-    List<String> getBusinessLocal();
+    Collection<String> getBusinessLocal();
 
-    List<String> getBusinessRemote();
+    Collection<String> getBusinessRemote();
 }

Modified: 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java?rev=579058&r1=579057&r2=579058&view=diff
==============================================================================
--- 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java
 (original)
+++ 
openejb/branches/3.0-beta-1/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java
 Mon Sep 24 21:28:29 2007
@@ -29,6 +29,9 @@
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Collection;
+import java.util.Set;
+import java.util.LinkedHashSet;
 
 
 /**
@@ -145,9 +148,9 @@
     protected String localHome;
     protected String local;
     @XmlElement(name = "business-local")
-    protected List<String> businessLocal;
+    protected LinkedHashSet<String> businessLocal;
     @XmlElement(name = "business-remote")
-    protected List<String> businessRemote;
+    protected LinkedHashSet<String> businessRemote;
     @XmlElement(name = "service-endpoint")
     protected String serviceEndpoint;
     @XmlElement(name = "ejb-class")
@@ -334,9 +337,9 @@
         this.local = value;
     }
 
-    public List<String> getBusinessLocal() {
+    public Collection<String> getBusinessLocal() {
         if (businessLocal == null){
-            businessLocal = new ArrayList<String>();
+            businessLocal = new LinkedHashSet<String>();
         }
         return businessLocal;
     }
@@ -346,9 +349,9 @@
         getBusinessLocal().add(businessLocal);
     }
 
-    public List<String> getBusinessRemote() {
+    public Collection<String> getBusinessRemote() {
         if (businessRemote == null){
-            businessRemote = new ArrayList<String>();
+            businessRemote = new LinkedHashSet<String>();
         }
         return businessRemote;
     }
@@ -423,7 +426,7 @@
         assert ejbClass != null: "Set the ejbClass before calling this method";
         getAroundInvoke().add(new AroundInvoke(ejbClass, method));
     }
-    
+
     public List<EnvEntry> getEnvEntry() {
         if (envEntry == null) {
             envEntry = new ArrayList<EnvEntry>();


Reply via email to