Refactored resource dependencies to use URLs instead of the Resource interface we used previously. Adapted all tests to reflect that.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@960066 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java
index cb9803e..f2afb90 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java
@@ -18,6 +18,7 @@
*/
package org.apache.felix.dm.impl;
+import java.net.URL;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Iterator;
@@ -26,7 +27,6 @@
import org.apache.felix.dm.DependencyManager;
import org.apache.felix.dm.dependencies.Dependency;
-import org.apache.felix.dm.resources.Resource;
import org.apache.felix.dm.service.Service;
import org.apache.felix.dm.service.ServiceStateListener;
import org.osgi.framework.Bundle;
@@ -173,13 +173,13 @@
}
// callbacks for resources
- public void added(Resource resource) {
+ public void added(URL resource) {
Service newService = createService(new Object[] { resource });
m_services.put(resource, newService);
m_manager.add(newService);
}
- public void removed(Resource resource) {
+ public void removed(URL resource) {
Service newService = (Service) m_services.remove(resource);
if (newService == null) {
System.out.println("Service should not be null here, dumping stack.");
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterServiceImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterServiceImpl.java
index ea6f3e9..7bd7ca7 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterServiceImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterServiceImpl.java
@@ -18,13 +18,13 @@
*/
package org.apache.felix.dm.impl;
+import java.net.URL;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import org.apache.felix.dm.DependencyManager;
import org.apache.felix.dm.dependencies.Dependency;
-import org.apache.felix.dm.resources.Resource;
import org.apache.felix.dm.service.Service;
import org.apache.felix.dm.service.ServiceStateListener;
@@ -61,7 +61,7 @@
}
public Service createService(Object[] properties) {
- Resource resource = (Resource) properties[0];
+ URL resource = (URL) properties[0];
Properties props = new Properties();
if (m_serviceProperties != null) {
Enumeration e = m_serviceProperties.keys();
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyActivation.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyActivation.java
index 7bb7546..189e0a0 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyActivation.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyActivation.java
@@ -1,7 +1,6 @@
package org.apache.felix.dm.impl.dependencies;
-public interface DependencyActivation
-{
+public interface DependencyActivation {
public void start(DependencyService service);
public void stop(DependencyService service);
}
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
index ddefa1e..b7faaab 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.felix.dm.impl.dependencies;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Dictionary;
import java.util.List;
@@ -27,7 +28,6 @@
import org.apache.felix.dm.dependencies.ResourceDependency;
import org.apache.felix.dm.impl.Logger;
import org.apache.felix.dm.management.ServiceComponentDependency;
-import org.apache.felix.dm.resources.Resource;
import org.apache.felix.dm.resources.ResourceHandler;
import org.apache.felix.dm.service.Service;
import org.osgi.framework.BundleContext;
@@ -46,10 +46,10 @@
private String m_autoConfigInstance;
protected List m_services = new ArrayList();
private String m_resourceFilter;
- private Resource m_trackedResource;
+ private URL m_trackedResource;
private boolean m_isStarted;
private List m_resources = new ArrayList();
- private Resource m_resourceInstance;
+ private URL m_resourceInstance;
private boolean m_propagate;
public ResourceDependencyImpl(BundleContext context, Logger logger) {
@@ -93,7 +93,7 @@
Properties props = null;
if (m_resourceFilter != null) {
props = new Properties();
- props.setProperty(Resource.FILTER, m_resourceFilter);
+ props.setProperty(ResourceHandler.FILTER, m_resourceFilter);
}
m_registration = m_context.registerService(ResourceHandler.class.getName(), this, props);
}
@@ -114,7 +114,7 @@
}
}
- public void added(Resource resource) {
+ public void added(URL resource) {
if (m_trackedResource == null || m_trackedResource.equals(resource)) {
long counter;
Object[] services;
@@ -139,7 +139,7 @@
}
}
- public void changed(Resource resource) {
+ public void changed(URL resource) {
if (m_trackedResource == null || m_trackedResource.equals(resource)) {
Object[] services;
synchronized (this) {
@@ -152,7 +152,7 @@
}
}
- public void removed(Resource resource) {
+ public void removed(URL resource) {
if (m_trackedResource == null || m_trackedResource.equals(resource)) {
long counter;
Object[] services;
@@ -177,22 +177,22 @@
}
}
- public void invokeAdded(DependencyService ds, Resource serviceInstance) {
+ public void invokeAdded(DependencyService ds, URL serviceInstance) {
invoke(ds, serviceInstance, m_callbackAdded);
}
- public void invokeChanged(DependencyService ds, Resource serviceInstance) {
+ public void invokeChanged(DependencyService ds, URL serviceInstance) {
invoke(ds, serviceInstance, m_callbackChanged);
}
- public void invokeRemoved(DependencyService ds, Resource serviceInstance) {
+ public void invokeRemoved(DependencyService ds, URL serviceInstance) {
invoke(ds, serviceInstance, m_callbackRemoved);
}
- private void invoke(DependencyService ds, Resource serviceInstance, String name) {
+ private void invoke(DependencyService ds, URL serviceInstance, String name) {
if (name != null) {
ds.invokeCallbackMethod(getCallbackInstances(ds), name,
- new Class[][] {{ Service.class, Resource.class }, { Service.class, Object.class }, { Service.class }, { Resource.class }, { Object.class }, {}},
+ new Class[][] {{ Service.class, URL.class }, { Service.class, Object.class }, { Service.class }, { URL.class }, { Object.class }, {}},
new Object[][] {{ ds.getServiceInterface(), serviceInstance }, { ds.getServiceInterface(), serviceInstance }, { ds.getServiceInterface() }, { serviceInstance }, { serviceInstance }, {}}
);
}
@@ -368,7 +368,7 @@
}
}
- public ResourceDependency setResource(Resource resource) {
+ public ResourceDependency setResource(URL resource) {
m_trackedResource = resource;
return this;
}
@@ -388,13 +388,13 @@
return m_autoConfig;
}
- public Resource getResource() {
+ public URL getResource() {
return lookupResource();
}
- private Resource lookupResource() {
+ private URL lookupResource() {
try {
- return (Resource) m_resources.get(0);
+ return (URL) m_resources.get(0);
}
catch (IndexOutOfBoundsException e) {
return null;
@@ -410,7 +410,7 @@
}
public Class getAutoConfigType() {
- return Resource.class;
+ return URL.class;
}
public void invokeAdded(DependencyService service) {
@@ -431,12 +431,13 @@
}
public Dictionary getProperties() {
- Resource resource = lookupResource();
+ URL resource = lookupResource();
if (resource != null) {
Properties props = new Properties();
- props.put(Resource.NAME, resource.getName());
- props.put(Resource.PATH, resource.getPath());
- props.put(Resource.REPOSITORY, resource.getRepository());
+ props.setProperty(ResourceHandler.HOST, resource.getHost());
+ props.setProperty(ResourceHandler.PATH, resource.getPath());
+ props.setProperty(ResourceHandler.PROTOCOL, resource.getProtocol());
+ props.setProperty(ResourceHandler.PORT, Integer.toString(resource.getPort()));
return props;
}
else {
@@ -459,7 +460,7 @@
sb.append(m_resourceFilter);
}
if (m_trackedResource != null) {
- sb.append(m_trackedResource.getID());
+ sb.append(m_trackedResource.toString());
}
return sb.toString();
}