Author: sseifert
Date: Tue May 19 08:40:54 2015
New Revision: 1680202
URL: http://svn.apache.org/r1680202
Log:
SLING-4725 osgi-mock: Make compatible to OSGi 5/6
Modified:
sling/trunk/testing/mocks/osgi-mock/pom.xml
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundle.java
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockFilter.java
sling/trunk/testing/mocks/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockEventAdminTest.java
Modified: sling/trunk/testing/mocks/osgi-mock/pom.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/pom.xml?rev=1680202&r1=1680201&r2=1680202&view=diff
==============================================================================
--- sling/trunk/testing/mocks/osgi-mock/pom.xml (original)
+++ sling/trunk/testing/mocks/osgi-mock/pom.xml Tue May 19 08:40:54 2015
@@ -130,5 +130,25 @@
</plugins>
</build>
+
+ <profiles>
+ <profile>
+ <id>osgi-6</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>6.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>5.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
</project>
Modified:
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundle.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundle.java?rev=1680202&r1=1680201&r2=1680202&view=diff
==============================================================================
---
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundle.java
(original)
+++
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundle.java
Tue May 19 08:40:54 2015
@@ -18,10 +18,13 @@
*/
package org.apache.sling.testing.mock.osgi;
+import java.io.File;
import java.io.InputStream;
import java.net.URL;
+import java.security.cert.X509Certificate;
import java.util.Dictionary;
import java.util.Enumeration;
+import java.util.List;
import java.util.Map;
import org.osgi.framework.Bundle;
@@ -70,22 +73,22 @@ class MockBundle implements Bundle {
// --- unsupported operations ---
@Override
- public Enumeration<?> findEntries(final String path, final String
filePattern, final boolean recurse) {
+ public Enumeration<URL> findEntries(final String path, final String
filePattern, final boolean recurse) {
throw new UnsupportedOperationException();
}
@Override
- public Enumeration<?> getEntryPaths(final String path) {
+ public Enumeration<String> getEntryPaths(final String path) {
throw new UnsupportedOperationException();
}
@Override
- public Dictionary<?, ?> getHeaders() {
+ public Dictionary<String, String> getHeaders() {
throw new UnsupportedOperationException();
}
@Override
- public Dictionary<?, ?> getHeaders(final String locale) {
+ public Dictionary<String, String> getHeaders(final String locale) {
throw new UnsupportedOperationException();
}
@@ -110,7 +113,7 @@ class MockBundle implements Bundle {
}
@Override
- public Enumeration<?> getResources(final String name) {
+ public Enumeration<URL> getResources(final String name) {
throw new UnsupportedOperationException();
}
@@ -170,7 +173,7 @@ class MockBundle implements Bundle {
}
// this is part of org.osgi 4.2.0
- public Map getSignerCertificates(final int signersType) {
+ public Map<X509Certificate, List<X509Certificate>>
getSignerCertificates(final int signersType) {
throw new UnsupportedOperationException();
}
@@ -179,4 +182,19 @@ class MockBundle implements Bundle {
throw new UnsupportedOperationException();
}
+ // this is part of org.osgi.core 6.0.0
+ public int compareTo(Bundle o) {
+ throw new UnsupportedOperationException();
+ }
+
+ // this is part of org.osgi.core 6.0.0
+ public <A> A adapt(Class<A> type) {
+ throw new UnsupportedOperationException();
+ }
+
+ // this is part of org.osgi.core 6.0.0
+ public File getDataFile(String filename) {
+ throw new UnsupportedOperationException();
+ }
+
}
Modified:
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java?rev=1680202&r1=1680201&r2=1680202&view=diff
==============================================================================
---
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
(original)
+++
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
Tue May 19 08:40:54 2015
@@ -21,6 +21,7 @@ package org.apache.sling.testing.mock.os
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Dictionary;
import java.util.List;
import java.util.Set;
@@ -38,10 +39,13 @@ import org.osgi.framework.BundleListener
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkListener;
import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceFactory;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
+import com.google.common.collect.ImmutableList;
+
/**
* Mock {@link BundleContext} implementation.
*/
@@ -78,6 +82,11 @@ class MockBundleContext implements Bundl
return registerService(clazzes, service, properties);
}
+ // this is part of org.osgi.core 6.0.0
+ public <S> ServiceRegistration registerService(Class<S> clazz, S service,
Dictionary<String, ?> properties) {
+ return registerService(clazz.getName(), service, properties);
+ }
+
@SuppressWarnings("unchecked")
@Override
public ServiceRegistration registerService(final String[] clazzes, final
Object service, final Dictionary properties) {
@@ -157,6 +166,11 @@ class MockBundleContext implements Bundl
}
}
+ // this is part of org.osgi.core 6.0.0
+ public ServiceReference getServiceReference(Class clazz) {
+ return getServiceReference(clazz.getName());
+ }
+
@Override
public ServiceReference[] getServiceReferences(final String clazz, final
String filter) {
Set<ServiceReference> result = new TreeSet<ServiceReference>();
@@ -172,6 +186,11 @@ class MockBundleContext implements Bundl
}
}
+ // this is part of org.osgi.core 6.0.0
+ public Collection<ServiceReference> getServiceReferences(Class clazz,
String filter) {
+ return
ImmutableList.<ServiceReference>copyOf(getServiceReferences(clazz.getName(),
filter));
+ }
+
@Override
public ServiceReference[] getAllServiceReferences(final String clazz,
final String filter) {
// for now just do the same as getServiceReferences
@@ -180,7 +199,7 @@ class MockBundleContext implements Bundl
@Override
public Object getService(final ServiceReference serviceReference) {
- return ((MockServiceReference) serviceReference).getService();
+ return ((MockServiceReference)serviceReference).getService();
}
@Override
@@ -282,4 +301,21 @@ class MockBundleContext implements Bundl
throw new UnsupportedOperationException();
}
+ // this is part of org.osgi.core 6.0.0
+ public Bundle getBundle(String location) {
+ throw new UnsupportedOperationException();
+ }
+
+ // this is part of org.osgi.core 6.0.0
+ public <S> ServiceRegistration registerService(Class<S> clazz,
ServiceFactory factory, Dictionary<String, ?> properties) {
+ throw new UnsupportedOperationException();
+ }
+
+ // this is part of org.osgi.core 6.0.0
+ /* class org.osgi.framework.ServiceObjects does not exist in older OSGi
versions
+ public ServiceObjects getServiceObjects(ServiceReference reference) {
+ throw new UnsupportedOperationException();
+ }
+ */
+
}
Modified:
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockFilter.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockFilter.java?rev=1680202&r1=1680201&r2=1680202&view=diff
==============================================================================
---
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockFilter.java
(original)
+++
sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockFilter.java
Tue May 19 08:40:54 2015
@@ -19,6 +19,7 @@
package org.apache.sling.testing.mock.osgi;
import java.util.Dictionary;
+import java.util.Map;
import org.osgi.framework.Filter;
import org.osgi.framework.ServiceReference;
@@ -43,4 +44,9 @@ class MockFilter implements Filter {
return false;
}
+ // this is part of org.osgi.core 6.0.0
+ public boolean matches(Map<String, ?> map) {
+ return false;
+ }
+
}
Modified:
sling/trunk/testing/mocks/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockEventAdminTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockEventAdminTest.java?rev=1680202&r1=1680201&r2=1680202&view=diff
==============================================================================
---
sling/trunk/testing/mocks/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockEventAdminTest.java
(original)
+++
sling/trunk/testing/mocks/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockEventAdminTest.java
Tue May 19 08:40:54 2015
@@ -21,6 +21,7 @@ package org.apache.sling.testing.mock.os
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
+import java.util.Dictionary;
import java.util.List;
import org.apache.commons.lang3.ObjectUtils;
@@ -43,9 +44,9 @@ public class MockEventAdminTest {
private static final String TOPIC_SAMPLE_ALL = "sample/*";
private static final String TOPIC_OTHER_3 = "other/topic3";
- private static final Event EVENT_SAMPLE_1 = new Event(TOPIC_SAMPLE_1,
null);
- private static final Event EVENT_SAMPLE_2 = new Event(TOPIC_SAMPLE_2,
null);
- private static final Event EVENT_OTHER_3 = new Event(TOPIC_OTHER_3, null);
+ private static final Event EVENT_SAMPLE_1 = new Event(TOPIC_SAMPLE_1,
(Dictionary<String,?>)null);
+ private static final Event EVENT_SAMPLE_2 = new Event(TOPIC_SAMPLE_2,
(Dictionary<String,?>)null);
+ private static final Event EVENT_OTHER_3 = new Event(TOPIC_OTHER_3,
(Dictionary<String,?>)null);
@Rule
public OsgiContext context = new OsgiContext();