Author: rmannibucau
Date: Mon Jul 16 10:23:27 2012
New Revision: 1361965
URL: http://svn.apache.org/viewvc?rev=1361965&view=rev
Log:
OPENEJB-1869 server event from app
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/EventHelper.java
Modified:
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/ConfigurationFactory.java
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=1361965&r1=1361964&r2=1361965&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
Mon Jul 16 10:23:27 2012
@@ -135,6 +135,7 @@ import org.apache.openejb.spi.ContainerS
import org.apache.openejb.spi.SecurityService;
import org.apache.openejb.util.AsmParameterNameLoader;
import org.apache.openejb.util.Contexts;
+import org.apache.openejb.util.EventHelper;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
@@ -241,22 +242,7 @@ public class Assembler extends Assembler
}
private void installExtensions() {
-
- final ResourceFinder finder = new ResourceFinder("META-INF");
-
- try {
- final List<Class<?>> classes =
finder.findAvailableClasses("org.apache.openejb.extension");
- for (Class<?> clazz : classes) {
- try {
- final Object object = clazz.newInstance();
- SystemInstance.get().addObserver(object);
- } catch (Throwable t) {
- logger.error("Extension construction failed" +
clazz.getName(), t);
- }
- }
- } catch (IOException e) {
- logger.error("Extension scanning of
'META-INF/org.apache.openejb.extension' files failed", e);
- }
+ EventHelper.installExtensions(new ResourceFinder("META-INF"));
}
private void setConfiguration(OpenEjbConfiguration config) {
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1361965&r1=1361964&r2=1361965&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
Mon Jul 16 10:23:27 2012
@@ -92,6 +92,7 @@ import org.apache.openejb.loader.FileUti
import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.Options;
import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.EventHelper;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
@@ -100,6 +101,7 @@ import org.apache.openejb.util.URISuppor
import org.apache.openejb.util.URLs;
import org.apache.openejb.util.proxy.QueryProxy;
import org.apache.xbean.finder.MetaAnnotatedClass;
+import org.apache.xbean.finder.ResourceFinder;
import static
org.apache.openejb.config.DeploymentsResolver.DEPLOYMENTS_CLASSPATH_PROPERTY;
import static org.apache.openejb.config.ServiceUtils.implies;
@@ -776,6 +778,26 @@ public class ConfigurationFactory implem
}
public AppInfo configureApplication(final AppModule appModule) throws
OpenEJBException {
+ final List<URL> libs = appModule.getAdditionalLibraries();
+ if (libs != null && libs.size() > 0) {
+ EventHelper.installExtensions(new ResourceFinder("META-INF",
libs.toArray(new URL[libs.size()])));
+ }
+ for (EjbModule ejb : appModule.getEjbModules()) {
+ try {
+ final URL url = ejb.getModuleUri().toURL();
+ if (!libs.contains(url)) {
+ EventHelper.installExtensions(new
ResourceFinder("META-INF", url));
+ }
+ } catch (Exception e) {
+ logger.error("can't look for server event listener for module
" + ejb.getJarLocation());
+ }
+ }
+ for (WebModule web : appModule.getWebModules()) {
+ final List<URL> webLibs = web.getScannableUrls();
+ if (webLibs != null && webLibs.size() > 0) {
+ EventHelper.installExtensions(new ResourceFinder("META-INF",
webLibs.toArray(new URL[webLibs.size()])));
+ }
+ }
logger.info("config.configApp", appModule.getJarLocation());
deployer.deploy(appModule);
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/EventHelper.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/EventHelper.java?rev=1361965&view=auto
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/EventHelper.java
(added)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/EventHelper.java
Mon Jul 16 10:23:27 2012
@@ -0,0 +1,31 @@
+package org.apache.openejb.util;
+
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.xbean.finder.ResourceFinder;
+
+import java.io.IOException;
+import java.util.List;
+
+public final class EventHelper {
+ private static final Logger LOGGER =
Logger.getInstance(LogCategory.OPENEJB, EventHelper.class);
+
+ private EventHelper() {
+ // no-op
+ }
+
+ public static void installExtensions(final ResourceFinder finder) {
+ try {
+ final List<Class<?>> classes =
finder.findAvailableClasses("org.apache.openejb.extension");
+ for (Class<?> clazz : classes) {
+ try {
+ final Object object = clazz.newInstance();
+ SystemInstance.get().addObserver(object);
+ } catch (Throwable t) {
+ LOGGER.error("Extension construction failed" +
clazz.getName(), t);
+ }
+ }
+ } catch (IOException e) {
+ LOGGER.error("Extension scanning of
'META-INF/org.apache.openejb.extension' files failed", e);
+ }
+ }
+}