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;
+ }
+}