diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d844c3d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/target +.classpath +.settings +.project diff --git a/README.md b/README.md index c00c4b8..45820a7 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,6 @@ Heroku client for java web (*.war* and *.jar*) applications. Based on heroku maven plugin (heroku-deploy submodule): https://github.com/heroku/heroku-maven-plugin -| jar files | Brief description | -| :------------ |:---------------| -| *lib/heroku-deploy-0.5.4-SNAPSHOT-jar-with-dependencies.jar* | heroku-deploy module jar with all dependencies | -| *lib/heroku-deploy-0.5.4-SNAPSHOT.jar* | heroku-deploy module jar | - #### How to run the tests? 1. set the environment property HEROKU_API_KEY with the value of a valid heroku user (something like *'X1234X5X-12X3-12X3-123X-XX1X2X3X4XX6'*) 2. run the tests diff --git a/lib/heroku-deploy-0.5.4-SNAPSHOT-jar-with-dependencies.jar b/lib/heroku-deploy-0.5.4-SNAPSHOT-jar-with-dependencies.jar deleted file mode 100644 index 3d57f78..0000000 Binary files a/lib/heroku-deploy-0.5.4-SNAPSHOT-jar-with-dependencies.jar and /dev/null differ diff --git a/lib/heroku-deploy-0.5.4-SNAPSHOT.jar b/lib/heroku-deploy-0.5.4-SNAPSHOT.jar deleted file mode 100644 index db200ac..0000000 Binary files a/lib/heroku-deploy-0.5.4-SNAPSHOT.jar and /dev/null differ diff --git a/pom.xml b/pom.xml index d5b2686..a723af9 100644 --- a/pom.xml +++ b/pom.xml @@ -19,11 +19,9 @@ - heroku-java - deploy - 0.5.4-SNAPSHOT - system - ${basedir}/lib/heroku-deploy-0.5.4-SNAPSHOT-jar-with-dependencies.jar + com.heroku.sdk + heroku-deploy + 0.5.7 diff --git a/src/main/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnector.java b/src/main/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnector.java index 736e52b..0292f23 100644 --- a/src/main/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnector.java +++ b/src/main/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnector.java @@ -9,6 +9,7 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; + import com.heroku.api.Heroku; import com.heroku.api.Addon; import com.heroku.api.AddonChange; @@ -25,7 +26,7 @@ */ public class HerokuConnector { - + private String apiKey; /** * logs @@ -59,25 +60,14 @@ public HerokuConnector() { logAdapter.log(Level.INFO, ">> Connecting to Heroku ..."); - String apiKey = System.getenv(ENV_HEROKU_API_KEY); - if ((apiKey != null) && (!apiKey.isEmpty())) - { - try - { - _hApiClient = new HerokuAPI(apiKey); - logAdapter.log(Level.INFO, ">> Connection established: " + _hApiClient.getUserInfo().getId()); - } - catch (RequestFailedException e) - { - logAdapter.log(Level.WARNING, ">> Not connected to Heroku: " + e.getMessage()); - } - } - else - { - logAdapter.log(Level.WARNING, ">> Not connected to Heroku: API key is null or empty"); - } + apiKey = System.getenv(ENV_HEROKU_API_KEY); + connect(); } + public HerokuConnector(String apiKey) { + this.apiKey = apiKey; + connect(); + } /** * @@ -88,25 +78,31 @@ public HerokuConnector(String login, String passwd) { logAdapter.log(Level.INFO, ">> Connecting to Heroku ..."); - String apiKey = HerokuAPI.obtainApiKey(login, passwd); - if ((apiKey != null) && (!apiKey.isEmpty())) - { - try - { - _hApiClient = new HerokuAPI(apiKey); - logAdapter.log(Level.INFO, ">> Connection established: " + _hApiClient.getUserInfo().getId()); - } - catch (RequestFailedException e) - { - logAdapter.log(Level.WARNING, ">> Not connected to Heroku: " + e.getMessage()); - } - } - else - { - logAdapter.log(Level.WARNING, ">> Not connected to Heroku: API key is null or empty"); - } + apiKey = HerokuAPI.obtainApiKey(login, passwd); + connect(); + } + + private void connect() { + if ((apiKey != null) && (!apiKey.isEmpty())) + { + try + { + _hApiClient = new HerokuAPI(apiKey); + logAdapter.log(Level.INFO, ">> Connection established: " + _hApiClient.getUserInfo().getId()); + return; + } + catch (RequestFailedException e) + { + logAdapter.log(Level.WARNING, ">> Not connected to Heroku: " + e.getMessage()); + throw new RuntimeException("Not connected to Heroku: " + e.getMessage(), e); + } + } + else + { + logAdapter.log(Level.WARNING, ">> Not connected to Heroku: API key is null or empty"); + throw new RuntimeException("Not connected to Heroku: API key is null or empty"); + } } - /** * @@ -190,7 +186,7 @@ public boolean deployJavaWebApp(String applicationName, String warFile) String webappRunnerVersion = DEFAULT_WEBAPP_RUNNER_VERSION; String webappRunnerUrl = String.format(WEBAPP_RUNNER_URL_FORMAT, webappRunnerVersion, webappRunnerVersion); - DeployWar deployWarApp = new DeployWar(applicationName, new File(warFile), new URL(webappRunnerUrl)); + DeployWar deployWarApp = new DeployWar(applicationName, new File(warFile), new URL(webappRunnerUrl), apiKey); deployWarApp.deploy(includes, new HashMap(), jdkUrl == null ? jdkVersion : jdkUrl, stack, slugFileName); logAdapter.log(Level.INFO, ">> Application deployed"); diff --git a/src/test/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnectorTest.java b/src/test/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnectorTest.java index 850ae0c..cdac817 100644 --- a/src/test/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnectorTest.java +++ b/src/test/java/seaclouds/paas/adapter/heroku_deploy/HerokuConnectorTest.java @@ -18,7 +18,7 @@ public class HerokuConnectorTest { - // logs + //////////////////////////////////////////////////////////////// logs private static final Logger logAdapter = Logger.getLogger(HerokuConnectorTest.class.getName()); // heroku client @@ -26,7 +26,7 @@ public class HerokuConnectorTest // global values for tests public static final String APP_NAME = "app-tests-wabapp-roi2"; - public static final String APP_WAR_PATH = "C:/temporal/webapp.war"; + public static final String APP_WAR_PATH = "D:/uploads/SampleApp1.war"; public static final String ADDON_CLEARDB_IGNITE = "cleardb:ignite"; public static final String ENV_CLEARDB = "CLEARDB_DATABASE_URL"; @@ -34,7 +34,8 @@ public class HerokuConnectorTest @Before public void setUp() throws Exception { - hclient = new HerokuConnector(); + String apiKey = System.getenv("API_KEY"); + hclient = new HerokuConnector(apiKey); } @@ -72,15 +73,13 @@ public void testDeleteApp() assertTrue(!hclient.appExists(APP_NAME)); } - /* @Test public void testDeployApp() { assertTrue(hclient.deployJavaWebApp(APP_NAME, APP_WAR_PATH)); } - */ - @Test +// @Test public void testDeployJavaWebAppWithDataBase() { hclient.deployJavaWebAppWithDataBase(APP_NAME, APP_WAR_PATH, ADDON_CLEARDB_IGNITE);