You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2006/10/27 03:42:31 UTC

svn commit: r468224 - in /incubator/openejb/trunk/openejb3: ./ container/openejb-core/src/main/java/org/apache/openejb/alt/config/ container/openejb-core/src/test/java/org/apache/openejb/core/stateful/ container/openejb-core/src/test/java/org/apache/op...

Author: dblevins
Date: Thu Oct 26 18:42:30 2006
New Revision: 468224

URL: http://svn.apache.org/viewvc?view=rev&rev=468224
Log:
Validation phase of deployment now implements deployer interface and can be optionally skipped via -Dopenejb.validation.skip=true

Added:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ValidateEjbModule.java
Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/Deploy.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbModule.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbValidator.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
    incubator/openejb/trunk/openejb3/pom.xml

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java Thu Oct 26 18:42:30 2006
@@ -141,7 +141,7 @@
         }
 
 
-        return new EjbModule(this.jarLocation, ejbModule.getEjbJar(), openejbJar);
+        return new EjbModule(classLoader, this.jarLocation, ejbModule.getEjbJar(), openejbJar);
     }
 
     private Map<String, Connector> getConnectorsById() {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoDeployer.java Thu Oct 26 18:42:30 2006
@@ -48,7 +48,7 @@
 
     public EjbModule deploy(EjbModule ejbModule) throws OpenEJBException {
         if (ejbModule.getOpenejbJar() != null){
-            return new EjbModule(ejbModule.getJarURI(), ejbModule.getEjbJar(), ejbModule.getOpenejbJar());
+            return new EjbModule(ejbModule.getClassLoader(), ejbModule.getJarURI(), ejbModule.getEjbJar(), ejbModule.getOpenejbJar());
         }
 
         this.jarLocation = ejbModule.getJarURI();
@@ -61,7 +61,7 @@
         for (int i = 0; i < beans.length; i++) {
             openejbJar.getEjbDeployment().add(deployBean(beans[i], this.jarLocation));
         }
-        return new EjbModule(this.jarLocation, ejbModule.getEjbJar(), openejbJar);
+        return new EjbModule(ejbModule.getClassLoader(), this.jarLocation, ejbModule.getEjbJar(), openejbJar);
     }
 
     private EjbDeployment deployBean(Bean bean, String jarLocation) throws OpenEJBException {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/Deploy.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/Deploy.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/Deploy.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/Deploy.java Thu Oct 26 18:42:30 2006
@@ -165,7 +165,8 @@
             throw new OpenEJBException("Unable to create a classloader to load classes from '" + jarLocation + "'", e);
         }
 
-        EjbSet set = validator.validateJar(ejbJarUtils, classLoader);
+        final EjbModule ejbModule = new EjbModule(classLoader, ejbJarUtils.getJarLocation(), ejbJarUtils.getEjbJar(), ejbJarUtils.getOpenejbJar());
+        EjbSet set = validator.validateJar(ejbModule);
 
         if (set.hasErrors() || set.hasFailures()) {
             validator.printResults(set);

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java Thu Oct 26 18:42:30 2006
@@ -18,13 +18,10 @@
 package org.apache.openejb.alt.config;
 
 import org.apache.openejb.alt.config.sys.Deployments;
-import org.apache.openejb.alt.config.ejb.OpenejbJar;
 import org.apache.openejb.loader.FileUtils;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.OpenEJB;
-import org.apache.openejb.util.Logger;
-import org.apache.openejb.jee.EjbJar;
 
 import java.util.List;
 import java.util.ArrayList;
@@ -133,7 +130,10 @@
                 }
             };
         }
-        EjbValidator validator = new EjbValidator();
+
+        if (!SystemInstance.get().getProperty("openejb.validation.skip", "false").equalsIgnoreCase("true")){
+            deployer = new ValidateEjbModule(deployer);
+        }
 
         List<EjbModule> deployedJars = new ArrayList();
 
@@ -184,25 +184,6 @@
 
                 EjbModule undeployedModule = new EjbModule(classLoader, jarLocation, ejbJarUtils.getEjbJar(), ejbJarUtils.getOpenejbJar());
                 EjbModule ejbModule = deployer.deploy(undeployedModule);
-
-                EjbSet set = validator.validateJar(ejbJarUtils, classLoader);
-                if (set.hasErrors() || set.hasFailures()) {
-                    Logger logger = Logger.getInstance("OpenEJB.startup.validation", "org.apache.openejb.alt.config.rules");
-
-                    ValidationError[] errors = set.getErrors();
-                    for (int j = 0; j < errors.length; j++) {
-                        ValidationError e = errors[j];
-                        String ejbName = (e.getBean() != null)? e.getBean().getEjbName(): "null";
-                        logger.error(e.getPrefix() + " ... " + ejbName + ":\t" + e.getMessage(2));
-                    }
-                    ValidationFailure[] failures = set.getFailures();
-                    for (int j = 0; j < failures.length; j++) {
-                        ValidationFailure e = failures[j];
-                        logger.error(e.getPrefix() + " ... " + e.getBean().getEjbName() + ":\t" + e.getMessage(2));
-                    }
-
-                    throw new OpenEJBException("Jar failed validation.  Use the validation tool for more details");
-                }
 
                 /* Add it to the Vector ***************/
                 ConfigurationFactory.logger.info("Loaded EJBs from " + jarLocation);

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbModule.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbModule.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbModule.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbModule.java Thu Oct 26 18:42:30 2006
@@ -32,12 +32,6 @@
     private OpenejbJar openejbJar;
     private String jarURI;
 
-    public EjbModule(String jar, EjbJar ejbJar, OpenejbJar openejbJar) {
-        this.ejbJar = ejbJar;
-        this.openejbJar = openejbJar;
-        this.jarURI = jar;
-    }
-
     public EjbModule(ClassLoader classLoader, String jarURI, EjbJar ejbJar, OpenejbJar openejbJar) {
         this.classLoader = classLoader;
         this.ejbJar = ejbJar;
@@ -55,6 +49,10 @@
 
     public String getJarURI() {
         return jarURI;
+    }
+
+    public String getJarLocation() {
+        return getJarURI();
     }
 
     public ClassLoader getClassLoader() {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbValidator.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbValidator.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbValidator.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbValidator.java Thu Oct 26 18:42:30 2006
@@ -67,11 +67,11 @@
         return ejbSets;
     }
 
-    public EjbSet validateJar(final EjbJarUtils ejbJarUtils, ClassLoader classLoader) {
+    public EjbSet validateJar(final EjbModule ejbModule) {
         EjbSet set = null;
 
         try {
-            set = new EjbSet(ejbJarUtils.getJarLocation(), ejbJarUtils.getEjbJar(), EjbJarUtils.getBeans(ejbJarUtils.getEjbJar()), classLoader);
+            set = new EjbSet(ejbModule.getJarLocation(), ejbModule.getEjbJar(), EjbJarUtils.getBeans(ejbModule.getEjbJar()), ejbModule.getClassLoader());
             ValidationRule[] rules = getValidationRules();
             for (int i = 0; i < rules.length; i++) {
                 rules[i].validate(set);
@@ -91,9 +91,9 @@
                 }
 
                 public String getEjbName() {
-                    String name = ejbJarUtils.getEjbJar().getDisplayName();
+                    String name = ejbModule.getEjbJar().getDisplayName();
                     if (name == null){
-                        File jar = new File(ejbJarUtils.getJarLocation());
+                        File jar = new File(ejbModule.getJarLocation());
                         jar = jar.getAbsoluteFile();
                         name = jar.getName();
                         if (name.equals(".")){
@@ -384,7 +384,8 @@
                             } catch (MalformedURLException e) {
                                 throw new OpenEJBException("Unable to create a classloader to load classes from '" + jarLocation + "'", e);
                             }
-                            EjbSet set = v.validateJar(ejbJarUtils, classLoader);
+                            final EjbModule ejbModule = new EjbModule(classLoader, ejbJarUtils.getJarLocation(), ejbJarUtils.getEjbJar(), ejbJarUtils.getOpenejbJar());
+                            EjbSet set = v.validateJar(ejbModule);
                             v.addEjbSet(set);
                         } catch (Exception e) {
                             e.printStackTrace();

Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ValidateEjbModule.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ValidateEjbModule.java?view=auto&rev=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ValidateEjbModule.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ValidateEjbModule.java Thu Oct 26 18:42:30 2006
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.alt.config;
+
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.util.Logger;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ValidateEjbModule implements DynamicDeployer {
+    private final DynamicDeployer deployer;
+
+    public ValidateEjbModule(DynamicDeployer deployer) {
+        this.deployer = deployer;
+    }
+
+    public EjbModule deploy(EjbModule ejbModule) throws OpenEJBException {
+        ejbModule = deployer.deploy(ejbModule);
+
+        EjbValidator validator = new EjbValidator();
+        EjbSet set = validator.validateJar(ejbModule);
+        if (set.hasErrors() || set.hasFailures()) {
+            Logger logger = Logger.getInstance("OpenEJB.startup.validation", "org.apache.openejb.alt.config.rules");
+
+            ValidationError[] errors = set.getErrors();
+            for (int j = 0; j < errors.length; j++) {
+                ValidationError e = errors[j];
+                String ejbName = (e.getBean() != null)? e.getBean().getEjbName(): "null";
+                logger.error(e.getPrefix() + " ... " + ejbName + ":\t" + e.getMessage(2));
+            }
+            ValidationFailure[] failures = set.getFailures();
+            for (int j = 0; j < failures.length; j++) {
+                ValidationFailure e = failures[j];
+                logger.error(e.getPrefix() + " ... " + e.getBean().getEjbName() + ":\t" + e.getMessage(2));
+            }
+
+            throw new OpenEJBException("Jar failed validation.  Use the validation tool for more details");
+        }
+        return ejbModule;
+    }
+}

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java Thu Oct 26 18:42:30 2006
@@ -150,7 +150,7 @@
         OpenejbJar openejbJar = new OpenejbJar();
         openejbJar.addEjbDeployment(new EjbDeployment("Stateful Container", "widget", "widget"));
 
-        EjbModule jar = new EjbModule("", ejbJar, openejbJar);
+        EjbModule jar = new EjbModule(this.getClass().getClassLoader(), "", ejbJar, openejbJar);
 
         // Build the DeploymentInfos
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java Thu Oct 26 18:42:30 2006
@@ -121,7 +121,7 @@
         OpenejbJar openejbJar = new OpenejbJar();
         openejbJar.addEjbDeployment(new EjbDeployment("Stateless Container", "widget", "widget"));
 
-        EjbModule jar = new EjbModule("", ejbJar, openejbJar);
+        EjbModule jar = new EjbModule(this.getClass().getClassLoader(), "", ejbJar, openejbJar);
 
         HashMap<String, DeploymentInfo> ejbs = build(jar);
         deploymentInfo = ejbs.get("widget");

Modified: incubator/openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/pom.xml?view=diff&rev=468224&r1=468223&r2=468224
==============================================================================
--- incubator/openejb/trunk/openejb3/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/pom.xml Thu Oct 26 18:42:30 2006
@@ -95,9 +95,9 @@
 
   <properties>
     <!--
-       - Used in openejb-core pom.xml 
+       - Used in openejb-core pom.xml
       -->
-    <xbeanVersion>2.7</xbeanVersion>
+    <xbeanVersion>2.8-SNAPSHOT</xbeanVersion>
     <!--
        - Remove the property once it's been figured out how to instruct maven-assembly-plugin
        - to copy SNAPSHOTs as SNAPSHOTs not 20061004.144417-3.