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 2012/02/26 21:29:03 UTC
svn commit: r1293930 - in /openejb/trunk/openejb:
arquillian-tomee/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/
container/openejb-core/src/main/java/org/apache/openejb/
container/openejb-core/src/main/java/org/apache...
Author: dblevins
Date: Sun Feb 26 20:29:02 2012
New Revision: 1293930
URL: http://svn.apache.org/viewvc?rev=1293930&view=rev
Log:
Use new XBEAN-202 API for selecting sub-finders rather than creating a new finder for each bean.
Added IO.read(URL) and removed duplicates
OPENEJB-1784: Run heavy static initializers in parallel for performance boost
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java
Modified:
openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigUtils.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EnvEntriesPropertiesDeployer.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WlsConversion.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContext.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/ConfUtils.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/Log4jLogStreamFactory.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/SafeToolkit.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/IO.java
openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
openejb/trunk/openejb/utils/openejb-provisionning/src/main/java/org/apache/openejb/resolver/Resolver.java
Modified: openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java (original)
+++ openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java Sun Feb 26 20:29:02 2012
@@ -134,7 +134,7 @@ public class TomEEWebappContainer extend
if (file.exists()) {
Files.delete(file);
}
- InputStream is = resource.openStream();
+ InputStream is = org.apache.openejb.loader.IO.read(resource);
try {
IO.copy(is, file);
Added: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java?rev=1293930&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java Sun Feb 26 20:29:02 2012
@@ -0,0 +1,133 @@
+/*
+ * 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;
+
+import java.net.URL;
+import java.util.concurrent.Semaphore;
+
+/**
+* @version $Rev$ $Date$
+*/
+public class Core {
+ static {
+ final String[] classes = {
+ "org.apache.openejb.util.JuliLogStreamFactory",
+ "org.slf4j.LoggerFactory",
+ "org.slf4j.impl.StaticLoggerBinder",
+
+ "org.apache.openejb.config.sys.JaxbJavaee",
+ "org.apache.bval.jsr303.ApacheValidatorFactory",
+ "org.apache.bval.jsr303.ConstraintAnnotationAttributes",
+ "org.apache.bval.jsr303.ConstraintDefaults",
+ "org.apache.bval.jsr303.groups.GroupsComputer",
+ "org.apache.bval.jsr303.xml.ValidationMappingParser",
+ "org.apache.bval.util.PrivilegedActions",
+ "org.apache.geronimo.transaction.manager.TransactionManagerImpl",
+ "org.apache.openejb.InterfaceType",
+ "org.apache.openejb.assembler.classic.Assembler",
+ "org.apache.openejb.assembler.classic.AssemblerTool",
+ "org.apache.openejb.cdi.CdiBuilder",
+ "org.apache.openejb.cdi.ThreadSingletonServiceImpl",
+ "org.apache.openejb.config.AppValidator",
+ "org.apache.openejb.config.AnnotationDeployer",
+ "org.apache.openejb.config.AutoConfig",
+ "org.apache.openejb.config.ConfigurationFactory",
+ "org.apache.openejb.config.MBeanDeployer",
+ "org.apache.openejb.config.PersistenceContextAnnFactory",
+ "org.apache.openejb.core.ServerFederation",
+ "org.apache.openejb.core.ivm.EjbHomeProxyHandler$1",
+ "org.apache.openejb.core.ivm.EjbHomeProxyHandler$MethodType",
+ "org.apache.openejb.core.managed.ManagedContainer$MethodType",
+ "org.apache.openejb.loader.FileUtils",
+ "org.apache.openejb.loader.IO",
+ "org.apache.openejb.loader.SystemInstance",
+ "org.apache.openejb.monitoring.StatsInterceptor",
+ "org.apache.openejb.persistence.JtaEntityManagerRegistry",
+ "org.apache.openejb.util.Duration",
+ "org.apache.openejb.util.Join",
+ "org.apache.openejb.util.JuliLogStreamFactory",
+ "org.apache.openejb.util.LogCategory",
+ "org.apache.openejb.util.Logger",
+ "org.apache.openejb.util.Messages",
+ "org.apache.openejb.util.SafeToolkit",
+ "org.apache.openejb.util.StringTemplate",
+ "org.apache.openejb.util.proxy.ProxyManager",
+ "org.apache.openjpa.enhance.PCRegistry",
+ "org.apache.openjpa.lib.util.Localizer",
+ "org.apache.xbean.naming.reference.SimpleReference",
+ "org.apache.xbean.propertyeditor.PropertyEditors",
+ "org.apache.xbean.propertyeditor.ReferenceIdentityMap",
+ "org.apache.xbean.recipe.ReflectionUtil",
+ };
+
+ final int permits = 2;
+ final Semaphore semaphore = new Semaphore(permits);
+ final ClassLoader loader = OpenEjbContainer.class.getClassLoader();
+
+ for (final String className : classes) {
+ try {
+ semaphore.acquire();
+ final Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Class.forName(className, true, loader);
+ } catch (Throwable e) {
+ } finally {
+ semaphore.release();
+ }
+ }
+ });
+ thread.setDaemon(true);
+ thread.start();
+ } catch (InterruptedException e) {
+ Thread.interrupted();
+ }
+ }
+ try {
+ semaphore.acquire(permits);
+ } catch (InterruptedException e) {
+ Thread.interrupted();
+ }
+ }
+
+ public static void warmup(){}
+
+ public static class Parallel {
+
+ public static void exec(Runnable... runnables) {
+ final int permits = 2;
+ final Semaphore semaphore = new Semaphore(permits);
+
+ for (Runnable runnable : runnables) {
+ try {
+ semaphore.acquire();
+ final Thread thread = new Thread();
+ thread.setDaemon(true);
+ thread.start();
+ } catch (InterruptedException e) {
+ Thread.interrupted();
+ }
+ }
+ try {
+ semaphore.acquire(permits);
+ } catch (InterruptedException e) {
+ Thread.interrupted();
+ }
+ }
+ }
+}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java Sun Feb 26 20:29:02 2012
@@ -75,6 +75,10 @@ import java.util.Set;
*/
public class OpenEjbContainer extends EJBContainer {
+ static {
+ Core.warmup();
+ }
+
public static final String OPENEJB_EMBEDDED_REMOTABLE = "openejb.embedded.remotable";
static Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, OpenEjbContainer.class);
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Sun Feb 26 20:29:02 2012
@@ -27,6 +27,7 @@ import org.apache.openejb.BeanContext;
import org.apache.openejb.BeanType;
import org.apache.openejb.ClassLoaderUtil;
import org.apache.openejb.Container;
+import org.apache.openejb.Core;
import org.apache.openejb.DuplicateDeploymentIdException;
import org.apache.openejb.Injection;
import org.apache.openejb.JndiConstants;
@@ -374,7 +375,7 @@ public class Assembler extends Assembler
* @throws Exception
* @see OpenEjbConfiguration
*/
- public void buildContainerSystem(OpenEjbConfiguration configInfo) throws Exception {
+ public void buildContainerSystem(final OpenEjbConfiguration configInfo) throws Exception {
ContainerSystemInfo containerSystemInfo = configInfo.containerSystem;
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Sun Feb 26 20:29:02 2012
@@ -1900,9 +1900,26 @@ public class AnnotationDeployer implemen
// Handled in CheckClasses.java along with other missing classes
continue;
}
- final AnnotationFinder finder = new AnnotationFinder(new ClassesArchive(clazz));
- final AnnotationFinder annotationFinder = createFinder(clazz);
+
+ final AnnotationFinder finder;
+ final AnnotationFinder annotationFinder;
+
+ if (ejbModule.getFinder() instanceof AnnotationFinder) {
+ final AnnotationFinder af = (AnnotationFinder) ejbModule.getFinder();
+
+ final List<Class<?>> ancestors = ancestors(clazz);
+ final String[] names = new String[ancestors.size()];
+ int i = 0;
+ for (Class<?> ancestor : ancestors) {
+ names[i++] = ancestor.getName();
+ }
+ annotationFinder = af.select(names);
+ finder = af.select(clazz.getName());
+ } else {
+ annotationFinder = createFinder(clazz);
+ finder = new AnnotationFinder(new ClassesArchive(clazz));
+ }
/*
* @PostConstruct
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigUtils.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigUtils.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigUtils.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigUtils.java Sun Feb 26 20:29:02 2012
@@ -162,7 +162,7 @@ public class ConfigUtils {
ResourceFinder finder = new ResourceFinder("");
URL defaultConfig = finder.find("default.openejb.conf");
- IO.copy(defaultConfig.openStream(), config);
+ IO.copy(IO.read(defaultConfig), config);
return config;
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Sun Feb 26 20:29:02 2012
@@ -39,6 +39,7 @@ import org.apache.openejb.jee.Webservice
import org.apache.openejb.jee.Webservices;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.openejb.loader.FileUtils;
+import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.AnnotationFinder;
import org.apache.openejb.util.JarExtractor;
@@ -54,6 +55,7 @@ import org.apache.xbean.finder.archive.J
import org.xml.sax.SAXException;
import javax.xml.bind.JAXBException;
+import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -544,7 +546,7 @@ public class DeploymentLoader implements
String mainClass = null;
if (manifestUrl != null) {
try {
- final InputStream is = manifestUrl.openStream();
+ final InputStream is = IO.read(manifestUrl);
final Manifest manifest = new Manifest(is);
mainClass = manifest.getMainAttributes().getValue(Attributes.Name.MAIN_CLASS);
} catch (IOException e) {
@@ -1415,7 +1417,7 @@ public class DeploymentLoader implements
@SuppressWarnings({"unchecked"})
public static <T> T unmarshal(final Class<T> type, final String descriptor, final URL url) throws OpenEJBException {
try {
- return (T) JaxbJavaee.unmarshalJavaee(type, url.openStream());
+ return (T) JaxbJavaee.unmarshalJavaee(type, new BufferedInputStream(url.openStream()));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the " + descriptor + " file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -1514,7 +1516,7 @@ public class DeploymentLoader implements
final URL manifestUrl = descriptors.get("MANIFEST.MF");
if (scanPotentialClientModules && manifestUrl != null) {
// In this case scanPotentialClientModules really means "require application-client.xml"
- final InputStream is = manifestUrl.openStream();
+ final InputStream is = new BufferedInputStream(manifestUrl.openStream());
final Manifest manifest = new Manifest(is);
final String mainClass = manifest.getMainAttributes().getValue(Attributes.Name.MAIN_CLASS);
if (mainClass != null) {
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EnvEntriesPropertiesDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EnvEntriesPropertiesDeployer.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EnvEntriesPropertiesDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EnvEntriesPropertiesDeployer.java Sun Feb 26 20:29:02 2012
@@ -17,6 +17,7 @@
package org.apache.openejb.config;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.LogCategory;
@@ -125,7 +126,7 @@ public class EnvEntriesPropertiesDeploye
if (propsUrl == null) return Collections.emptyMap();
try {
- InputStream in = propsUrl.openStream();
+ InputStream in = IO.read(propsUrl);
Properties envEntriesProps = new Properties();
envEntriesProps.load(in);
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java Sun Feb 26 20:29:02 2012
@@ -61,6 +61,7 @@ import org.apache.openejb.jee.oejb2.WebS
import org.apache.openejb.jee.oejb3.EjbDeployment;
import org.apache.openejb.jee.oejb3.EjbLink;
import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.loader.IO;
import javax.xml.bind.JAXBElement;
import java.io.ByteArrayInputStream;
@@ -95,7 +96,7 @@ public class OpenEjb2Conversion implemen
}
if (altDD instanceof URL) {
try {
- altDD = JaxbOpenejbJar2.unmarshal(OpenejbJarType.class, ((URL)altDD).openStream(), false);
+ altDD = JaxbOpenejbJar2.unmarshal(OpenejbJarType.class, IO.read(((URL)altDD)), false);
} catch (Exception e) {
// todo warn about not being able to parse sun descriptor
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java Sun Feb 26 20:29:02 2012
@@ -17,6 +17,7 @@
package org.apache.openejb.config;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.loader.IO;
import org.apache.xbean.asm.AnnotationVisitor;
import org.apache.xbean.asm.ClassReader;
import org.apache.xbean.asm.FieldVisitor;
@@ -56,7 +57,7 @@ public class PersistenceContextAnnFactor
try {
URL u = c.getResource("/" + c.getName().replace('.', '/') + ".class");
- ClassReader r = new ClassReader(u.openStream());
+ ClassReader r = new ClassReader(IO.read(u));
r.accept(new PersistenceContextReader(), ClassReader.SKIP_DEBUG);
} catch (IOException e) {
throw new OpenEJBException("Unable to read class " + c.getName());
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Sun Feb 26 20:29:02 2012
@@ -44,6 +44,7 @@ import org.apache.openejb.jee.oejb2.Jaxb
import org.apache.openejb.jee.oejb2.OpenejbJarType;
import org.apache.openejb.jee.oejb3.JaxbOpenejbJar3;
import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.loader.IO;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.URLs;
@@ -219,7 +220,7 @@ public class ReadDescriptors implements
URL url = getUrl(module, "resources.xml");
if (url != null) {
try {
- Resources openejb = JaxbOpenejb.unmarshal(Resources.class, url.openStream());
+ Resources openejb = JaxbOpenejb.unmarshal(Resources.class, IO.read(url));
module.initResources(openejb);
// warn if other entities than resources were declared
@@ -246,7 +247,7 @@ public class ReadDescriptors implements
if (url != null) {
ValidationConfigType validationConfigType;
try {
- validationConfigType = JaxbOpenejb.unmarshal(ValidationConfigType.class, url.openStream(), false);
+ validationConfigType = JaxbOpenejb.unmarshal(ValidationConfigType.class, IO.read(url), false);
module.setValidationConfig(validationConfigType);
} catch (Exception e) {
logger.warning("can't read " + url.toString() + " to construct a validation factory, it will be ignored");
@@ -419,7 +420,7 @@ public class ReadDescriptors implements
} else if (data instanceof URL) {
URL url = (URL) data;
try {
- EntityMappings entitymappings = (EntityMappings) JaxbJavaee.unmarshalJavaee(EntityMappings.class, url.openStream());
+ EntityMappings entitymappings = (EntityMappings) JaxbJavaee.unmarshalJavaee(EntityMappings.class, IO.read(url));
ejbModule.getAltDDs().put("openejb-cmp-orm.xml", entitymappings);
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the openejb-cmp-orm.xml file: " + url.toExternalForm(), e);
@@ -468,7 +469,7 @@ public class ReadDescriptors implements
public static ApplicationClient readApplicationClient(URL url) throws OpenEJBException {
ApplicationClient applicationClient;
try {
- applicationClient = (ApplicationClient) JaxbJavaee.unmarshalJavaee(ApplicationClient.class, url.openStream());
+ applicationClient = (ApplicationClient) JaxbJavaee.unmarshalJavaee(ApplicationClient.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the application-client.xml file: "+ url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -484,7 +485,7 @@ public class ReadDescriptors implements
public static EjbJar readEjbJar(URL url) throws OpenEJBException {
try {
if (isEmptyEjbJar(url)) return new EjbJar();
- return (EjbJar) JaxbJavaee.unmarshalJavaee(EjbJar.class, url.openStream());
+ return (EjbJar) JaxbJavaee.unmarshalJavaee(EjbJar.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the ejb-jar.xml file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -499,7 +500,7 @@ public class ReadDescriptors implements
public static Beans readBeans(URL url) throws OpenEJBException {
try {
if (isEmptyBeansXml(url)) return new Beans();
- return (Beans) JaxbJavaee.unmarshalJavaee(Beans.class, url.openStream());
+ return (Beans) JaxbJavaee.unmarshalJavaee(Beans.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the beans.xml file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -520,7 +521,7 @@ public class ReadDescriptors implements
}
private static boolean isEmpty(URL url, final String rootElement) throws IOException, ParserConfigurationException, SAXException {
- final LengthInputStream in = new LengthInputStream(url.openStream());
+ final LengthInputStream in = new LengthInputStream(IO.read(url));
InputSource inputSource = new InputSource(in);
SAXParserFactory factory = SAXParserFactory.newInstance();
@@ -547,7 +548,7 @@ public class ReadDescriptors implements
public static Webservices readWebservices(URL url) throws OpenEJBException {
Webservices webservices;
try {
- webservices = (Webservices) JaxbJavaee.unmarshalJavaee(Webservices.class, url.openStream());
+ webservices = (Webservices) JaxbJavaee.unmarshalJavaee(Webservices.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the webservices.xml file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -563,7 +564,7 @@ public class ReadDescriptors implements
public static HandlerChains readHandlerChains(URL url) throws OpenEJBException {
HandlerChains handlerChains;
try {
- handlerChains = (HandlerChains) JaxbJavaee.unmarshalHandlerChains(HandlerChains.class, url.openStream());
+ handlerChains = (HandlerChains) JaxbJavaee.unmarshalHandlerChains(HandlerChains.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the webservices.xml file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -579,7 +580,7 @@ public class ReadDescriptors implements
public static JavaWsdlMapping readJaxrpcMapping(URL url) throws OpenEJBException {
JavaWsdlMapping wsdlMapping;
try {
- wsdlMapping = (JavaWsdlMapping) JaxbJavaee.unmarshalJavaee(JavaWsdlMapping.class, url.openStream());
+ wsdlMapping = (JavaWsdlMapping) JaxbJavaee.unmarshalJavaee(JavaWsdlMapping.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the JaxRPC mapping file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -599,7 +600,7 @@ public class ReadDescriptors implements
WSDLReader reader = factory.newWSDLReader();
reader.setFeature("javax.wsdl.verbose", true);
reader.setFeature("javax.wsdl.importDocuments", true);
- WsdlResolver wsdlResolver = new WsdlResolver(new URL(url, ".").toExternalForm(), new InputSource(url.openStream()));
+ WsdlResolver wsdlResolver = new WsdlResolver(new URL(url, ".").toExternalForm(), new InputSource(IO.read(url)));
definition = reader.readWSDL(wsdlResolver);
} catch (IOException e) {
throw new OpenEJBException("Cannot read the wsdl file: " + url.toExternalForm(), e);
@@ -612,10 +613,10 @@ public class ReadDescriptors implements
public static Connector readConnector(URL url) throws OpenEJBException {
Connector connector;
try {
- connector = (Connector) JaxbJavaee.unmarshalJavaee(Connector.class, url.openStream());
+ connector = (Connector) JaxbJavaee.unmarshalJavaee(Connector.class, IO.read(url));
} catch (JAXBException e) {
try {
- Connector10 connector10 = (Connector10) JaxbJavaee.unmarshalJavaee(Connector10.class, url.openStream());
+ Connector10 connector10 = (Connector10) JaxbJavaee.unmarshalJavaee(Connector10.class, IO.read(url));
connector = Connector.newConnector(connector10);
} catch (ParserConfigurationException e1) {
throw new OpenEJBException("Cannot parse the ra.xml file: " + url.toExternalForm(), e);
@@ -639,7 +640,7 @@ public class ReadDescriptors implements
public static WebApp readWebApp(URL url) throws OpenEJBException {
WebApp webApp;
try {
- webApp = (WebApp) JaxbJavaee.unmarshalJavaee(WebApp.class, url.openStream());
+ webApp = (WebApp) JaxbJavaee.unmarshalJavaee(WebApp.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the web.xml file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -655,7 +656,7 @@ public class ReadDescriptors implements
public static TldTaglib readTldTaglib(URL url) throws OpenEJBException {
TldTaglib tldTaglib;
try {
- tldTaglib = (TldTaglib) JaxbJavaee.unmarshalTaglib(TldTaglib.class, url.openStream());
+ tldTaglib = (TldTaglib) JaxbJavaee.unmarshalTaglib(TldTaglib.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the JSP tag library definition file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -672,7 +673,7 @@ public class ReadDescriptors implements
FacesConfig facesConfig;
try {
facesConfig = (FacesConfig) JaxbJavaee
- .unmarshalJavaee(FacesConfig.class, url.openStream());
+ .unmarshalJavaee(FacesConfig.class, IO.read(url));
} catch (SAXException e) {
throw new OpenEJBException("Cannot parse the faces configuration file: " + url.toExternalForm(), e);
} catch (JAXBException e) {
@@ -708,7 +709,7 @@ public class ReadDescriptors implements
}
InputStream get() throws IOException {
- return url.openStream();
+ return IO.read(url);
}
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java Sun Feb 26 20:29:02 2012
@@ -78,6 +78,7 @@ import org.apache.openejb.jee.sun.SunWeb
import org.apache.openejb.jee.sun.Web;
import org.apache.openejb.jee.sun.WebserviceEndpoint;
import org.apache.openejb.jee.sun.WsdlPort;
+import org.apache.openejb.loader.IO;
import javax.ejb.Local;
import javax.ejb.Remote;
@@ -255,7 +256,7 @@ public class SunConversion implements Dy
}
if (altDD instanceof URL) {
try {
- altDD = JaxbSun.unmarshal(SunApplication.class, ((URL)altDD).openStream());
+ altDD = JaxbSun.unmarshal(SunApplication.class, IO.read(((URL)altDD)));
} catch (Exception e) {
// todo warn about not being able to parse sun descriptor
}
@@ -277,7 +278,7 @@ public class SunConversion implements Dy
}
if (altDD instanceof URL) {
try {
- altDD = JaxbSun.unmarshal(SunApplicationClient.class, ((URL)altDD).openStream());
+ altDD = JaxbSun.unmarshal(SunApplicationClient.class, IO.read(((URL)altDD)));
} catch (Exception e) {
// todo warn about not being able to parse sun descriptor
}
@@ -299,7 +300,7 @@ public class SunConversion implements Dy
}
if (altDD instanceof URL) {
try {
- altDD = JaxbSun.unmarshal(SunWebApp.class, ((URL)altDD).openStream());
+ altDD = JaxbSun.unmarshal(SunWebApp.class, IO.read(((URL)altDD)));
} catch (Exception e) {
e.printStackTrace();
// todo warn about not being able to parse sun descriptor
@@ -322,7 +323,7 @@ public class SunConversion implements Dy
}
if (altDD instanceof URL) {
try {
- altDD = JaxbSun.unmarshal(SunEjbJar.class, ((URL)altDD).openStream());
+ altDD = JaxbSun.unmarshal(SunEjbJar.class, IO.read(((URL)altDD)));
} catch (Exception e) {
e.printStackTrace();
// todo warn about not being able to parse sun descriptor
@@ -345,7 +346,7 @@ public class SunConversion implements Dy
}
if (altDD instanceof URL) {
try {
- altDD = JaxbSun.unmarshal(SunCmpMappings.class, ((URL)altDD).openStream());
+ altDD = JaxbSun.unmarshal(SunCmpMappings.class, IO.read(((URL)altDD)));
} catch (Exception e) {
e.printStackTrace();
// todo warn about not being able to parse sun descriptor
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WlsConversion.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WlsConversion.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WlsConversion.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/WlsConversion.java Sun Feb 26 20:29:02 2012
@@ -24,6 +24,7 @@ import org.apache.openejb.jee.oejb3.Open
import org.apache.openejb.jee.wls.JaxbWls;
import org.apache.openejb.jee.wls.WeblogicEjbJar;
import org.apache.openejb.jee.wls.WeblogicEnterpriseBean;
+import org.apache.openejb.loader.IO;
import javax.xml.bind.JAXBElement;
import java.io.ByteArrayInputStream;
@@ -48,7 +49,7 @@ public class WlsConversion implements Dy
}
if (altDD instanceof URL) {
try {
- altDD = JaxbWls.unmarshal(type, ((URL)altDD).openStream());
+ altDD = JaxbWls.unmarshal(type, IO.read(((URL)altDD)));
} catch (Exception e) {
e.printStackTrace();
// todo warn about not being able to parse sun descriptor
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java Sun Feb 26 20:29:02 2012
@@ -57,6 +57,9 @@ import java.util.Set;
import java.util.TreeSet;
public abstract class JaxbOpenejb {
+
+ private static final SAXParserFactory SAX_PARSER_FACTORY = SAXParserFactory.newInstance();
+
@SuppressWarnings({"unchecked"})
public static <T> T create(Class<T> type) {
if (type == null) throw new NullPointerException("type is null");
@@ -137,7 +140,7 @@ public abstract class JaxbOpenejb {
finder = new ResourceFinder("META-INF/", JaxbOpenejb.class.getClassLoader());
url = finder.find(resourceName);
}
- in = url.openStream();
+ in = IO.read(url);
ServicesJar servicesJar = parseServicesJar(in);
return servicesJar;
} catch (MalformedURLException e) {
@@ -157,7 +160,7 @@ public abstract class JaxbOpenejb {
private static ServicesJar parseServicesJar(InputStream in) throws ParserConfigurationException, SAXException, IOException {
InputSource inputSource = new InputSource(in);
- SAXParserFactory factory = SAXParserFactory.newInstance();
+ SAXParserFactory factory = SAX_PARSER_FACTORY;
factory.setNamespaceAware(true);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
@@ -216,10 +219,10 @@ public abstract class JaxbOpenejb {
try {
if (configFile.startsWith("jar:")) {
URL url = new URL(configFile);
- in = url.openStream();
+ in = IO.read(url);
} else if (configFile.startsWith("file:")) {
URL url = new URL(configFile);
- in = url.openStream();
+ in = IO.read(url);
} else {
in = new FileInputStream(configFile);
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContext.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContext.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContext.java Sun Feb 26 20:29:02 2012
@@ -16,6 +16,7 @@
*/
package org.apache.openejb.core;
+import org.apache.openejb.Core;
import org.apache.openejb.OpenEJB;
import org.apache.openejb.Injection;
import org.apache.openejb.InjectionProcessor;
@@ -44,6 +45,10 @@ import java.util.List;
*/
public class LocalInitialContext extends ContextWrapper {
+ static {
+ Core.warmup();
+ }
+
public static final String OPENEJB_EMBEDDED_REMOTABLE = "openejb.embedded.remotable";
static Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, LocalInitialContext.class);
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java Sun Feb 26 20:29:02 2012
@@ -22,6 +22,7 @@ import org.apache.xbean.asm.ClassReader;
import org.apache.xbean.asm.Opcodes;
import org.apache.xbean.asm.commons.EmptyVisitor;
+import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -103,6 +104,9 @@ public class TempClassLoader extends URL
// ( && !name.startsWith("javax.faces.") )||
String resourceName = name.replace('.', '/') + ".class";
InputStream in = getResourceAsStream(resourceName);
+ if (!(in instanceof BufferedInputStream)) {
+ in = new BufferedInputStream(in);
+ }
if (in == null) {
throw new ClassNotFoundException(name);
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java Sun Feb 26 20:29:02 2012
@@ -242,7 +242,7 @@ public class IvmContext implements Conte
Enumeration<URL> resources = classLoader.getResources("jndi.properties");
while (urlPackagePrefixes == null && resources.hasMoreElements()) {
URL resource = resources.nextElement();
- InputStream in = resource.openStream();
+ InputStream in = IO.read(resource);
urlPackagePrefixes = getUrlPackagePrefixes(in);
}
} catch (IOException ignored) {
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java Sun Feb 26 20:29:02 2012
@@ -16,6 +16,7 @@
*/
package org.apache.openejb.core.webservices;
+import org.apache.openejb.loader.IO;
import org.apache.openejb.util.Base64;
import java.io.File;
@@ -128,7 +129,7 @@ public class UriResolver {
}
is = huc.getInputStream();
} catch (ClassCastException ex) {
- is = url.openStream();
+ is = IO.read(url);
}
} else if (baseUriStr != null) {
URI base;
@@ -149,7 +150,7 @@ public class UriResolver {
try {
baseFile = new File(base);
if (baseFile.exists()) {
- is = base.toURL().openStream();
+ is = IO.read(base.toURL());
uri = base;
} else {
tryClasspath(base.toString().startsWith("file:")
@@ -223,7 +224,7 @@ public class UriResolver {
url = new URL(uriStr);
try {
- is = url.openStream();
+ is = IO.read(url);
try {
uri = url.toURI();
} catch (URISyntaxException ex) {
@@ -260,7 +261,7 @@ public class UriResolver {
}
}
- is = url.openStream();
+ is = IO.read(url);
}
}
@@ -268,7 +269,7 @@ public class UriResolver {
try {
url = new URL(uriStr);
uri = new URI(url.toString());
- is = url.openStream();
+ is = IO.read(url);
} catch (MalformedURLException e) {
// do nothing
} catch (URISyntaxException e) {
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java Sun Feb 26 20:29:02 2012
@@ -18,6 +18,7 @@ package org.apache.openejb.persistence;
import org.apache.openejb.core.TempClassLoader;
import org.apache.openejb.javaagent.Agent;
+import org.apache.openejb.loader.IO;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -96,7 +97,7 @@ public class PersistenceBootstrap {
String urlPath = url.toExternalForm();
debug("found " + urlPath);
try {
- InputStream in = url.openStream();
+ InputStream in = IO.read(url);
try {
collectUnits(in, units, args);
} catch (Throwable e) {
@@ -194,7 +195,7 @@ public class PersistenceBootstrap {
URL resource = classLoader.getResource("PersistenceBootstrap.properties");
if (resource != null) {
debug("found PersistenceBootstrap.properties file");
- InputStream in = resource.openStream();
+ InputStream in = IO.read(resource);
try {
properties.load(in);
} finally {
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/ConfUtils.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/ConfUtils.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/ConfUtils.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/ConfUtils.java Sun Feb 26 20:29:02 2012
@@ -100,7 +100,7 @@ public class ConfUtils {
if (file.exists() && !overwrite) return file;
- IO.copy(resource.openStream(), file);
+ IO.copy(IO.read(resource), file);
return file;
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/Log4jLogStreamFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/Log4jLogStreamFactory.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/Log4jLogStreamFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/Log4jLogStreamFactory.java Sun Feb 26 20:29:02 2012
@@ -179,7 +179,7 @@ public class Log4jLogStreamFactory imple
final Properties properties = new Properties();
InputStream in = null;
try {
- in = resource.openStream();
+ in = IO.read(resource);
properties.load(in);
} catch (Throwable e) {
//Ignore
@@ -209,7 +209,7 @@ public class Log4jLogStreamFactory imple
FileOutputStream out = null;
try {
- in = resource.openStream();
+ in = IO.read(resource);
final Properties props = new Properties();
props.load(in);
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/SafeToolkit.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/SafeToolkit.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/SafeToolkit.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/SafeToolkit.java Sun Feb 26 20:29:02 2012
@@ -36,13 +36,13 @@ public class SafeToolkit {
}
private Class forName(String className) throws OpenEJBException {
- Class clazz = null;
try {
- clazz = Class.forName(className);
+ final ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ return loader.loadClass(className);
} catch (ClassNotFoundException cnfe) {
OpenEJBErrorHandler.classNotFound(systemLocation, className);
+ return null;
}
- return clazz;
}
public Object newInstance(String className) throws OpenEJBException {
Modified: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java Sun Feb 26 20:29:02 2012
@@ -22,6 +22,7 @@ import org.apache.openejb.jee.JAXBContex
import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.openejb.jee.jpa.EntityMappings;
+import org.apache.openejb.loader.IO;
import org.custommonkey.xmlunit.Diff;
import org.xml.sax.SAXException;
@@ -115,7 +116,7 @@ public class OpenEjb2ConversionTest exte
XMLUnit.setNormalizeWhitespace(true);
XMLUnit.setNormalize(true);
- isr = new InputStreamReader(getClass().getClassLoader().getResource(expectedFile).openStream());
+ isr = new InputStreamReader(IO.read(getClass().getClassLoader().getResource(expectedFile)));
final org.w3c.dom.Document actualDoc = XMLUnit.buildDocument(XMLUnit.newTestParser(), new StringReader(actual));
final org.w3c.dom.Document expectedDoc = XMLUnit.buildDocument(XMLUnit.newControlParser(), isr);
Modified: openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/IO.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/IO.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/IO.java (original)
+++ openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/IO.java Sun Feb 26 20:29:02 2012
@@ -147,7 +147,7 @@ public class IO {
public static String slurp(URL url) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
- copy(url.openStream(), out);
+ copy(read(url), out);
return new String(out.toByteArray());
}
@@ -271,4 +271,8 @@ public class IO {
public static InputStream read(byte[] content) {
return new ByteArrayInputStream(content);
}
+
+ public static InputStream read(URL url) throws IOException {
+ return url.openStream();
+ }
}
\ No newline at end of file
Modified: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java (original)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java Sun Feb 26 20:29:02 2012
@@ -19,6 +19,7 @@ package org.apache.openejb.tck.impl;
import org.apache.openejb.OpenEJB;
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
+import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.tck.OpenEJBTckDeploymentRuntimeException;
import org.apache.openejb.tck.util.ZipUtil;
@@ -226,7 +227,7 @@ public class ContainersImpl implements C
InputStream src = zin;
if (resources.containsKey(entryName)) {
- src = resources.get(entryName).openStream();
+ src = IO.read(resources.get(entryName));
}
resources.remove(entryName);
@@ -236,7 +237,7 @@ public class ContainersImpl implements C
for (Map.Entry<String, URL> entry : resources.entrySet()) {
zout.putNextEntry(new ZipEntry(entry.getKey()));
- InputStream in = entry.getValue().openStream();
+ InputStream in = IO.read(entry.getValue());
ZipUtil.copy(in, zout);
in.close();
}
Modified: openejb/trunk/openejb/utils/openejb-provisionning/src/main/java/org/apache/openejb/resolver/Resolver.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/openejb-provisionning/src/main/java/org/apache/openejb/resolver/Resolver.java?rev=1293930&r1=1293929&r2=1293930&view=diff
==============================================================================
--- openejb/trunk/openejb/utils/openejb-provisionning/src/main/java/org/apache/openejb/resolver/Resolver.java (original)
+++ openejb/trunk/openejb/utils/openejb-provisionning/src/main/java/org/apache/openejb/resolver/Resolver.java Sun Feb 26 20:29:02 2012
@@ -17,6 +17,7 @@
package org.apache.openejb.resolver;
import org.apache.openejb.loader.FileUtils;
+import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.LocationResolver;
import org.apache.openejb.resolver.maven.Handler;
import org.apache.openejb.resolver.maven.Parser;
@@ -46,7 +47,7 @@ public class Resolver implements Locatio
throw new Exception("Failed to create: " + parentFile);
}
}
- FileUtils.copy(new FileOutputStream(file), url.openStream());
+ FileUtils.copy(new FileOutputStream(file), IO.read(url));
} catch (Exception e) {
if (file.exists()) {
if (!file.delete()) {