You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2016/02/17 23:24:09 UTC

svn commit: r1730957 - in /sling/trunk/tooling/ide: eclipse-core/META-INF/ eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/ eclipse-m2e-core/ eclipse-m2e-core/META-INF/ eclipse-m2e-core/OSGI-INF/ eclipse-m2e-core/src/ eclipse-m2e-core/src/o...

Author: rombert
Date: Wed Feb 17 22:24:09 2016
New Revision: 1730957

URL: http://svn.apache.org/viewvc?rev=1730957&view=rev
Log:
SLING-3605 - Debug based on bundles deployed on the server 

Move the current SourceReferenceResolver to eclipse-m2e-core.

Added:
    sling/trunk/tooling/ide/eclipse-m2e-core/OSGI-INF/
    sling/trunk/tooling/ide/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml
    sling/trunk/tooling/ide/eclipse-m2e-core/src/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/
    sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java
Modified:
    sling/trunk/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
    sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
    sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java
    sling/trunk/tooling/ide/eclipse-m2e-core/META-INF/MANIFEST.MF
    sling/trunk/tooling/ide/eclipse-m2e-core/build.properties

Modified: sling/trunk/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-core/META-INF/MANIFEST.MF?rev=1730957&r1=1730956&r2=1730957&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-core/META-INF/MANIFEST.MF (original)
+++ sling/trunk/tooling/ide/eclipse-core/META-INF/MANIFEST.MF Wed Feb 17 22:24:09 2016
@@ -44,8 +44,11 @@ Import-Package: org.apache.commons.httpc
  org.eclipse.wst.validation,
  org.json,
  org.osgi.service.component;version="1.1.0"
-Export-Package: org.apache.sling.ide.eclipse.core,org.apache.sling.ide
- .eclipse.core.debug,org.apache.sling.ide.eclipse.core.internal,org.ap
- ache.sling.ide.eclipse.core.progress,org.apache.sling.ide.eclipse.int
- ernal.validation;x-friends:="org.apache.sling.ide.eclipse-test",org.apache.sling.ide.eclipse.core.facet
+Export-Package: org.apache.sling.ide.eclipse.core,
+ org.apache.sling.ide.eclipse.core.debug,
+ org.apache.sling.ide.eclipse.core.facet,
+ org.apache.sling.ide.eclipse.core.internal,
+ org.apache.sling.ide.eclipse.core.launch,
+ org.apache.sling.ide.eclipse.core.progress,
+ org.apache.sling.ide.eclipse.internal.validation;x-friends:="org.apache.sling.ide.eclipse-test"
 Service-Component: OSGI-INF/TraceCommandExecutionEventsHandler.xml

Modified: sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java?rev=1730957&r1=1730956&r2=1730957&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java (original)
+++ sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java Wed Feb 17 22:24:09 2016
@@ -22,6 +22,7 @@ import java.util.Map;
 import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
 import org.apache.sling.ide.eclipse.core.ServiceUtil;
 import org.apache.sling.ide.eclipse.core.debug.PluginLoggerRegistrar;
+import org.apache.sling.ide.eclipse.core.launch.SourceReferenceResolver;
 import org.apache.sling.ide.filter.FilterLocator;
 import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.osgi.OsgiClientFactory;
@@ -60,7 +61,8 @@ public class Activator extends Plugin {
     private ServiceTracker<EmbeddedArtifactLocator, EmbeddedArtifactLocator> artifactLocator;
     private ServiceTracker<Logger, Logger> tracer;
     private ServiceTracker<BatcherFactory, BatcherFactory> batcherFactoryLocator;
-
+    private ServiceTracker<SourceReferenceResolver, Object> sourceReferenceLocator;
+    
     private ServiceRegistration<Logger> tracerRegistration;
 
 	public void start(BundleContext context) throws Exception {
@@ -94,6 +96,9 @@ public class Activator extends Plugin {
         
         batcherFactoryLocator = new ServiceTracker<>(context, BatcherFactory.class, null);
         batcherFactoryLocator.open();
+        
+        sourceReferenceLocator = new ServiceTracker<>(context, SourceReferenceResolver.class, null);
+        sourceReferenceLocator.open();
 	}
 
 	/*
@@ -111,6 +116,7 @@ public class Activator extends Plugin {
         artifactLocator.close();
         tracer.close();
         batcherFactoryLocator.close();
+        sourceReferenceLocator.close();
 
         plugin = null;
 		super.stop(context);
@@ -173,4 +179,11 @@ public class Activator extends Plugin {
     public EventAdmin getEventAdmin() {
         return (EventAdmin) ServiceUtil.getNotNull(eventAdmin);
     }
+    
+    /**
+     * @return the source reference resolver, possibly null
+     */
+    public SourceReferenceResolver getSourceReferenceResolver() {
+        return (SourceReferenceResolver) sourceReferenceLocator.getService();
+    }
 }

Modified: sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java?rev=1730957&r1=1730956&r2=1730957&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java (original)
+++ sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/JVMDebuggerConnection.java Wed Feb 17 22:24:09 2016
@@ -108,14 +108,19 @@ public class JVMDebuggerConnection {
             classpathEntries.add(JavaRuntime.newProjectRuntimeClasspathEntry(javaProject));
         }
 		
-        // 2. then add the other modules deployed on server
-        SourceReferenceResolver resolver = new SimpleSourceReferenceResolver();
-        try {
-            for ( SourceReference reference :  osgiClient.findSourceReferences() ) {
-                classpathEntries.add(resolver.resolve(reference));
+        // 2. add the other modules deployed on server
+        SourceReferenceResolver resolver = Activator.getDefault().getSourceReferenceResolver();
+        if ( resolver != null ) {
+            try {
+                for ( SourceReference reference :  osgiClient.findSourceReferences() ) {
+                    IRuntimeClasspathEntry classpathEntry = resolver.resolve(reference);
+                    if ( classpathEntry != null ) {
+                        classpathEntries.add(classpathEntry);
+                    }
+                }
+            } catch (OsgiClientException e1) {
+                throw new CoreException(new Status(Status.ERROR, Activator.PLUGIN_ID, e1.getMessage(), e1));
             }
-        } catch (OsgiClientException e1) {
-            throw new CoreException(new Status(Status.ERROR, Activator.PLUGIN_ID, e1.getMessage(), e1));
         }
         
         // 3. add the JRE entry
@@ -175,41 +180,4 @@ public class JVMDebuggerConnection {
 			}
 		}
 	}
-
-
-	class SimpleSourceReferenceResolver implements SourceReferenceResolver {
-
-        @Override
-        public IRuntimeClasspathEntry resolve(SourceReference reference) {
-            if ( reference == null || reference.getType() != SourceReference.Type.MAVEN) {
-                return null;
-            }
-            
-            MavenSourceReference sr = (MavenSourceReference) reference;
-            
-            // TODO - delegate to m2e and move to eclipse-m2e-core
-            StringBuilder path = new StringBuilder();
-            path.append(System.getProperty("user.home"))
-                .append(File.separator).append(".m2").append(File.separator).append("repository").append(File.separator);
-            
-            for (String segment : sr.getGroupId().split("\\.") ) {
-                path.append(segment).append(File.separator);
-            }
-            path.append(sr.getArtifactId()).append(File.separator).append(sr.getVersion()).append(File.separator);
-            path.append(sr.getArtifactId()).append("-").append(sr.getVersion());
-            
-            IPath jarPath = Path.fromOSString(path.toString() + ".jar");
-            IPath sourcePath = Path.fromOSString(path.toString() + "-sources.jar");
-            // TODO - ensure exists
-            if ( !jarPath.toFile().exists() || !sourcePath.toFile().exists()) {
-                return null;
-            }
-            
-            IRuntimeClasspathEntry mavenEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(jarPath);
-            mavenEntry.setSourceAttachmentPath(sourcePath);
-            
-            return mavenEntry;
-        }
-	    
-	}
 }

Modified: sling/trunk/tooling/ide/eclipse-m2e-core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-m2e-core/META-INF/MANIFEST.MF?rev=1730957&r1=1730956&r2=1730957&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-m2e-core/META-INF/MANIFEST.MF (original)
+++ sling/trunk/tooling/ide/eclipse-m2e-core/META-INF/MANIFEST.MF Wed Feb 17 22:24:09 2016
@@ -5,4 +5,9 @@ Bundle-Version: 1.0.99.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ClassPath: .
-
+Import-Package: org.apache.sling.ide.eclipse.core.launch,
+ org.apache.sling.ide.osgi,
+ org.eclipse.core.resources,
+ org.eclipse.core.runtime;version="3.4.0",
+ org.eclipse.jdt.launching
+Service-Component: OSGI-INF/MavenSourceReferenceResolver.xml

Added: sling/trunk/tooling/ide/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml?rev=1730957&view=auto
==============================================================================
--- sling/trunk/tooling/ide/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml (added)
+++ sling/trunk/tooling/ide/eclipse-m2e-core/OSGI-INF/MavenSourceReferenceResolver.xml Wed Feb 17 22:24:09 2016
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <implementation class="org.apache.sling.ide.eclipse.m2e.core.internal.launch.MavenSourceReferenceResolver" />
+    <service>
+        <provide interface="org.apache.sling.ide.eclipse.core.launch.SourceReferenceResolver" />
+    </service> />
+</scr:component>

Modified: sling/trunk/tooling/ide/eclipse-m2e-core/build.properties
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-m2e-core/build.properties?rev=1730957&r1=1730956&r2=1730957&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-m2e-core/build.properties (original)
+++ sling/trunk/tooling/ide/eclipse-m2e-core/build.properties Wed Feb 17 22:24:09 2016
@@ -1,4 +1,5 @@
 output.. = bin/
 bin.includes = META-INF/,\
-               .
+               .,\
+               OSGI-INF/
 source.. = src/

Added: sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java?rev=1730957&view=auto
==============================================================================
--- sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java (added)
+++ sling/trunk/tooling/ide/eclipse-m2e-core/src/org/apache/sling/ide/eclipse/m2e/core/internal/launch/MavenSourceReferenceResolver.java Wed Feb 17 22:24:09 2016
@@ -0,0 +1,45 @@
+package org.apache.sling.ide.eclipse.m2e.core.internal.launch;
+
+import java.io.File;
+
+import org.apache.sling.ide.eclipse.core.launch.SourceReferenceResolver;
+import org.apache.sling.ide.osgi.MavenSourceReference;
+import org.apache.sling.ide.osgi.SourceReference;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.JavaRuntime;
+
+public class MavenSourceReferenceResolver implements SourceReferenceResolver {
+    @Override
+    public IRuntimeClasspathEntry resolve(SourceReference reference) {
+        if ( reference == null || reference.getType() != SourceReference.Type.MAVEN) {
+            return null;
+        }
+        
+        MavenSourceReference sr = (MavenSourceReference) reference;
+        
+        // TODO - delegate to m2e and move to eclipse-m2e-core
+        StringBuilder path = new StringBuilder();
+        path.append(System.getProperty("user.home"))
+            .append(File.separator).append(".m2").append(File.separator).append("repository").append(File.separator);
+        
+        for (String segment : sr.getGroupId().split("\\.") ) {
+            path.append(segment).append(File.separator);
+        }
+        path.append(sr.getArtifactId()).append(File.separator).append(sr.getVersion()).append(File.separator);
+        path.append(sr.getArtifactId()).append("-").append(sr.getVersion());
+        
+        IPath jarPath = Path.fromOSString(path.toString() + ".jar");
+        IPath sourcePath = Path.fromOSString(path.toString() + "-sources.jar");
+        // TODO - ensure exists
+        if ( !jarPath.toFile().exists() || !sourcePath.toFile().exists()) {
+            return null;
+        }
+        
+        IRuntimeClasspathEntry mavenEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(jarPath);
+        mavenEntry.setSourceAttachmentPath(sourcePath);
+        
+        return mavenEntry;
+    }
+}