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 2014/04/15 20:19:19 UTC

svn commit: r1587669 - in /ant/ivy/ivyde/trunk: ./ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/cpcontainer/

Author: hibou
Date: Tue Apr 15 18:19:19 2014
New Revision: 1587669

URL: http://svn.apache.org/r1587669
Log:
Actually Ivy 2.4 is needed for inner classpath support: activate the feture only if the expected API is available

Modified:
    ant/ivy/ivyde/trunk/build.properties
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/IvyPlugin.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/cpcontainer/IvyClasspathContainerMapper.java

Modified: ant/ivy/ivyde/trunk/build.properties
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/build.properties?rev=1587669&r1=1587668&r2=1587669&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/build.properties (original)
+++ ant/ivy/ivyde/trunk/build.properties Tue Apr 15 18:19:19 2014
@@ -48,4 +48,4 @@ hudson.download.zest.name=GEF-zest-3.6.2
 hudson.download.zest.dropdir=tools/gef/downloads/drops/3.6.2/R201102251600
 hudson.download.zest.md5=b7b6f7f07c876ebebdf987e0b3b758e1
 
-hudson.ivy.version=2.3.0-rc1
+hudson.ivy.version=2.4.0-rc1

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/IvyPlugin.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/IvyPlugin.java?rev=1587669&r1=1587668&r2=1587669&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/IvyPlugin.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/IvyPlugin.java Tue Apr 15 18:19:19 2014
@@ -101,6 +101,8 @@ public class IvyPlugin extends AbstractU
 
     private boolean osgiAvailable;
 
+    private boolean osgiClasspathAvailable;
+
     private IvyClasspathContainerSerializer ivyCpcSerializer;
 
     private IvyAttachementManager ivyAttachementManager;
@@ -187,8 +189,15 @@ public class IvyPlugin extends AbstractU
         try {
             Class.forName("org.apache.ivy.osgi.core.ManifestParser");
             osgiAvailable = true;
+            try {
+                Class.forName("org.apache.ivy.osgi.core.BundleInfo").getDeclaredMethod("getClasspath");
+                osgiClasspathAvailable = true;
+            } catch (Exception e) {
+                osgiClasspathAvailable = false;
+            }
         } catch (Exception e) {
             osgiAvailable = false;
+            osgiClasspathAvailable = false;
         }
 
         logInfo("IvyDE plugin started");
@@ -306,6 +315,10 @@ public class IvyPlugin extends AbstractU
         return osgiAvailable;
     }
 
+    public boolean isOsgiClasspathAvailable() {
+        return osgiClasspathAvailable;
+    }
+
     /**
      * Returns the active workbench shell
      * 

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/cpcontainer/IvyClasspathContainerMapper.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/cpcontainer/IvyClasspathContainerMapper.java?rev=1587669&r1=1587668&r2=1587669&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/cpcontainer/IvyClasspathContainerMapper.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/cpcontainer/IvyClasspathContainerMapper.java Tue Apr 15 18:19:19 2014
@@ -83,6 +83,8 @@ public class IvyClasspathContainerMapper
 
     private boolean osgiAvailable;
 
+    private boolean osgiClasspathAvailable;
+
     private IvyAttachementManager attachementManager = IvyPlugin.getDefault()
             .getIvyAttachementManager();
 
@@ -97,6 +99,7 @@ public class IvyClasspathContainerMapper
         this.artifactsByDependency = resolveResult.getArtifactsByDependency();
         this.retrievedArtifacts = resolveResult.getRetrievedArtifacts();
         this.osgiAvailable = IvyPlugin.getDefault().isOsgiAvailable();
+        this.osgiClasspathAvailable = IvyPlugin.getDefault().isOsgiClasspathAvailable();
     }
 
     public IClasspathEntry[] map() {
@@ -124,7 +127,7 @@ public class IvyClasspathContainerMapper
                 IvyDEMessage.verbose("Adding " + artifact.getName() + " to the classpath");
 
                 // handle unzipped jar with 'Bundle-Classpath'
-                if (artifact.getLocalFile().isDirectory() && classpathSetup.isReadOSGiMetadata()) {
+                if (osgiClasspathAvailable && artifact.getLocalFile().isDirectory() && classpathSetup.isReadOSGiMetadata()) {
                     File manifestFile = new File(artifact.getLocalFile(), "META-INF/MANIFEST.MF");
                     if (!manifestFile.exists()) {
                         // no manifest : back to simple classpath