enable source classpath in debug breakpoints
clear cache in boot (make this configurable in future commit)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@883335 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java
index 7250bba..289428b 100644
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java
+++ b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/LaunchHelper.java
@@ -55,7 +55,7 @@
public static String[] getProgramArgs( ILaunchConfiguration config )
{
- return new String[] { "-p", "9090", "-a", "localhost" };
+ return new String[] { "-p", "9090", "-a", "localhost", "-c" };
}
public static long getBackoff( ILaunchConfiguration config )
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java
index cab1f2f..5cbcbdb 100644
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java
+++ b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/OSGiLauncher.java
@@ -77,6 +77,7 @@
SigilCore.log( "VM=" + install.getName() );
SigilCore.log( "Main=" + vmconfig.getClassToLaunch() );
SigilCore.log( "VMArgs=" + Arrays.asList( vmconfig.getVMArguments() ) );
+ SigilCore.log( "Boot Classpath=" + Arrays.asList( vmconfig.getBootClassPath() ) );
SigilCore.log( "Classpath=" + Arrays.asList( vmconfig.getClassPath() ) );
SigilCore.log( "Args=" + Arrays.asList( vmconfig.getProgramArguments() ) );
SigilCore.log( "Working Dir=" + vmconfig.getWorkingDirectory() );
@@ -91,7 +92,7 @@
{
String name = LaunchHelper.getRepositoryManagerName(config);
IRepositoryManager manager = SigilCore.getRepositoryManager(name);
- client.apply(form.resolve(new RuntimeBundleResolver(manager)));
+ client.apply(form.resolve(new RuntimeBundleResolver(manager, config)));
}
catch (Exception e)
{
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java
index 8c4416d..2c4a399 100644
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java
+++ b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/RuntimeBundleResolver.java
@@ -10,6 +10,7 @@
import org.apache.felix.sigil.common.runtime.BundleForm.Resolver;
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
+import org.apache.felix.sigil.eclipse.runtime.source.SigilSourcePathProvider;
import org.apache.felix.sigil.model.ModelElementFactory;
import org.apache.felix.sigil.model.eclipse.ISigilBundle;
import org.apache.felix.sigil.model.osgi.IRequiredBundle;
@@ -19,6 +20,7 @@
import org.apache.felix.sigil.repository.ResolutionConfig;
import org.apache.felix.sigil.repository.ResolutionException;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
import org.osgi.framework.Version;
public class RuntimeBundleResolver implements ResolutionContext
@@ -55,6 +57,8 @@
ISigilProjectModel p = b.getAncestor(ISigilProjectModel.class);
if ( p != null ) {
uris.add(p.findBundleLocation().toFile().toURI());
+ SigilCore.log("Adding project source to source path " + p.getName());
+ SigilSourcePathProvider.addProjectSource(launchConfig, p);
}
else {
b.synchronize(null);
@@ -80,9 +84,11 @@
}
private final IRepositoryManager manager;
+ private final ILaunchConfiguration launchConfig;
- public RuntimeBundleResolver(IRepositoryManager manager) {
+ public RuntimeBundleResolver(IRepositoryManager manager, ILaunchConfiguration launchConfig) {
this.manager = manager;
+ this.launchConfig = launchConfig;
}
public Resolver findResolver(URI uri)
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java
index b39a713..47a3d36 100644
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java
+++ b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationConstants.java
@@ -5,5 +5,6 @@
String FORM_FILE_LOCATION = "org.apache.felix.sigil.form.location";
String AUTOMATIC_ADD = "org.apache.felix.sigil.automatic.add";
+ String CLASSPATH_PROVIDER = "org.apache.felix.sigil.classpath.Provider";
}
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java
index bfc27e8..e3d3179 100644
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java
+++ b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/config/OSGiLaunchConfigurationTab.java
@@ -29,6 +29,7 @@
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
@@ -151,6 +152,8 @@
public void performApply( ILaunchConfigurationWorkingCopy config )
{
config.setAttribute(OSGiLaunchConfigurationConstants.FORM_FILE_LOCATION, formLocation);
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, OSGiLaunchConfigurationConstants.CLASSPATH_PROVIDER );
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH_PROVIDER, OSGiLaunchConfigurationConstants.CLASSPATH_PROVIDER);
}
/* (non-Javadoc)
diff --git a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java
index 63ddf0a..2b6f170 100644
--- a/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java
+++ b/sigil/eclipse/runtime/src/org/apache/felix/sigil/eclipse/runtime/source/SigilSourcePathProvider.java
@@ -28,7 +28,7 @@
ArrayList<IRuntimeClasspathEntry> all = new ArrayList<IRuntimeClasspathEntry>(entries.length);
all.addAll( workbenchSourcePath(entries, configuration) );
- all.addAll( launchOverridePath( configuration ) );
+// all.addAll( launchOverridePath( configuration ) );
// all.addAll( newtonSourcePath( configuration ) );
Set<IRuntimeClasspathEntry> dynamic = dynamicRuntime.get( configuration );
if ( dynamic != null ) {