You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2012/08/21 18:58:50 UTC

svn commit: r1375661 - in /ant/ivy/core/trunk: src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java

Author: hibou
Date: Tue Aug 21 16:58:49 2012
New Revision: 1375661

URL: http://svn.apache.org/viewvc?rev=1375661&view=rev
Log:
Fix OSGi manifest parsing

Added:
    ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java   (with props)
Modified:
    ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java?rev=1375661&r1=1375660&r2=1375661&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java Tue Aug 21 16:58:49 2012
@@ -113,17 +113,19 @@ public class BundleInfoAdapter {
 
         requirementAsDependency(md, bundle, exportedPkgNames);
 
-        String compression = bundle.hasInnerClasspath() ? "zip" : null;
-        URI uri = bundle.getUri();
-        if (uri != null) {
-            DefaultArtifact artifact = buildArtifact(mrid, baseUri, uri, "jar", compression);
-            md.addArtifact(CONF_NAME_DEFAULT, artifact);
-        }
-        URI sourceURI = bundle.getSourceURI();
-        if (sourceURI != null) {
-            DefaultArtifact artifact = buildArtifact(mrid, baseUri, sourceURI, "source",
-                compression);
-            md.addArtifact(CONF_NAME_DEFAULT, artifact);
+        if (baseUri != null) {
+            String compression = bundle.hasInnerClasspath() ? "zip" : null;
+            URI uri = bundle.getUri();
+            if (uri != null) {
+                DefaultArtifact artifact = buildArtifact(mrid, baseUri, uri, "jar", compression);
+                md.addArtifact(CONF_NAME_DEFAULT, artifact);
+            }
+            URI sourceURI = bundle.getSourceURI();
+            if (sourceURI != null) {
+                DefaultArtifact artifact = buildArtifact(mrid, baseUri, sourceURI, "source",
+                    compression);
+                md.addArtifact(CONF_NAME_DEFAULT, artifact);
+            }
         }
 
         if (profileProvider != null) {

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java?rev=1375661&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java Tue Aug 21 16:58:49 2012
@@ -0,0 +1,61 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.ivy.osgi.core;
+
+import java.io.File;
+import java.util.Arrays;
+
+import org.apache.ivy.core.module.descriptor.Configuration;
+import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
+import org.apache.ivy.core.settings.IvySettings;
+import org.apache.ivy.plugins.parser.AbstractModuleDescriptorParserTester;
+import org.apache.ivy.util.DefaultMessageLogger;
+import org.apache.ivy.util.Message;
+
+public class OSGiManifestParserTest extends AbstractModuleDescriptorParserTester {
+
+    private IvySettings settings;
+
+    protected void setUp() throws Exception {
+        Message.setDefaultLogger(new DefaultMessageLogger(Message.MSG_WARN));
+
+        settings = new IvySettings();
+        // prevent test from polluting local cache
+        settings.setDefaultCache(new File("build/cache"));
+    }
+
+    public void testSimple() throws Exception {
+        ModuleDescriptor md = OSGiManifestParser.getInstance().parseDescriptor(settings,
+            getClass().getResource("MANIFEST_classpath.MF"), true);
+        assertNotNull(md);
+        assertEquals("bundle", md.getModuleRevisionId().getOrganisation());
+        assertEquals("org.apache.ivy.test", md.getModuleRevisionId().getName());
+        assertEquals("1.0.0", md.getModuleRevisionId().getRevision());
+
+        assertNotNull(md.getConfigurations());
+        assertEquals(
+            Arrays.asList(new Configuration[] {new Configuration("default"),
+                    new Configuration("optional"), new Configuration("transitive-optional")}),
+            Arrays.asList(md.getConfigurations()));
+
+        assertEquals(0, md.getAllArtifacts().length);
+
+        assertNotNull(md.getDependencies());
+        assertEquals(0, md.getDependencies().length);
+    }
+}

Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/core/OSGiManifestParserTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain