You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2020/01/30 22:58:57 UTC
svn commit: r1873390 - in /felix/sandbox/pauls/connect/src:
main/java/org/apache/felix/framework/ExtensionManager.java
test/java/org/apache/felix/framework/ConnectTest.java
Author: pauls
Date: Thu Jan 30 22:58:56 2020
New Revision: 1873390
URL: http://svn.apache.org/viewvc?rev=1873390&view=rev
Log:
Add a test for connect modules as extension bundles
Modified:
felix/sandbox/pauls/connect/src/main/java/org/apache/felix/framework/ExtensionManager.java
felix/sandbox/pauls/connect/src/test/java/org/apache/felix/framework/ConnectTest.java
Modified: felix/sandbox/pauls/connect/src/main/java/org/apache/felix/framework/ExtensionManager.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pauls/connect/src/main/java/org/apache/felix/framework/ExtensionManager.java?rev=1873390&r1=1873389&r2=1873390&view=diff
==============================================================================
--- felix/sandbox/pauls/connect/src/main/java/org/apache/felix/framework/ExtensionManager.java (original)
+++ felix/sandbox/pauls/connect/src/main/java/org/apache/felix/framework/ExtensionManager.java Thu Jan 30 22:58:56 2020
@@ -571,10 +571,13 @@ class ExtensionManager implements Conten
{
f = ((JarContent) revisionContent).getFile();
}
- else
+ else if (revisionContent instanceof DirectoryContent)
{
f = ((DirectoryContent) revisionContent).getFile();
}
+ else {
+ f = null;
+ }
if (f != null)
{
try
Modified: felix/sandbox/pauls/connect/src/test/java/org/apache/felix/framework/ConnectTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pauls/connect/src/test/java/org/apache/felix/framework/ConnectTest.java?rev=1873390&r1=1873389&r2=1873390&view=diff
==============================================================================
--- felix/sandbox/pauls/connect/src/test/java/org/apache/felix/framework/ConnectTest.java (original)
+++ felix/sandbox/pauls/connect/src/test/java/org/apache/felix/framework/ConnectTest.java Thu Jan 30 22:58:56 2020
@@ -161,7 +161,87 @@ public class ConnectTest extends TestCas
}
- }) : Optional.empty();
+ }) : location.startsWith("connect:extension") ? Optional.of(new ConnectModule()
+ {
+ @Override
+ public ConnectContent getContent() throws IOException
+ {
+ return new ConnectContent()
+ {
+ @Override
+ public Optional<ConnectEntry> getEntry(String name)
+ {
+
+ return "foo.txt".equals(name) ? Optional.of(
+ new ConnectEntry()
+ {
+ @Override
+ public String getName()
+ {
+ return name;
+ }
+
+ @Override
+ public long getContentLength()
+ {
+ return 0;
+ }
+
+ @Override
+ public long getLastModified()
+ {
+ return 0;
+ }
+
+ @Override
+ public InputStream getInputStream() throws IOException
+ {
+ return null;
+ }
+ }
+ ) : Optional.empty();
+ }
+
+ @Override
+ public Iterable<String> getEntries()
+ {
+ return Arrays.asList("foo.txt");
+ }
+
+ @Override
+ public Optional<ClassLoader> getClassLoader()
+ {
+ return Optional.of(getClass().getClassLoader());
+ }
+
+ @Override
+ public ConnectContent open() throws IOException
+ {
+ return this;
+ }
+
+ @Override
+ public ConnectContent close() throws IOException
+ {
+ return this;
+ }
+
+ @Override
+ public Optional<Map<String, String>> getHeaders()
+ {
+ Map<String, String> headers = new HashMap<String, String>();
+ headers.put(Constants.BUNDLE_MANIFESTVERSION, "2");
+ headers.put(Constants.BUNDLE_SYMBOLICNAME, "connect.extension");
+ headers.put(Constants.BUNDLE_VERSION, "1.0.0");
+ headers.put(Constants.FRAGMENT_HOST, "system.bundle;extension:=framework");
+ return Optional.of(headers);
+ }
+ };
+ }
+
+
+ })
+ : Optional.empty();
}
@Override
@@ -183,6 +263,10 @@ public class ConnectTest extends TestCas
TestCase.assertNotNull(b.getEntry("foo.txt"));
TestCase.assertNull(b.getEntry("bar.txt"));
+ Bundle extension = framework.getBundleContext().installBundle("connect:extension");
+
+ TestCase.assertEquals(Bundle.RESOLVED, extension.getState());
+
framework.stop();
framework.waitForStop(1000);
framework = factory.newFramework(params, connectFactory);