Author: rmannibucau
Date: Sun Nov 4 13:47:59 2012
New Revision: 1405542
URL: http://svn.apache.org/viewvc?rev=1405542&view=rev
Log:
OPENEJB-1928 avoiding to load openejb classes with several classloaders +
activating filtering directly on bundle
Modified:
openejb/trunk/openejb/osgi/apache-karafee/src/main/filtered-resources/etc/system.properties
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
openejb/trunk/openejb/osgi/pom.xml
Modified:
openejb/trunk/openejb/osgi/apache-karafee/src/main/filtered-resources/etc/system.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/apache-karafee/src/main/filtered-resources/etc/system.properties?rev=1405542&r1=1405541&r2=1405542&view=diff
==============================================================================
---
openejb/trunk/openejb/osgi/apache-karafee/src/main/filtered-resources/etc/system.properties
(original)
+++
openejb/trunk/openejb/osgi/apache-karafee/src/main/filtered-resources/etc/system.properties
Sun Nov 4 13:47:59 2012
@@ -34,6 +34,10 @@ openejb.logger.external=true
# use log4j logger, pax is an adapted version of openejb log4j logger for pax
logging
openejb.log.factory=pax
+# deploy openejb internal application
+# to get access to OpenEJB deployer etc
+openejb.system.apps = true
+
# Log level when the pax-logging service is not available
# This level will only be used while the pax-logging service bundle
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=1405542&r1=1405541&r2=1405542&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
Sun Nov 4 13:47:59 2012
@@ -71,6 +71,8 @@ public class Deployer implements BundleL
private static final Logger LOGGER =
LoggerFactory.getLogger(Deployer.class);
private static Deployer INSTANCE = null;
+ private static final Filter BUNDLE_FILTER = new
OSGiPrefixFilter(NewLoaderLogic.getExclusions());
+
private final Map<Bundle, List<ServiceRegistration>> registrations = new
ConcurrentHashMap<Bundle, List<ServiceRegistration>>();
private final Map<Bundle, String> paths = new ConcurrentHashMap<Bundle,
String>();
@@ -89,18 +91,19 @@ public class Deployer implements BundleL
@Override
public void bundleChanged(final BundleEvent event) {
- openejbActivator.checkServiceManager(OpenEJBBundleContextHolder.get());
switch (event.getType()) {
case BundleEvent.STARTED:
final BundleContext context =
event.getBundle().getBundleContext();
if (context != null) {
deploy(event.getBundle());
}
- break;
+ break;
+
case BundleEvent.STOPPED:
case BundleEvent.UNINSTALLED:
undeploy(event.getBundle());
- break;
+ break;
+
case BundleEvent.UPDATED:
try {
undeploy(event.getBundle());
@@ -110,20 +113,21 @@ public class Deployer implements BundleL
LOGGER.warn("can't undeploy bundle #{}",
event.getBundle().getBundleId());
}
deploy(event.getBundle());
- break;
+ break;
}
}
private void deploy(final Bundle bundle) {
- if (bundle.getBundleContext() == null) {
+ if (bundle.getBundleContext() == null
+ || (bundle.getLocation() != null &&
!BUNDLE_FILTER.accept(bundle.getLocation()))) {
return;
}
final Set<Bundle> wiredBundles = BundleUtils.getWiredBundles(bundle);
- final Filter filter = new
OSGiPrefixFilter(NewLoaderLogic.getExclusions());
+
for (Bundle b : wiredBundles) {
final String location = b.getLocation();
- if (location == null || !filter.accept(location)) {
+ if (location == null || !BUNDLE_FILTER.accept(location)) {
continue;
}
@@ -153,6 +157,8 @@ public class Deployer implements BundleL
Thread.currentThread().setContextClassLoader(osgiCl);
+ openejbActivator.checkServiceManager(OpenEJBBundleContextHolder.get());
+
try {
try {
try {
Modified: openejb/trunk/openejb/osgi/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/pom.xml?rev=1405542&r1=1405541&r2=1405542&view=diff
==============================================================================
--- openejb/trunk/openejb/osgi/pom.xml (original)
+++ openejb/trunk/openejb/osgi/pom.xml Sun Nov 4 13:47:59 2012
@@ -43,4 +43,15 @@
<karaf.version>2.3.0</karaf.version>
<karafee.version>1.5.1-SNAPSHOT</karafee.version>
</properties>
+
+ <!-- for debugging pupose
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.framework</artifactId>
+ <version>4.0.3</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ -->
</project>