Author: thomas.diesler(a)jboss.com
Date: 2010-03-24 12:13:47 -0400 (Wed, 24 Mar 2010)
New Revision: 102896
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/bundle/src/test/java/org/jboss/test/osgi/bundle/BundleContextTestCase.java
projects/jboss-osgi/projects/runtime/framework/trunk/core/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java
Log:
[JBOSGI-238] [TCK] Framework classpath
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/bundle/src/test/java/org/jboss/test/osgi/bundle/BundleContextTestCase.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/bundle/src/test/java/org/jboss/test/osgi/bundle/BundleContextTestCase.java 2010-03-24
16:13:46 UTC (rev 102895)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/bundle/src/test/java/org/jboss/test/osgi/bundle/BundleContextTestCase.java 2010-03-24
16:13:47 UTC (rev 102896)
@@ -26,6 +26,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -216,6 +217,9 @@
{
assertBundleState(Bundle.INSTALLED, bundle.getState());
assertEquals(url.toExternalForm(), bundle.getLocation());
+
+ Bundle duplicate = systemContext.installBundle(url.toExternalForm());
+ assertSame("Duplicate bundle", bundle, duplicate);
}
finally
{
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/core/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/core/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java 2010-03-24
16:13:46 UTC (rev 102895)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/core/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java 2010-03-24
16:13:47 UTC (rev 102896)
@@ -528,6 +528,15 @@
*/
public AbstractBundleState installBundle(Deployment dep) throws BundleException
{
+ if (dep == null)
+ throw new IllegalArgumentException("Null deployment");
+
+ // If a bundle containing the same location identifier is already installed,
+ // the Bundle object for that bundle is returned.
+ AbstractBundleState bundleState = getBundleByLocation(dep.getLocation());
+ if (bundleState != null)
+ return bundleState;
+
// Create the deployment and deploy it
try
{
@@ -536,7 +545,7 @@
att.addAttachment(Deployment.class, dep);
// In case of update the OSGiBundleState is attached
- AbstractBundleState bundleState = dep.getAttachment(AbstractBundleState.class);
+ bundleState = dep.getAttachment(AbstractBundleState.class);
if (bundleState != null)
att.addAttachment(AbstractBundleState.class, bundleState);
Show replies by date