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 2013/07/19 17:03:15 UTC
svn commit: r1504902 - in /sling/whiteboard/asanso/plugins/eclipse:
slingclipse-api/src/org/apache/sling/slingclipse/api/
slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/
Author: rombert
Date: Fri Jul 19 15:03:15 2013
New Revision: 1504902
URL: http://svn.apache.org/r1504902
Log:
SLING-2973 - [Tooling] Align Eclipse tooling to proposed structure
When starting a server, wait for it to become available before setting
the state to 'STARTED'.
Modified:
sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/RepositoryInfo.java
sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java
sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadConfiguration.java
sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadLaunchConfigurationDelegate.java
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/RepositoryInfo.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/RepositoryInfo.java?rev=1504902&r1=1504901&r2=1504902&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/RepositoryInfo.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/RepositoryInfo.java Fri Jul 19 15:03:15 2013
@@ -16,6 +16,8 @@
*/
package org.apache.sling.slingclipse.api;
+import java.net.URI;
+
public class RepositoryInfo {
private String username;
@@ -47,8 +49,8 @@ public class RepositoryInfo {
}
public int getPort(){
- String host=url.substring(7);
- return Integer.parseInt(host.split(":")[1]);
+
+ return URI.create(url).getPort();
}
@Override
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java?rev=1504902&r1=1504901&r2=1504902&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java Fri Jul 19 15:03:15 2013
@@ -25,6 +25,7 @@ import org.apache.sling.slingclipse.api.
import org.apache.sling.slingclipse.api.FileInfo;
import org.apache.sling.slingclipse.api.Repository;
import org.apache.sling.slingclipse.api.RepositoryInfo;
+import org.apache.sling.slingclipse.api.ResponseType;
import org.apache.sling.slingclipse.api.Result;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -32,6 +33,7 @@ import org.eclipse.core.resources.IResou
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.wst.server.core.IModule;
@@ -44,13 +46,30 @@ public class SlingLaunchpadBehaviour ext
@Override
public void stop(boolean force) {
- // TODO stub
+
setServerState(IServer.STATE_STOPPED);
}
- public void start() {
- // TODO stub
- setServerState(IServer.STATE_STARTED);
+ public void start(IProgressMonitor monitor) throws CoreException {
+
+ boolean success = false;
+
+ Result<String> result = null;
+ Command<String> command = getRepository(monitor).newListChildrenNodeCommand("/", ResponseType.XML);
+ result = command.execute();
+ success = result.isSuccess();
+
+ if (success) {
+ setServerState(IServer.STATE_STARTED);
+ } else {
+ setServerState(IServer.STATE_STOPPED);
+ String message = "Unable to connect to Sling Lanchpad. Please make sure a Launchpad instance is running ";
+ if (result != null) {
+ message += " (" + result.toString() + ")";
+ }
+ throw new CoreException(new Status(IStatus.ERROR, "org.apache.sling.ide.eclipse.wst",
+ message));
+ }
}
// TODO refine signature, visibility
@@ -108,24 +127,10 @@ public class SlingLaunchpadBehaviour ext
System.out.println(trace.toString());
- SlingLaunchpadServer launchpadServer = (SlingLaunchpadServer) getServer().loadAdapter(
- SlingLaunchpadServer.class, monitor);
- SlingLaunchpadConfiguration configuration = launchpadServer.getConfiguration();
+ Repository repository = getRepository(monitor);
IModuleResource[] moduleResources = getResources(module);
- Repository repository = SlingclipsePlugin.getDefault().getRepository();
- try {
- // TODO configurable scheme?
- URI uri = new URI("http", null, getServer().getHost(), configuration.getPort(),
- configuration.getContextPath(), null, null);
- RepositoryInfo repositoryInfo = new RepositoryInfo(configuration.getUsername(),
- configuration.getPassword(), uri.toString());
- repository.setRepositoryInfo(repositoryInfo);
- } catch (URISyntaxException e) {
- // TODO handle error
- }
-
switch (deltaKind) {
case ServerBehaviourDelegate.CHANGED:
IModuleResourceDelta[] publishedResourceDelta = getPublishedResourceDelta(module);
@@ -186,6 +191,27 @@ public class SlingLaunchpadBehaviour ext
super.publishModule(kind, deltaKind, module, monitor);
}
+ private Repository getRepository(IProgressMonitor monitor) {
+
+ SlingLaunchpadServer launchpadServer = (SlingLaunchpadServer) getServer().loadAdapter(
+ SlingLaunchpadServer.class, monitor);
+
+ SlingLaunchpadConfiguration configuration = launchpadServer.getConfiguration();
+
+ Repository repository = SlingclipsePlugin.getDefault().getRepository();
+ try {
+ // TODO configurable scheme?
+ URI uri = new URI("http", null, getServer().getHost(), configuration.getPort(),
+ configuration.getContextPath(), null, null);
+ RepositoryInfo repositoryInfo = new RepositoryInfo(configuration.getUsername(),
+ configuration.getPassword(), uri.toString());
+ repository.setRepositoryInfo(repositoryInfo);
+ } catch (URISyntaxException e) {
+ // TODO handle error
+ }
+ return repository;
+ }
+
private void execute(Command<?> command) throws CoreException {
if (command == null) {
return;
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadConfiguration.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadConfiguration.java?rev=1504902&r1=1504901&r2=1504902&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadConfiguration.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadConfiguration.java Fri Jul 19 15:03:15 2013
@@ -16,6 +16,8 @@
*/
package org.apache.sling.ide.eclipse.wst.internal;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+
public class SlingLaunchpadConfiguration {
@@ -27,35 +29,43 @@ public class SlingLaunchpadConfiguration
public int getPort() {
// TODO central place for setting defaults
- return server.getServerWorkingCopy().getAttribute(SlingLaunchpadServer.PROP_PORT, 8080);
+ return workingCopy().getAttribute(SlingLaunchpadServer.PROP_PORT, 8080);
+ }
+
+ private IServerWorkingCopy workingCopy() {
+ IServerWorkingCopy workingCopy = server.getServerWorkingCopy();
+ server.getServer().createWorkingCopy();
+ if (workingCopy == null)
+ workingCopy = server.getServer().createWorkingCopy();
+ return workingCopy;
}
public void setPort(int port) {
- server.getServerWorkingCopy().setAttribute(SlingLaunchpadServer.PROP_PORT, port);
+ workingCopy().setAttribute(SlingLaunchpadServer.PROP_PORT, port);
}
public String getContextPath() {
- return server.getServerWorkingCopy().getAttribute(SlingLaunchpadServer.PROP_CONTEXT_PATH, "/");
+ return workingCopy().getAttribute(SlingLaunchpadServer.PROP_CONTEXT_PATH, "/");
}
public void setContextPath(String contextPath) {
- server.getServerWorkingCopy().setAttribute(SlingLaunchpadServer.PROP_CONTEXT_PATH, contextPath);
+ workingCopy().setAttribute(SlingLaunchpadServer.PROP_CONTEXT_PATH, contextPath);
}
public String getUsername() {
- return server.getServerWorkingCopy().getAttribute(SlingLaunchpadServer.PROP_USERNAME, "admin");
+ return workingCopy().getAttribute(SlingLaunchpadServer.PROP_USERNAME, "admin");
}
public void setUsername(String username) {
- server.getServerWorkingCopy().setAttribute(SlingLaunchpadServer.PROP_USERNAME, username);
+ workingCopy().setAttribute(SlingLaunchpadServer.PROP_USERNAME, username);
}
public String getPassword() {
- return server.getServerWorkingCopy().getAttribute(SlingLaunchpadServer.PROP_PASSWORD, "admin");
+ return workingCopy().getAttribute(SlingLaunchpadServer.PROP_PASSWORD, "admin");
}
public void setPassword(String password) {
- server.getServerWorkingCopy().setAttribute(SlingLaunchpadServer.PROP_PASSWORD, password);
+ workingCopy().setAttribute(SlingLaunchpadServer.PROP_PASSWORD, password);
}
}
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadLaunchConfigurationDelegate.java?rev=1504902&r1=1504901&r2=1504902&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadLaunchConfigurationDelegate.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadLaunchConfigurationDelegate.java Fri Jul 19 15:03:15 2013
@@ -16,31 +16,18 @@
*/
package org.apache.sling.ide.eclipse.wst.internal;
-import java.io.File;
-import java.util.Map;
-
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.model.LaunchConfigurationDelegate;
import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate;
-import org.eclipse.jdt.launching.ExecutionArguments;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMRunner;
-import org.eclipse.jdt.launching.VMRunnerConfiguration;
import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerCore;
import org.eclipse.wst.server.core.ServerUtil;
public class SlingLaunchpadLaunchConfigurationDelegate extends AbstractJavaLaunchConfigurationDelegate {
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
- */
@Override
public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor)
throws CoreException {
@@ -51,30 +38,11 @@ public class SlingLaunchpadLaunchConfigu
null));
}
- if (server.shouldPublish() && ServerCore.isAutoPublishing())
- server.publish(IServer.PUBLISH_INCREMENTAL, monitor);
-
SlingLaunchpadBehaviour launchpad = (SlingLaunchpadBehaviour) server.loadAdapter(SlingLaunchpadBehaviour.class,
monitor);
- IVMInstall vm = verifyVMInstall(configuration);
-
- IVMRunner runner = vm.getVMRunner(mode);
- if (runner == null)
- runner = vm.getVMRunner(ILaunchManager.RUN_MODE);
-
- // TODO use
- File workingDir = verifyWorkingDirectory(configuration);
- String workingDirName = null;
- if (workingDir != null)
- workingDirName = workingDir.getAbsolutePath();
-
- setDefaultSourceLocator(launch, configuration);
-
- File java = new File("/usr/bin/java"); // TODO configurable and use
-
launchpad.setupLaunch(launch, mode, monitor);
- launchpad.start();
+ launchpad.start(monitor);
}
}