Add support for Virgo 3.7
- Consume the latest org.eclipse.virgo.kernel-tools as a binary nested
JAR inside org.eclipse.virgo.ide.manifest.core lib folder.
- Change Virgo37Provider to detect runtime version via
$VIRGO_HOME/lib/.version file and to assume that the java profile file
is now named java-server.profile
diff --git a/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools-sources.jar b/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools-sources.jar
index e1ccd7e..3b574b4 100644
--- a/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools-sources.jar
+++ b/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools-sources.jar
Binary files differ
diff --git a/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools.jar b/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools.jar
index edfbf7a..b2c142a 100644
--- a/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools.jar
+++ b/org.eclipse.virgo.ide.manifest.core/lib/org.eclipse.virgo.kernel.tools.jar
Binary files differ
diff --git a/org.eclipse.virgo.ide.runtime.core/src/org/eclipse/virgo/ide/runtime/internal/core/runtimes/Virgo37Provider.java b/org.eclipse.virgo.ide.runtime.core/src/org/eclipse/virgo/ide/runtime/internal/core/runtimes/Virgo37Provider.java
index 9b3a7fd..211f11f 100644
--- a/org.eclipse.virgo.ide.runtime.core/src/org/eclipse/virgo/ide/runtime/internal/core/runtimes/Virgo37Provider.java
+++ b/org.eclipse.virgo.ide.runtime.core/src/org/eclipse/virgo/ide/runtime/internal/core/runtimes/Virgo37Provider.java
@@ -11,12 +11,20 @@
package org.eclipse.virgo.ide.runtime.internal.core.runtimes;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IPath;
import org.eclipse.virgo.ide.runtime.core.IServerBehaviour;
import org.eclipse.virgo.ide.runtime.core.IServerRuntimeProvider;
import org.eclipse.virgo.ide.runtime.internal.core.DeploymentIdentity;
import org.eclipse.virgo.ide.runtime.internal.core.command.IServerCommand;
import org.eclipse.virgo.ide.runtime.internal.core.command.JmxServerDeployCommand;
+import org.eclipse.virgo.util.io.IOUtils;
import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IRuntime;
+import org.osgi.framework.Version;
/**
* {@link IServerRuntimeProvider} for Virgo Server 3.7.0 and above.
@@ -32,13 +40,46 @@
}
@Override
+ public boolean isHandlerFor(IRuntime runtime) {
+ IPath libPath = runtime.getLocation().append("lib"); //$NON-NLS-1$
+ File libDir = libPath.toFile();
+ if (libDir.exists()) {
+ IPath versionFilePath = libPath.append(".version"); //$NON-NLS-1$
+ File versionFile = versionFilePath.toFile();
+ if (versionFile.exists()) {
+ String version = (String) readVersionFile(versionFile).get("virgo.server.version"); //$NON-NLS-1$
+ if (version != null) {
+ Version ver = Version.parseVersion(version);
+ return (ver.getMajor() == 3 && ver.getMinor() >= 7);
+ }
+ }
+ return false;
+ }
+ return false;
+ }
+
+ private Properties readVersionFile(File versionFile) {
+ Properties props = new Properties();
+ FileInputStream fis = null;
+ try {
+ fis = new FileInputStream(versionFile);
+ props.load(fis);
+ } catch (Exception e) {
+ // ignore
+ } finally {
+ IOUtils.closeQuietly(fis);
+ }
+ return props;
+ }
+
+ @Override
protected String getServerProfileName() {
- return "java7-server.profile";
+ return "java-server.profile"; //$NON-NLS-1$
}
@Override
public String getSupportedVersions() {
- return "3.7+";
+ return "3.7+"; //$NON-NLS-1$
}
/*