Author: rmannibucau
Date: Sat Oct 6 19:38:07 2012
New Revision: 1395157
URL: http://svn.apache.org/viewvc?rev=1395157&view=rev
Log:
OPENEJB-1912 OPENEJB-1913 OPENEJB-1914 osgi rework (logs, NPE in deployer,
bundle file search)
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.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=1395157&r1=1395156&r2=1395157&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
Sat Oct 6 19:38:07 2012
@@ -42,7 +42,6 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.event.AssemblerDestroyed;
import org.apache.openejb.assembler.monitoring.JMXContainer;
import org.apache.openejb.async.AsynchronousPool;
-import org.apache.openejb.cdi.AsmFactory;
import org.apache.openejb.cdi.CdiAppContextsService;
import org.apache.openejb.cdi.CdiBuilder;
import org.apache.openejb.cdi.CdiResourceInjectionService;
@@ -153,8 +152,6 @@ import java.lang.instrument.Instrumentat
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
-import java.sql.Connection;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -1879,11 +1876,12 @@ public class Assembler extends Assembler
public void createSecurityService(SecurityServiceInfo serviceInfo) throws
OpenEJBException {
- ObjectRecipe serviceRecipe = createRecipe(serviceInfo);
-
- Object service = serviceRecipe.create();
-
- logUnusedProperties(serviceRecipe, serviceInfo);
+ Object service =
SystemInstance.get().getComponent(SecurityService.class);
+ if (service == null) {
+ ObjectRecipe serviceRecipe = createRecipe(serviceInfo);
+ service = serviceRecipe.create();
+ logUnusedProperties(serviceRecipe, serviceInfo);
+ }
Class interfce = serviceInterfaces.get(serviceInfo.service);
checkImplementation(interfce, service.getClass(), serviceInfo.service,
serviceInfo.id);
Modified:
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java?rev=1395157&r1=1395156&r2=1395157&view=diff
==============================================================================
---
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
(original)
+++
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
Sat Oct 6 19:38:07 2012
@@ -48,7 +48,7 @@ public class Activator implements Bundle
@Override
public void start(final BundleContext context) throws Exception {
- LOGGER.info("Starting OpenEJB for bundle #{0}",
context.getBundle().getBundleId());
+ LOGGER.info("Starting OpenEJB for bundle #{}",
context.getBundle().getBundleId());
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
@@ -146,7 +146,7 @@ public class Activator implements Bundle
private static void invoke(final Object serviceManager, final String name)
throws OpenEJBException, InvocationTargetException, IllegalAccessException {
if (serviceManager == null) {
- LOGGER.warn("can't invoke method {0} since the service manager is
null", name);
+ LOGGER.warn("can't invoke method {} since the service manager is
null", name);
return;
}
Modified:
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java?rev=1395157&r1=1395156&r2=1395157&view=diff
==============================================================================
---
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
(original)
+++
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
Sat Oct 6 19:38:07 2012
@@ -92,7 +92,7 @@ public class Deployer implements BundleL
} catch (NullPointerException npe) {
// can happen when shutting down an OSGi server
// because of all stop events
- LOGGER.warn("can't undeploy bundle #{0}",
event.getBundle().getBundleId());
+ LOGGER.warn("can't undeploy bundle #{}",
event.getBundle().getBundleId());
}
deploy(event.getBundle());
break;
@@ -100,8 +100,13 @@ public class Deployer implements BundleL
}
private void deploy(final Bundle bundle) {
+ if (bundle.getBundleContext() == null) {
+ return;
+ }
+
final ClassLoader oldCl =
Thread.currentThread().getContextClassLoader();
final ClassLoader osgiCl = new OSGIClassLoader(bundle,
OpenEJBBundleContextHolder.get().getBundle());
+
Thread.currentThread().setContextClassLoader(osgiCl);
try {
@@ -118,11 +123,11 @@ public class Deployer implements BundleL
}
if (bundleDump == null || !bundleDump.exists()) {
- LOGGER.warn("can't find bundle {0}",
bundle.getBundleId());
+ LOGGER.warn("can't find bundle {}",
bundle.getBundleId());
return;
}
- LOGGER.info("looking bundle {0} in {1}",
bundle.getBundleId(), bundleDump);
+ LOGGER.info("looking bundle {} in {}",
bundle.getBundleId(), bundleDump);
final AppModule appModule = new
OSGiDeploymentLoader(bundle).load(bundleDump);
LOGGER.info("deploying bundle #" + bundle.getBundleId() +
" as an EJBModule");
@@ -170,6 +175,31 @@ public class Deployer implements BundleL
int max = 0;
File out;
File f = null;
+
+ final File[] files = root.listFiles();
+ if (files == null) {
+ return null;
+ }
+
+ for (File current : files) {
+ if (current.getName().startsWith("version")) {
+ final String v =
current.getName().substring("version".length());
+ if (!v.contains(".")) {
+ continue;
+ }
+
+ final int idx = v.indexOf('.');
+ final int cMin = Integer.parseInt(v.substring(0, idx));
+ final int cMax = Integer.parseInt(v.substring(idx + 1,
v.length()));
+
+ if (cMax > max || (cMax == max && cMin > min)) {
+ f = current;
+ min = cMin;
+ max = cMax;
+ }
+ }
+ }
+
do {
do {
out = f;
@@ -202,15 +232,15 @@ public class Deployer implements BundleL
assembler.destroyApplication(paths.remove(bundle));
}
} catch (IllegalStateException ise) {
- LOGGER.error("Can't undeploy bundle #{0}",
bundle.getBundleId());
+ LOGGER.error("Can't undeploy bundle #{}",
bundle.getBundleId());
} catch (UndeployException e) {
- LOGGER.error("Can't undeploy bundle #{0}",
bundle.getBundleId(), e);
+ LOGGER.error("Can't undeploy bundle #{}",
bundle.getBundleId(), e);
} catch (NoSuchApplicationException e) {
- LOGGER.error("Can't undeploy non existing bundle #{0}",
bundle.getBundleId(), e);
+ LOGGER.error("Can't undeploy non existing bundle #{}",
bundle.getBundleId(), e);
}
}
- LOGGER.info("[Deployer] Bundle {0} has been stopped",
bundle.getSymbolicName());
+ LOGGER.info("[Deployer] Bundle {} has been stopped",
bundle.getSymbolicName());
}
/**
@@ -229,19 +259,19 @@ public class Deployer implements BundleL
try {
if (beanContext.getBusinessRemoteInterface() != null) {
- LOGGER.info("registering remote bean: {0}",
beanContext.getEjbName());
+ LOGGER.info("registering remote bean: {}",
beanContext.getEjbName());
registerService(beanContext, context,
beanContext.getBusinessRemoteInterfaces());
}
if (beanContext.getBusinessLocalInterface() != null) {
- LOGGER.info("registering local bean: {0}",
beanContext.getEjbName());
+ LOGGER.info("registering local bean: {}",
beanContext.getEjbName());
registerService(beanContext, context,
beanContext.getBusinessLocalInterfaces());
}
if (beanContext.isLocalbean()) {
- LOGGER.info("registering local view bean: {0}",
beanContext.getEjbName());
+ LOGGER.info("registering local view bean: {}",
beanContext.getEjbName());
registerService(beanContext, context,
Arrays.asList(beanContext.getBusinessLocalBeanInterface()));
}
} catch (Exception e) {
- LOGGER.error("[Deployer] can't register: {0}",
beanContext.getEjbName());
+ LOGGER.error("[Deployer] can't register: {}",
beanContext.getEjbName());
}
}
}
@@ -257,9 +287,9 @@ public class Deployer implements BundleL
try {
final Object service = ProxyEJB.simpleProxy(beanContext, itfs);
registrations.get(context.getBundle()).add(context.registerService(str(itfs),
service, new Properties()));
- LOGGER.info("EJB registered: {0} for interfaces {1}",
beanContext.getEjbName(), interfaces);
+ LOGGER.info("EJB registered: {} for interfaces {}",
beanContext.getEjbName(), interfaces);
} catch (IllegalArgumentException iae) {
- LOGGER.error("can't register: {0} for interfaces {1}",
beanContext.getEjbName(), interfaces);
+ LOGGER.error("can't register: {} for interfaces {}",
beanContext.getEjbName(), interfaces);
}
}
}
Modified:
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java?rev=1395157&r1=1395156&r2=1395157&view=diff
==============================================================================
---
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java
(original)
+++
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java
Sat Oct 6 19:38:07 2012
@@ -49,7 +49,7 @@ public class RegisterOSGIServicesExtensi
for (ServiceReference service : services) {
final Class<?> clazz = serviceClass(service);
abd.addBean(new OSGiServiceBean<Object>(service));
- LOGGER.debug("added service {0} as a CDI Application
scoped bean", clazz.getName());
+ LOGGER.debug("added service {} as a CDI Application scoped
bean", clazz.getName());
}
}
}