You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/09/23 19:45:13 UTC
svn commit: r1627097 - in /tomee/tomee/trunk: ./
arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/deployment/
arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/
arquillian/arquilli...
Author: andygumbrecht
Date: Tue Sep 23 17:45:12 2014
New Revision: 1627097
URL: http://svn.apache.org/r1627097
Log:
TOMEE-1359 - TomEEInjectionEnricher - Returns a better resolution if found multiple times. Works for known failing tests in Java 7 and not Java 8
This is for review - Test case to follow.
Replace uses of 'instanceof' with class.isInstance.
IO.java - Do not return in a finally block.
Minor code cleanups & typos.
Modified:
tomee/tomee/trunk/ (props changed)
tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/deployment/DeploymentExceptionObserver.java
tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/ (props changed)
tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/IO.java
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/AServlet.java
tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainerTest.java
tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/main/java/org/superbiz/moviefun/MovieController.java
tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java
tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/IO.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
Propchange: tomee/tomee/trunk/
------------------------------------------------------------------------------
Merged /tomee/tomee/branches/tomee-1.7.x:r1626990
Modified: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/deployment/DeploymentExceptionObserver.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/deployment/DeploymentExceptionObserver.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/deployment/DeploymentExceptionObserver.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/deployment/DeploymentExceptionObserver.java Tue Sep 23 17:45:12 2014
@@ -34,8 +34,8 @@ public class DeploymentExceptionObserver
Throwable current = t.getCause();
while (current != null) {
- if (current instanceof Exception) {
- PARENT_EXCEPTIONS.put(current.getClass(), (Exception) current);
+ if (Exception.class.isInstance(current)) {
+ PARENT_EXCEPTIONS.put(current.getClass(), Exception.class.cast(current));
}
if (current.getCause() != current) {
current = current.getCause();
Modified: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java Tue Sep 23 17:45:12 2014
@@ -71,12 +71,12 @@ public final class OpenEJBEnricher {
}
OWBInjector.inject(bm, testInstance, cc);
} catch (final Throwable t) {
- LOGGER.log(Level.SEVERE, "Can't inject in " + testInstance.getClass(), t);
- if (t instanceof RuntimeException) {
- throw (RuntimeException) t;
+ LOGGER.log(Level.SEVERE, "Failed injection on: " + testInstance.getClass(), t);
+ if (RuntimeException.class.isInstance(t)) {
+ throw RuntimeException.class.cast(t);
}
- if (t instanceof Exception) {
- throw new OpenEJBRuntimeException((Exception) t);
+ if (Exception.class.isInstance(t)) {
+ throw new OpenEJBRuntimeException(Exception.class.cast(t));
}
// ignoring other cases for the moment, let manage some OWB API change without making all tests failing
}
Propchange: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Sep 23 17:45:12 2014
@@ -1,2 +1,3 @@
*.iml
target
+.idea
Modified: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java Tue Sep 23 17:45:12 2014
@@ -171,7 +171,7 @@ public class OpenEJBDeployableContainer
configurationFactory = (ConfigurationFactory) SystemInstance.get().getComponent(OpenEjbConfigurationFactory.class);
if ("true".equalsIgnoreCase(PROPERTIES.getProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE))
- && SystemInstance.get().getComponent(WebAppBuilder.class) == null) {
+ && SystemInstance.get().getComponent(WebAppBuilder.class) == null) {
SystemInstance.get().setComponent(WebAppBuilder.class, new LightweightWebAppBuilder());
}
@@ -239,8 +239,8 @@ public class OpenEJBDeployableContainer
}
final ClassLoader cl = appContext.get().getClassLoader();
- if (cl instanceof SWClassLoader) {
- ((SWClassLoader) cl).close();
+ if (SWClassLoader.class.isInstance(cl)) {
+ SWClassLoader.class.cast(cl).close();
}
try {
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml Tue Sep 23 17:45:12 2014
@@ -54,6 +54,11 @@
<version>${version.arquillian}</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.openwebbeans</groupId>
+ <artifactId>openwebbeans-impl</artifactId>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.openejb</groupId>
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/IO.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/IO.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/IO.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/IO.java Tue Sep 23 17:45:12 2014
@@ -226,17 +226,17 @@ public class IO {
return null;
}
try {
- if (closeable instanceof Flushable) {
- ((Flushable) closeable).flush();
+ if (Flushable.class.isInstance(closeable)) {
+ Flushable.class.cast(closeable).flush();
}
} catch (final IOException e) {
try {
closeable.close();
} catch (final IOException e2) {
// no-op
- } finally {
- return e;
}
+
+ return e;
}
try {
closeable.close();
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java Tue Sep 23 17:45:12 2014
@@ -123,7 +123,7 @@ public class RemoteInitialContextObserve
}
if (err != null) {
- if (err instanceof InvocationTargetException) {
+ if (InvocationTargetException.class.isInstance(err)) {
throw err.getCause();
}
throw err;
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java Tue Sep 23 17:45:12 2014
@@ -28,6 +28,10 @@ import org.jboss.arquillian.test.spi.Tes
import org.jboss.arquillian.test.spi.TestEnricher;
import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -46,13 +50,90 @@ public class TomEEInjectionEnricher impl
private AppContext getAppContext(final String className) {
final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
- for (final AppContext app : containerSystem.getAppContexts()) {
+ final List<AppContext> appContexts = containerSystem.getAppContexts();
+
+ final int size = appContexts.size();
+ if (size == 1) {
+ return appContexts.get(0);
+ }
+
+ final List<AppContext> found = new ArrayList<AppContext>(size);
+
+ for (final AppContext app : appContexts) {
final BeanContext context = containerSystem.getBeanContext(app.getId() + "_" + className);
if (context != null) {
- return app;
+ found.add(app);
}
}
+ if (found.size() > 0) {
+
+ Collections.sort(found, new Comparator<AppContext>() {
+
+ /**
+ * If multiple apps are found that contain the test class then a best guess effort needs to be made
+ * to find the context that best matches the test class application.
+ *
+ * @param ac1 AppContext
+ * @param ac2 AppContext
+ * @return int
+ */
+ @Override
+ public int compare(final AppContext ac1, final AppContext ac2) {
+ int c = 0;
+
+ if (isBeanManagerInUse(ac1) && !isBeanManagerInUse(ac2)) {
+ c--;
+ } else if (!isBeanManagerInUse(ac1) && isBeanManagerInUse(ac2)) {
+ c++;
+ }
+
+ if (ac1.isCdiEnabled() && !ac2.isCdiEnabled()) {
+ c--;
+ } else if (!ac1.isCdiEnabled() && ac2.isCdiEnabled()) {
+ c++;
+ }
+
+ int size1 = ac1.getBeanContexts().size();
+ int size2 = ac2.getBeanContexts().size();
+ if (size1 > size2) {
+ c--;
+ } else if (size2 > size1) {
+ c++;
+ }
+
+ size1 = ac1.getBindings().size();
+ size2 = ac2.getBindings().size();
+ if (size1 > size2) {
+ c--;
+ } else if (size2 > size1) {
+ c++;
+ }
+
+ size1 = ac1.getWebContexts().size();
+ size2 = ac2.getWebContexts().size();
+ if (size1 > size2) {
+ c--;
+ } else if (size2 > size1) {
+ c++;
+ }
+
+ return c;
+ }
+
+ private boolean isBeanManagerInUse(final AppContext ac) {
+ try {
+ return ac.getWebBeansContext().getBeanManagerImpl().isInUse();
+ } catch (final Exception e) {
+ return false;
+ }
+ }
+ });
+
+ //Return the most likely candidate
+ return found.get(0);
+ }
+
Logger.getLogger(TomEEInjectionEnricher.class.getName()).log(Level.WARNING, "Failed to find AppContext for: " + className);
return null;
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/AServlet.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/AServlet.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/AServlet.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/AServlet.java Tue Sep 23 17:45:12 2014
@@ -24,9 +24,9 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-@WebServlet(urlPatterns = "/a-servlet")
+@WebServlet("/a-servlet")
public class AServlet extends HttpServlet {
- protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ protected void service(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("ok=true");
}
}
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainerTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainerTest.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainerTest.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainerTest.java Tue Sep 23 17:45:12 2014
@@ -40,7 +40,7 @@ import static org.junit.Assert.assertNot
public class EmbeddedTomEEContainerTest {
@Deployment
public static WebArchive createDeployment() {
- return ShrinkWrap.create(WebArchive.class, "test.war")
+ return ShrinkWrap.create(WebArchive.class, "EmbeddedTomEEContainerTest.war")
.addClasses(AnEJB.class, AServlet.class, ARestService.class, AnApp.class)
.setWebXML(new StringAsset(Descriptors.create(WebAppDescriptor.class).version("3.0").exportAsString()));
}
@@ -58,8 +58,9 @@ public class EmbeddedTomEEContainerTest
@Test
public void servletIsDeployed() throws Exception {
- final String read = IOUtils.toString(new URL(url.toExternalForm() + "a-servlet").openStream());
- assertEquals("ok=true", read);
+ final String url = this.url.toExternalForm() + "a-servlet";
+ final String read = IOUtils.toString(new URL(url).openStream());
+ assertEquals("Failed to find: " + url,"ok=true", read);
}
@Test
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/main/java/org/superbiz/moviefun/MovieController.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/main/java/org/superbiz/moviefun/MovieController.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/main/java/org/superbiz/moviefun/MovieController.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/main/java/org/superbiz/moviefun/MovieController.java Tue Sep 23 17:45:12 2014
@@ -214,7 +214,7 @@ public class MovieController implements
}
String getStringKey(final long value) {
- final StringBuffer sb = new StringBuffer();
+ final StringBuilder sb = new StringBuilder();
sb.append(value);
return sb.toString();
}
@@ -223,8 +223,8 @@ public class MovieController implements
if (object == null) {
return null;
}
- if (object instanceof Movie) {
- final Movie o = (Movie) object;
+ if (Movie.class.isInstance(object)) {
+ final Movie o = Movie.class.cast(object);
return getStringKey(o.getId());
} else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + MovieController.class.getName());
Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-moviefun-example/src/test/java/org/superbiz/moviefun/MoviesTest.java Tue Sep 23 17:45:12 2014
@@ -39,10 +39,10 @@ public class MoviesTest {
final Properties props = new Properties();
props.setProperty(DeploymentFilterable.CLASSPATH_INCLUDE, ".*arquillian-tomee-moviefun-example.*"); // arquillian-tomee excluded by default
ejbContainer = EJBContainer.createEJBContainer(props);
- Object object = ejbContainer.getContext().lookup("java:global/arquillian-tomee-moviefun-example/Movies!org.superbiz.moviefun.MoviesRemote");
+ final Object object = ejbContainer.getContext().lookup("java:global/arquillian-tomee-moviefun-example/Movies!org.superbiz.moviefun.MoviesRemote");
- assertTrue(object instanceof MoviesRemote);
- movies = (MoviesRemote) object;
+ assertTrue(MoviesRemote.class.isInstance(object));
+ movies = MoviesRemote.class.cast(object);
}
@AfterClass
@@ -60,7 +60,7 @@ public class MoviesTest {
@Test
public void testShouldAddAMovie() throws Exception {
- Movie movie = new Movie();
+ final Movie movie = new Movie();
movie.setDirector("Michael Bay");
movie.setGenre("Action");
movie.setRating(9);
@@ -69,7 +69,7 @@ public class MoviesTest {
movies.addMovie(movie);
assertEquals(1, movies.count());
- List<Movie> moviesFound = movies.findByTitle("Bad Boys");
+ final List<Movie> moviesFound = movies.findByTitle("Bad Boys");
assertEquals(1, moviesFound.size());
assertEquals("Michael Bay", moviesFound.get(0).getDirector());
Modified: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/IO.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/IO.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/IO.java (original)
+++ tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/IO.java Tue Sep 23 17:45:12 2014
@@ -174,8 +174,8 @@ public class IO {
return;
}
try {
- if (closeable instanceof Flushable) {
- ((Flushable) closeable).flush();
+ if (Flushable.class.isInstance(closeable)) {
+ Flushable.class.cast(closeable).flush();
}
} catch (final IOException e) {
// no-op
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Tue Sep 23 17:45:12 2014
@@ -1285,7 +1285,14 @@ public class Assembler extends Assembler
WebBeansContext webBeansContext = appContext.get(WebBeansContext.class);
if (webBeansContext == null) {
webBeansContext = appContext.getWebBeansContext();
+ }else{
+ if(null == appContext.getWebBeansContext()){
+ appContext.setWebBeansContext(webBeansContext);
}
+
+ return;
+ }
+
if (webBeansContext == null) {
final Map<Class<?>, Object> services = new HashMap<Class<?>, Object>();
@@ -1308,11 +1315,11 @@ public class Assembler extends Assembler
appContext.setCdiEnabled(false);
OpenEJBTransactionService.class.cast(services.get(TransactionService.class)).setWebBeansContext(webBeansContext);
- }
appContext.set(WebBeansContext.class, webBeansContext);
appContext.setWebBeansContext(webBeansContext);
}
+ }
private TransactionPolicyFactory createTransactionPolicyFactory(final EjbJarInfo ejbJar, final ClassLoader classLoader) {
TransactionPolicyFactory factory = null;
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java Tue Sep 23 17:45:12 2014
@@ -60,7 +60,7 @@ public class CdiBuilder {
singletonService.initialize(new StartupObject(appContext, appInfo, allDeployments, webContext));
}
- public static ThreadSingletonService initializeOWB(final ClassLoader classLoader) {
+ public static synchronized ThreadSingletonService initializeOWB(final ClassLoader classLoader) {
logger.info("Created new singletonService " + SINGLETON_SERVICE);
SystemInstance.get().setComponent(ThreadSingletonService.class, SINGLETON_SERVICE);
try {
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java Tue Sep 23 17:45:12 2014
@@ -329,7 +329,7 @@ public class CdiPlugin extends AbstractO
final BeanManagerImpl beanManager = webBeansContext.getBeanManagerImpl();
//Fires ProcessManagedBean
- webBeansContext.getBeanManagerImpl().fireEvent(new GProcessSessionBean(Bean.class.cast(bean), annotatedType, bc.getEjbName(), bean.getEjbType()), true);
+ beanManager.fireEvent(new GProcessSessionBean(Bean.class.cast(bean), annotatedType, bc.getEjbName(), bean.getEjbType()), true);
webBeansUtil.inspectErrorStack("There are errors that are added by ProcessSessionBean event observers for managed beans. Look at logs for further details");
//Fires ProcessProducerMethod
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java Tue Sep 23 17:45:12 2014
@@ -73,11 +73,11 @@ public class CdiScanner implements Scann
@Override
public void init(final Object object) {
- if (!(object instanceof StartupObject)) {
+ if (!StartupObject.class.isInstance (object)) {
return;
}
- final StartupObject startupObject = (StartupObject) object;
+ final StartupObject startupObject = StartupObject.class.cast(object);
final AppInfo appInfo = startupObject.getAppInfo();
final ClassLoader classLoader = startupObject.getClassLoader();
final ClassLoaderComparator comparator;
@@ -115,7 +115,7 @@ public class CdiScanner implements Scann
}
// fail fast
- final StringBuilder errors = new StringBuilder("You can't define multiple times the same class in beans.xml: ");
+ final StringBuilder errors = new StringBuilder("You must not declare the same class multiple times in the beans.xml: ");
if (addErrors(errors, "alternative classes", beans.duplicatedAlternativeClasses)
|| addErrors(errors, "alternative stereotypes", beans.duplicatedAlternativeStereotypes)
|| addErrors(errors, "decorators", beans.duplicatedDecorators)
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1627097&r1=1627096&r2=1627097&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Tue Sep 23 17:45:12 2014
@@ -123,10 +123,10 @@ public class OpenEJBLifecycle implements
@Override
public void startApplication(final Object startupObject) {
- if (startupObject instanceof ServletContextEvent) {
- startServletContext((ServletContext) getServletContext(startupObject)); // TODO: check it is relevant
+ if (ServletContextEvent.class.isInstance( startupObject)) {
+ startServletContext(ServletContext.class.cast(getServletContext(startupObject))); // TODO: check it is relevant
return;
- } else if (!(startupObject instanceof StartupObject)) {
+ } else if (!StartupObject.class.isInstance(startupObject)) {
logger.debug("startupObject is not of StartupObject type; ignored");
return;
}
@@ -176,7 +176,7 @@ public class OpenEJBLifecycle implements
//Scanning process
logger.debug("Scanning classpaths for beans artifacts.");
- if (scannerService instanceof CdiScanner) {
+ if (CdiScanner.class.isInstance(scannerService)) {
cdiScanner = CdiScanner.class.cast(scannerService);
cdiScanner.setContext(webBeansContext);
cdiScanner.init(startupObject);
@@ -284,8 +284,8 @@ public class OpenEJBLifecycle implements
}
//Fire shut down
- if (beanManager instanceof WebappBeanManager) {
- ((WebappBeanManager) beanManager).beforeStop();
+ if (WebappBeanManager.class.isInstance(beanManager)) {
+ WebappBeanManager.class.cast(beanManager).beforeStop();
}
this.beanManager.fireEvent(new BeforeShutdownImpl(), true);
@@ -419,14 +419,14 @@ public class OpenEJBLifecycle implements
}
/**
- * Returns servelt context otherwise throws exception.
+ * Returns servlet context otherwise throws exception.
*
* @param object object
* @return servlet context
*/
private Object getServletContext(Object object) {
- if (object instanceof ServletContextEvent) {
- object = ((ServletContextEvent) object).getServletContext();
+ if (ServletContextEvent.class.isInstance(object)) {
+ object = ServletContextEvent.class.cast(object).getServletContext();
return object;
}
return object;