Author: alesj
Date: 2009-12-08 16:27:22 -0500 (Tue, 08 Dec 2009)
New Revision: 97565
Added:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/MANIFEST.MF
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/jboss-beans.xml
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/GenericServiceReferenceWrapper.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiServiceState.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java
Log:
Add beans mix, fix few typos/bugz.
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java 2009-12-08
20:34:57 UTC (rev 97564)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java 2009-12-08
21:27:22 UTC (rev 97565)
@@ -355,7 +355,7 @@
ContextTracking ct = (ContextTracking)context;
ct.ungetTarget(this);
}
- return isContextInUse(context);
+ return getUsedByCount(context, this) > 0;
}
public ServiceReference[] getServicesInUse()
@@ -463,17 +463,17 @@
// Check if the service is still in use by this bundle
ControllerContextHandle handle = (ControllerContextHandle)reference;
ControllerContext context = handle.getContext();
- if (isContextInUse(context) == false)
+ if (OSGiBundleManager.isUnregistered(context))
return false;
checkValidBundleContext();
- return getBundleManager().ungetContext(this, context);
+ return ungetContext(context);
}
- boolean ungetContex(ControllerContext state)
+ boolean ungetContext(ControllerContext context)
{
- return getBundleManager().ungetContext(this, state);
+ return getBundleManager().ungetContext(this, context);
}
public void addBundleListener(BundleListener listener)
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/GenericServiceReferenceWrapper.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/GenericServiceReferenceWrapper.java 2009-12-08
20:34:57 UTC (rev 97564)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/GenericServiceReferenceWrapper.java 2009-12-08
21:27:22 UTC (rev 97565)
@@ -75,6 +75,9 @@
public Bundle getBundle()
{
+ if (OSGiBundleManager.isUnregistered(context))
+ return null;
+
return bundleState.getBundleInternal();
}
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiServiceState.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiServiceState.java 2009-12-08
20:34:57 UTC (rev 97564)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiServiceState.java 2009-12-08
21:27:22 UTC (rev 97565)
@@ -676,7 +676,7 @@
int count = ct.getUsedByCount(this, using);
while(count > 0)
{
- using.ungetContex(this); // ungetService will cleanup service cache
+ using.ungetContext(this); // ungetService will cleanup service
cache
count--;
}
}
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java 2009-12-08
20:34:57 UTC (rev 97564)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java 2009-12-08
21:27:22 UTC (rev 97565)
@@ -38,6 +38,7 @@
import org.jboss.test.osgi.service.support.a.A;
import org.jboss.test.osgi.service.support.c.C;
import org.jboss.test.osgi.service.support.d.D;
+import org.jboss.virtual.AssembledDirectory;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -425,6 +426,37 @@
}
}
+ public void testBeansMix() throws Throwable
+ {
+ AssembledDirectory mix = createAssembledDirectory("beans1",
"");
+ addPath(mix, "/bundles/service/service-beans1", "");
+ addPackage(mix, A.class);
+ Deployment deployment = addDeployment(mix);
+ try
+ {
+ checkComplete();
+
+ Bundle bundle = getBundle(getDeploymentUnit(deployment));
+ bundle.start();
+
+ ServiceReference[] refs = bundle.getRegisteredServices();
+ assertNotNull(refs);
+ assertEquals(1, refs.length);
+ ServiceReference ref = refs[0];
+ assertEquals(bundle, ref.getBundle());
+ Class<?> aClass = bundle.loadClass(A.class.getName());
+ BundleContext bc = bundle.getBundleContext();
+ assertNotNull(bc);
+ Object service = bc.getService(ref);
+ assertInstanceOf(service, aClass, false);
+ assertFalse(bc.ungetService(ref));
+ }
+ finally
+ {
+ undeploy(deployment);
+ }
+ }
+
public void testFiltering() throws Throwable
{
Deployment bean = addBean("beanA", A.class);
Copied:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/MANIFEST.MF
(from rev 97508,
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-bundle1/META-INF/MANIFEST.MF)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/MANIFEST.MF
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/MANIFEST.MF 2009-12-08
21:27:22 UTC (rev 97565)
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Implementation-Title: JBoss OSGi tests
+Implementation-Version: test
+Implementation-Vendor:
jboss.org
+Bundle-Name: Service1
+Bundle-SymbolicName: org.jboss.test.osgi.service1
+Export-Package: org.jboss.test.osgi.service.support.a
Added:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/jboss-beans.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/jboss-beans.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/resources/bundles/service/service-beans1/META-INF/jboss-beans.xml 2009-12-08
21:27:22 UTC (rev 97565)
@@ -0,0 +1,5 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="A" class="org.jboss.test.osgi.service.support.a.A"
/>
+
+</deployment>
\ No newline at end of file