You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2018/04/27 10:03:02 UTC
[sling-org-apache-sling-feature-resolver] 18/20: Use felix utils
ResourceBuilder and Parser instead of the ManifestParser and ManifestUtil.
As with that the feature-support module is empty, remove it.
This is an automated email from the ASF dual-hosted git repository.
davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-resolver.git
commit a6e0bf076ff9ecec9089be7a128162b3d876cb3d
Author: Karl Pauls <kp...@adobe.com>
AuthorDate: Thu Apr 26 12:00:25 2018 +0200
Use felix utils ResourceBuilder and Parser instead of the ManifestParser and ManifestUtil. As with that the feature-support module is empty, remove it.
---
pom.xml | 6 ---
.../feature/resolver/impl/BundleResourceImpl.java | 33 +---------------
.../sling/feature/resolver/AnalyserTest.java | 1 +
.../feature/resolver/TestBundleResourceImpl.java | 2 +-
.../resolver/impl/BundleResourceImplTest.java | 46 ++++++++++++++++------
5 files changed, 36 insertions(+), 52 deletions(-)
diff --git a/pom.xml b/pom.xml
index c52badb..d320ce2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,12 +80,6 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.feature.support</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.osgi</artifactId>
<version>2.4.0</version>
<scope>provided</scope>
diff --git a/src/main/java/org/apache/sling/feature/resolver/impl/BundleResourceImpl.java b/src/main/java/org/apache/sling/feature/resolver/impl/BundleResourceImpl.java
index 901b141..e196145 100644
--- a/src/main/java/org/apache/sling/feature/resolver/impl/BundleResourceImpl.java
+++ b/src/main/java/org/apache/sling/feature/resolver/impl/BundleResourceImpl.java
@@ -22,7 +22,7 @@ import org.apache.sling.feature.Artifact;
import org.apache.sling.feature.Feature;
import org.apache.sling.feature.resolver.FeatureResource;
import org.apache.sling.feature.scanner.BundleDescriptor;
-import org.apache.sling.feature.support.util.PackageInfo;
+import org.apache.sling.feature.scanner.PackageInfo;
import org.osgi.framework.Version;
import org.osgi.framework.VersionRange;
import org.osgi.framework.namespace.BundleNamespace;
@@ -69,18 +69,6 @@ public class BundleResourceImpl extends AbstractResourceImpl implements FeatureR
l.add(new CapabilityImpl(this, c));
}
- // Add the package capabilities (export package)
- List<Capability> pkgCaps = new ArrayList<>();
- for(PackageInfo exported : bd.getExportedPackages()) {
- Map<String, Object> attrs = new HashMap<>();
- attrs.put(PackageNamespace.PACKAGE_NAMESPACE, exported.getName());
- attrs.put(PackageNamespace.CAPABILITY_VERSION_ATTRIBUTE, exported.getPackageVersion());
- attrs.put(PackageNamespace.CAPABILITY_BUNDLE_SYMBOLICNAME_ATTRIBUTE, bsn);
- attrs.put(PackageNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE, version);
- pkgCaps.add(new CapabilityImpl(this, PackageNamespace.PACKAGE_NAMESPACE, null, attrs));
- }
- caps.put(PackageNamespace.PACKAGE_NAMESPACE, Collections.unmodifiableList(pkgCaps));
-
// Add the identity capability
Map<String, Object> idattrs = new HashMap<>();
idattrs.put(IdentityNamespace.IDENTITY_NAMESPACE, bsn);
@@ -111,25 +99,6 @@ public class BundleResourceImpl extends AbstractResourceImpl implements FeatureR
// TODO What do we do with the execution environment?
reqs.remove(ExecutionEnvironmentNamespace.EXECUTION_ENVIRONMENT_NAMESPACE);
- // Add the package requirements (import package)
- List<Requirement> pkgReqs = new ArrayList<>();
- for(PackageInfo imported : bd.getImportedPackages()) {
- Map<String, String> dirs = new HashMap<>();
- VersionRange range = imported.getPackageVersionRange();
- String rangeFilter;
- if (range != null) {
- rangeFilter = range.toFilterString(PackageNamespace.CAPABILITY_VERSION_ATTRIBUTE);
- } else {
- rangeFilter = "";
- }
- dirs.put(PackageNamespace.REQUIREMENT_FILTER_DIRECTIVE,
- "(&(" + PackageNamespace.PACKAGE_NAMESPACE + "=" + imported.getName() + ")" + rangeFilter + ")");
- if (imported.isOptional())
- dirs.put(PackageNamespace.REQUIREMENT_RESOLUTION_DIRECTIVE,
- PackageNamespace.RESOLUTION_OPTIONAL);
- pkgReqs.add(new RequirementImpl(this, PackageNamespace.PACKAGE_NAMESPACE, dirs, null));
- }
- reqs.put(PackageNamespace.PACKAGE_NAMESPACE, Collections.unmodifiableList(pkgReqs));
requirements = Collections.unmodifiableMap(reqs);
}
diff --git a/src/test/java/org/apache/sling/feature/resolver/AnalyserTest.java b/src/test/java/org/apache/sling/feature/resolver/AnalyserTest.java
index c4b8110..527eec5 100644
--- a/src/test/java/org/apache/sling/feature/resolver/AnalyserTest.java
+++ b/src/test/java/org/apache/sling/feature/resolver/AnalyserTest.java
@@ -27,6 +27,7 @@ import org.apache.sling.feature.io.json.FeatureJSONReader.SubstituteVariables;
import org.apache.sling.feature.scanner.BundleDescriptor;
import org.apache.sling.feature.scanner.Scanner;
import org.apache.sling.feature.scanner.impl.BundleDescriptorImpl;
+import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
diff --git a/src/test/java/org/apache/sling/feature/resolver/TestBundleResourceImpl.java b/src/test/java/org/apache/sling/feature/resolver/TestBundleResourceImpl.java
index 86beec4..265aa21 100644
--- a/src/test/java/org/apache/sling/feature/resolver/TestBundleResourceImpl.java
+++ b/src/test/java/org/apache/sling/feature/resolver/TestBundleResourceImpl.java
@@ -21,7 +21,7 @@ import org.apache.felix.utils.resource.RequirementImpl;
import org.apache.sling.feature.Artifact;
import org.apache.sling.feature.Feature;
import org.apache.sling.feature.scanner.BundleDescriptor;
-import org.apache.sling.feature.support.util.PackageInfo;
+import org.apache.sling.feature.scanner.PackageInfo;
import org.osgi.framework.Version;
import org.osgi.framework.VersionRange;
import org.osgi.framework.namespace.BundleNamespace;
diff --git a/src/test/java/org/apache/sling/feature/resolver/impl/BundleResourceImplTest.java b/src/test/java/org/apache/sling/feature/resolver/impl/BundleResourceImplTest.java
index eb307d2..c829958 100644
--- a/src/test/java/org/apache/sling/feature/resolver/impl/BundleResourceImplTest.java
+++ b/src/test/java/org/apache/sling/feature/resolver/impl/BundleResourceImplTest.java
@@ -25,9 +25,11 @@ import org.apache.sling.feature.resolver.FeatureResource;
import org.apache.sling.feature.scanner.BundleDescriptor;
import org.apache.sling.feature.scanner.Descriptor;
import org.apache.sling.feature.scanner.impl.BundleDescriptorImpl;
-import org.apache.sling.feature.support.util.PackageInfo;
+import org.apache.sling.feature.scanner.PackageInfo;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
+import org.osgi.framework.Constants;
import org.osgi.framework.Version;
import org.osgi.framework.namespace.BundleNamespace;
import org.osgi.framework.namespace.PackageNamespace;
@@ -35,6 +37,10 @@ import org.osgi.resource.Capability;
import org.osgi.resource.Requirement;
import org.osgi.resource.Resource;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Collections;
@@ -43,6 +49,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -95,17 +103,17 @@ public class BundleResourceImplTest {
ArtifactId id = new ArtifactId("grp", "art", "1.2.3", null, null);
Artifact artifact = new Artifact(id);
- PackageInfo ex1 = new PackageInfo("org.foo.a", "0.0.1.SNAPSHOT", false);
- Set<PackageInfo> pkgs = Collections.singleton(ex1);
- Set<Requirement> reqs = Collections.emptySet();
- Set<Capability> caps = Collections.emptySet();
- BundleDescriptor bd = new BundleDescriptorImpl(artifact, pkgs, reqs, caps);
+ String bmf = "Bundle-SymbolicName: " + Constants.SYSTEM_BUNDLE_SYMBOLICNAME + "\n"
+ + "Bundle-Version: 1.2.3\n"
+ + "Bundle-ManifestVersion: 2\n"
+ + "Export-Package: org.foo.a;version=0.0.1.SNAPSHOT\n"
+ + "Import-Package: org.bar;version=\"[1,2)\",org.tar;resolution:=\"optional\"\n";
+
+ File f = createBundle(bmf);
+
+
+ BundleDescriptor bd = new BundleDescriptorImpl(artifact, f, 1);
- setField(Descriptor.class, "locked", bd, false); // Unlock the Bundle Descriptor for the test
- PackageInfo im1 = new PackageInfo("org.bar", "[1,2)", false);
- PackageInfo im2 = new PackageInfo("org.tar", null, true);
- bd.getImportedPackages().add(im1);
- bd.getImportedPackages().add(im2);
Resource res = new BundleResourceImpl(bd, null);
assertNotNull(
@@ -137,11 +145,11 @@ public class BundleResourceImplTest {
}
assertEquals(1, reqBar.getDirectives().size());
- assertEquals("(&(osgi.wiring.package=org.bar)(&(version>=1.0.0)(!(version>=2.0.0))))",
+ assertEquals("(&(osgi.wiring.package=org.bar)(version>=1.0.0)(!(version>=2.0.0)))",
reqBar.getDirectives().get(PackageNamespace.REQUIREMENT_FILTER_DIRECTIVE));
assertEquals(2, reqTar.getDirectives().size());
- assertEquals("(&(osgi.wiring.package=org.tar))",
+ assertEquals("(osgi.wiring.package=org.tar)",
reqTar.getDirectives().get(PackageNamespace.REQUIREMENT_FILTER_DIRECTIVE));
assertEquals(PackageNamespace.RESOLUTION_OPTIONAL,
reqTar.getDirectives().get(PackageNamespace.REQUIREMENT_RESOLUTION_DIRECTIVE));
@@ -185,6 +193,18 @@ public class BundleResourceImplTest {
new HashSet<>(res.getRequirements(null)));
}
+
+ private File createBundle(String manifest) throws IOException
+ {
+ File f = File.createTempFile("bundle", ".jar");
+ f.deleteOnExit();
+ Manifest mf = new Manifest(new ByteArrayInputStream(manifest.getBytes("UTF-8")));
+ mf.getMainAttributes().putValue("Manifest-Version", "1.0");
+ JarOutputStream os = new JarOutputStream(new FileOutputStream(f), mf);
+ os.close();
+ return f;
+ }
+
private Object getCapAttribute(Resource res, String ns, String attr) {
List<Capability> caps = res.getCapabilities(ns);
if (caps.size() == 0)
--
To stop receiving notification emails like this one, please contact
davidb@apache.org.