diff --git a/commands/pom.xml b/commands/pom.xml
index 74f58efd..d554a47e 100644
--- a/commands/pom.xml
+++ b/commands/pom.xml
@@ -124,7 +124,7 @@ limitations under the License.
org.apache.jclouds.driver
- jclouds-sshj
+ jclouds-jsch
org.apache.jclouds.driver
diff --git a/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java b/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
index 3ab31e1b..acf6dd01 100644
--- a/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
+++ b/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
@@ -20,6 +20,7 @@
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
+
import org.apache.felix.gogo.commands.Option;
import org.jclouds.Constants;
import org.jclouds.ContextBuilder;
@@ -29,7 +30,7 @@
import org.jclouds.karaf.utils.EnvHelper;
import org.jclouds.karaf.utils.ServiceHelper;
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
-import org.jclouds.sshj.config.SshjSshClientModule;
+import org.jclouds.ssh.jsch.config.JschSshClientModule;
import java.io.IOException;
import java.io.File;
@@ -86,6 +87,9 @@ protected ComputeService getComputeService() throws IOException {
String apiValue = EnvHelper.getComputeApi(api);
String identityValue = EnvHelper.getComputeIdentity(identity);
String credentialValue = EnvHelper.getComputeCredential(credential);
+ if (providerValue.equals("google-compute-engine")) {
+ credentialValue = EnvHelper.getGoogleCredentialFromJsonFile(credentialValue);
+ }
String endpointValue = EnvHelper.getComputeEndpoint(endpoint);
boolean contextNameProvided = !Strings.isNullOrEmpty(name);
boolean canCreateService = (!Strings.isNullOrEmpty(providerValue) || !Strings.isNullOrEmpty(apiValue))
@@ -136,7 +140,7 @@ protected ComputeService getComputeService() throws IOException {
ContextBuilder builder = ContextBuilder
.newBuilder(providerOrApiValue)
.credentials(identityValue, credentialValue)
- .modules(ImmutableSet. of(new SshjSshClientModule(), new Log4JLoggingModule(),
+ .modules(ImmutableSet. of(new JschSshClientModule(), new Log4JLoggingModule(),
new PropertiesCredentialStore()));
if (!Strings.isNullOrEmpty(endpointValue)) {
builder = builder.endpoint(endpointValue);
diff --git a/feature/pom.xml b/feature/pom.xml
index 492f2850..f23fa930 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -130,7 +130,7 @@ limitations under the License.
jclouds-cloudsigma2-sjc
jclouds-cloudsigma2-wdc
jclouds-cloudsigma2-zrh
- jclouds-digitalocean
+ jclouds-digitalocean2
jclouds-dynect
jclouds-elastichosts-lon-b
jclouds-elastichosts-lon-p
@@ -139,8 +139,8 @@ limitations under the License.
jclouds-elastichosts-tor-p
jclouds-gogrid
jclouds-go2cloud-jhb1
+ jclouds-google-compute-engine
jclouds-glesys
- jclouds-hpcloud-compute
jclouds-openhosting-east1
jclouds-rackspace-cloudfiles-us
jclouds-rackspace-cloudfiles-uk
diff --git a/feature/src/main/resources/feature.xml b/feature/src/main/resources/feature.xml
index cf97677a..a2f858af 100644
--- a/feature/src/main/resources/feature.xml
+++ b/feature/src/main/resources/feature.xml
@@ -165,7 +165,7 @@ limitations under the License.
jclouds-api-s3
- mvn:org.bouncycastle/bcprov-jdk15on/${bcprov.version}
+ mvn:org.bouncycastle/bcprov-ext-jdk15on/${bcprov.version}
mvn:org.apache.jclouds.driver/jclouds-bouncycastle/${jclouds.version}
mvn:io.netty/netty/${netty.bundle.version}
mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore.version}
@@ -273,35 +273,30 @@ limitations under the License.
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
- mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}
mvn:org.apache.jclouds.provider/elastichosts-lon-b/${jclouds.version}
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
- mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}
mvn:org.apache.jclouds.provider/elastichosts-lon-p/${jclouds.version}
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
- mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}
mvn:org.apache.jclouds.provider/elastichosts-sat-p/${jclouds.version}
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
- mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}
mvn:org.apache.jclouds.provider/elastichosts-lax-p/${jclouds.version}
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
- mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}
mvn:org.apache.jclouds.provider/elastichosts-tor-p/${jclouds.version}
@@ -320,17 +315,25 @@ limitations under the License.
mvn:org.apache.jclouds.provider/glesys/${jclouds.version}
-
- jclouds-api-openstack-nova
- mvn:org.apache.jclouds.provider/hpcloud-compute/${jclouds.version}
-
-
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
mvn:org.apache.jclouds.provider/openhosting-east1/${jclouds.version}
+
+ jclouds-compute
+ mvn:org.apache.jclouds.api/oauth/${jclouds.version}
+ mvn:org.apache.jclouds.provider/digitalocean2/${jclouds.version}
+
+
+
+ jclouds-compute
+ mvn:org.apache.jclouds.api/oauth/${jclouds.version}
+ mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}
+ mvn:org.apache.jclouds.provider/google-compute-engine/${jclouds.version}
+
+
jclouds-compute
mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}
@@ -348,11 +351,6 @@ limitations under the License.
mvn:org.apache.jclouds.provider/softlayer/${jclouds.version}
-
- jclouds-compute
- mvn:org.apache.jclouds.labs/digitalocean/${jclouds.version}
-
-
jclouds-compute
mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}
@@ -387,17 +385,17 @@ limitations under the License.
mvn:org.apache.jclouds.karaf/jclouds-karaf/${project.version}/cfg/credentials
jclouds-compute
jclouds-blobstore
- mvn:net.schmizz/sshj/${sshj.version}
- mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch-agentproxy-sshj/${jsch.agentproxy.bundle.version}
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch.bundle.version}
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch-agentproxy-jsch/${jsch.agentproxy.bundle.version}
mvn:com.jcraft/jsch.agentproxy.connector-factory/${jsch.agentproxy.version}
mvn:com.jcraft/jsch.agentproxy.usocket-nc/${jsch.agentproxy.version}
mvn:com.jcraft/jsch.agentproxy.sshagent/${jsch.agentproxy.version}
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.bundle.version}
- mvn:org.bouncycastle/bcpkix-jdk15on/${bcprov.version}
- mvn:org.bouncycastle/bcprov-jdk15on/${bcprov.version}
+ mvn:org.bouncycastle/bcprov-ext-jdk15on/${bcprov.version}
mvn:org.apache.jclouds.driver/jclouds-bouncycastle/${jclouds.version}
mvn:org.apache.jclouds.driver/jclouds-slf4j/${jclouds.version}
- mvn:org.apache.jclouds.driver/jclouds-sshj/${jclouds.version}
+ mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}
+ mvn:org.apache.jclouds.driver/jclouds-jsch/${jclouds.version}
mvn:org.apache.jclouds.driver/jclouds-log4j/${jclouds.version}
mvn:org.apache.jclouds.karaf/core/${project.version}
mvn:org.apache.jclouds.karaf/cache/${project.version}
diff --git a/itests/src/test/java/org/jclouds/karaf/itests/HPCloudFeaturesInstallationTest.java b/itests/src/test/java/org/jclouds/karaf/itests/HPCloudFeaturesInstallationTest.java
deleted file mode 100644
index 5f3d95e7..00000000
--- a/itests/src/test/java/org/jclouds/karaf/itests/HPCloudFeaturesInstallationTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.
- */
-
-package org.jclouds.karaf.itests;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.ExamReactorStrategy;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-@RunWith(JUnit4TestRunner.class)
-@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class HPCloudFeaturesInstallationTest extends JcloudsFeaturesTestSupport {
-
- @Before
- public void setUp() {
- System.err.println(executeCommand("features:addurl " + getJcloudsKarafFeatureURL()));
- }
-
- @After
- public void tearDown() {
-
- }
-
- @Test
- public void testHPCloudCompute() throws Exception {
- installAndCheckFeature("jclouds-hpcloud-compute");
- }
-}
diff --git a/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java b/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
index 50599d4f..c4860bc5 100644
--- a/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
+++ b/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
@@ -90,7 +90,12 @@ public void testGlesysFeature() throws Exception {
}
@Test
- public void testDigitalOceanFeature() throws Exception {
- installAndCheckFeature("jclouds-digitalocean");
+ public void testDigitalOcean2Feature() throws Exception {
+ installAndCheckFeature("jclouds-digitalocean2");
+ }
+
+ @Test
+ public void testGoogleComputeEngineFeature() throws Exception {
+ installAndCheckFeature("jclouds-google-compute-engine");
}
}
diff --git a/pom.xml b/pom.xml
index bb958615..6bdf6547 100644
--- a/pom.xml
+++ b/pom.xml
@@ -182,7 +182,7 @@ limitations under the License.
1.0_5
- 1.49
+ 1.51
1.2.8
3.0
1.2.8
@@ -200,8 +200,9 @@ limitations under the License.
1.11
1.11_1
2.1
- 0.1.44_2
- 0.0.8
+ 0.1.49
+ ${jsch.version}_1
+ 0.0.9
${jsch.agentproxy.version}_1
1.3.9_1
1.9.0
@@ -218,7 +219,6 @@ limitations under the License.
2.0.0
1.5.8
1.11
- 0.8.1
1.2
@@ -357,7 +357,7 @@ limitations under the License.
org.bouncycastle
- bcprov-jdk15on
+ bcprov-ext-jdk15on
${bcprov.version}
@@ -448,11 +448,11 @@ limitations under the License.
${guava.version}
-
+
- net.schmizz
- sshj
- ${sshj.version}
+ com.jcraft
+ jsch
+ ${jsch.version}
com.jcraft
@@ -463,7 +463,7 @@ limitations under the License.
org.apache.servicemix.bundles
- org.apache.servicemix.bundles.jsch-agentproxy-sshj
+ org.apache.servicemix.bundles.jsch-agentproxy-jsch
${jsch.agentproxy.bundle.version}
@@ -538,16 +538,16 @@ limitations under the License.
jclouds-jsch
${jclouds.version}
-
- org.apache.jclouds.driver
- jclouds-sshj
- ${jclouds.version}
-
org.apache.jclouds.api
chef
${jclouds.chef.version}
+
+ org.apache.jclouds.common
+ googlecloud
+ ${jclouds.version}
+
diff --git a/services/pom.xml b/services/pom.xml
index fba87611..1a4e972d 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -70,7 +70,7 @@ limitations under the License.
org.apache.jclouds.driver
- jclouds-sshj
+ jclouds-jsch
diff --git a/services/src/main/java/org/jclouds/karaf/services/internal/ComputeServiceFactory.java b/services/src/main/java/org/jclouds/karaf/services/internal/ComputeServiceFactory.java
index ef5f0afb..2b72ac45 100644
--- a/services/src/main/java/org/jclouds/karaf/services/internal/ComputeServiceFactory.java
+++ b/services/src/main/java/org/jclouds/karaf/services/internal/ComputeServiceFactory.java
@@ -17,10 +17,10 @@
package org.jclouds.karaf.services.internal;
-import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.reflect.TypeToken;
-import com.google.inject.Module;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Properties;
+
import org.jclouds.ContextBuilder;
import org.jclouds.apis.ApiMetadata;
import org.jclouds.apis.ApiPredicates;
@@ -34,7 +34,7 @@
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.providers.ProviderPredicates;
-import org.jclouds.sshj.config.SshjSshClientModule;
+import org.jclouds.ssh.jsch.config.JschSshClientModule;
import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceRegistration;
@@ -43,9 +43,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Properties;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.reflect.TypeToken;
+import com.google.inject.Module;
public class ComputeServiceFactory extends ServiceFactorySupport {
@@ -159,7 +160,7 @@ public synchronized void updated(String pid, Dictionary properties) throws Confi
builder = builder.endpoint(endpoint);
}
- builder = builder.name(id).modules(ImmutableSet.of(new Log4JLoggingModule(), new SshjSshClientModule()));
+ builder = builder.name(id).modules(ImmutableSet.of(new Log4JLoggingModule(), new JschSshClientModule()));
if (credentialStore != null) {
builder = builder.modules(ImmutableSet.of(credentialStore));
diff --git a/utils/pom.xml b/utils/pom.xml
index 746e29fb..bc66aeb8 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -33,6 +33,10 @@ limitations under the License.
org.apache.jclouds.karaf
core
+
+ org.apache.jclouds.common
+ googlecloud
+
diff --git a/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java b/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
index 54ecb39b..f8cdd173 100644
--- a/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
+++ b/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
@@ -25,6 +25,12 @@
import java.util.Properties;
import org.jclouds.Constants;
+import org.jclouds.domain.Credentials;
+import org.jclouds.googlecloud.GoogleCredentialsFromJson;
+
+import com.google.common.base.Charsets;
+import com.google.common.base.Supplier;
+import com.google.common.io.Files;
public class EnvHelper {
@@ -91,6 +97,22 @@ public static String getComputeCredential(String credential) {
credential, Constants.PROPERTY_CREDENTIAL, JCLOUDS_COMPUTE_CREDENTIAL);
}
+ /**
+ * Extracts the credential value from the Google Cloud credentials json file.
+ * @param jsonFile
+ * @return
+ */
+ public static String getGoogleCredentialFromJsonFile(String jsonFile) {
+ try {
+ String fileContents = Files.toString(new File(jsonFile), Charsets.UTF_8);
+ Supplier credentialSupplier = new GoogleCredentialsFromJson(fileContents);
+ String credential = credentialSupplier.get().credential;
+ return credential;
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
/**
* Returns the endpoint value and falls back to env if the specified value is null.
*