From 67a31159ca91a4e5e1c97bb128a7306ecf407392 Mon Sep 17 00:00:00 2001 From: mattbsox Date: Fri, 15 Feb 2019 15:26:17 -0600 Subject: [PATCH 1/5] adding boostApp configuration --- .../io/openliberty/boost/gradle/Boost.groovy | 2 ++ .../gradle/tasks/BoostPackageTask.groovy | 16 ++++++++++++-- .../gradle/utils/GradleProjectUtil.groovy | 22 ++++++++++++++++--- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/Boost.groovy b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/Boost.groovy index 08b3b506..b3a0dd25 100644 --- a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/Boost.groovy +++ b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/Boost.groovy @@ -24,12 +24,14 @@ public class Boost implements Plugin { void apply(Project project) { project.extensions.create('boost', BoostExtension) + project.configurations.create('boostApp') BoostLogger.init(project) new BoostTaskFactory(project).createTasks() project.pluginManager.apply('net.wasdev.wlp.gradle.plugins.Liberty') + project.configurations.libertyApp.extendsFrom(project.configurations.boostApp) project.liberty.server = configureBoostServerProperties() configureRuntimeArtifact(project) diff --git a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy index e1b32083..a3761d2c 100644 --- a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy +++ b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy @@ -19,6 +19,7 @@ import java.io.FileOutputStream import java.io.IOException import org.apache.commons.io.FileUtils +import org.apache.commons.io.FilenameUtils import javax.xml.parsers.ParserConfigurationException import javax.xml.transform.TransformerException @@ -134,7 +135,7 @@ public class BoostPackageTask extends AbstractBoostTask { copySpringBootUberJar(springBootUberJar) generateServerConfigSpringBoot() - } else if (project.plugins.hasPlugin('war')) { + } else if (project.plugins.hasPlugin('war') || !project.configurations.boostApp.isEmpty()) { // Get booster dependencies from project Map dependencies = GradleProjectUtil.getAllDependencies(project, BoostLogger.getInstance()) @@ -216,13 +217,15 @@ public class BoostPackageTask extends AbstractBoostTask { protected void generateServerConfigEE() throws GradleException { String warName = null - if (project.war != null) { + if (project.plugins.hasPlugin('war')) { if (project.war.version == null) { warName = project.war.baseName } else { warName = project.war.baseName + "-" + project.war.version } + } else { + warName = getWarNameFromBoostApps() } try { @@ -317,4 +320,13 @@ public class BoostPackageTask extends AbstractBoostTask { } } + //Runs through the dependencies in the boostApp configuration and pulls out the first war name. + protected String getWarNameFromBoostApps() { + for (def dep : project.configurations.boostApp) { + if (FilenameUtils.getExtension(dep.name).equals('war')) { + return dep.name.substring(0, dep.name.length() - 4) + } + } + return null + } } diff --git a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy index 89466019..532b5786 100644 --- a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy +++ b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy @@ -11,10 +11,12 @@ package io.openliberty.boost.gradle.utils import org.gradle.api.Project +import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency +import org.gradle.api.artifacts.ModuleVersionIdentifier +import org.gradle.api.artifacts.UnknownConfigurationException import org.gradle.maven.MavenModule import org.gradle.maven.MavenPomArtifact -import org.gradle.api.artifacts.ModuleVersionIdentifier import groovy.lang.MissingPropertyException @@ -45,13 +47,27 @@ public class GradleProjectUtil { Map dependencies = new HashMap() logger.debug("Processing project for dependencies.") - project.configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.collect { it.moduleVersion.id }.each { ModuleVersionIdentifier id -> + try { + //Projects without the war/java plugin won't have this configuration + dependencies.putAll(project.configurations.getByName('compileClasspath'), logger) + } catch (UnknownConfigurationException ue) { + logger.debug("The compileClasspath configuration was not found.") + } + + //Will always have the boostApp configuration since we create it in apply() + dependencies.putAll(getAllDependenciesFromConfiguration(project.configurations.boostApp, logger)) + + return dependencies + } + + public static Map getAllDependenciesFromConfiguration(Configuration configuration, BoostLogger logger) { + Map dependencies = new HashMap() + configuration.resolvedConfiguration.resolvedArtifacts.collect { it.moduleVersion.id }.each { ModuleVersionIdentifier id -> logger.debug("Found dependency while processing project: " + id.group.toString() + ":" + id.name.toString() + ":" + id.version.toString()) dependencies.put(id.group.toString() + ":" + id.name.toString(), id.version.toString()) } - return dependencies } } \ No newline at end of file From 33515325dd5888a5db3a41901045b35ffba9340d Mon Sep 17 00:00:00 2001 From: mattbsox Date: Fri, 15 Feb 2019 15:48:03 -0600 Subject: [PATCH 2/5] adding demo/test project --- .../resources/devProdApp/dev/build.gradle | 50 ++++++++++++ .../java/application/servlet/JdbcServlet.java | 72 ++++++++++++++++++ .../devProdApp/dev/src/main/webapp/.gitignore | 1 + .../dev/src/main/webapp/WEB-INF/web.xml | 7 ++ .../devProdApp/dev/src/main/webapp/index.html | Bin 0 -> 201100 bytes .../resources/devProdApp/prod/build.gradle | 24 ++++++ 6 files changed, 154 insertions(+) create mode 100644 boost-gradle/src/test/resources/devProdApp/dev/build.gradle create mode 100644 boost-gradle/src/test/resources/devProdApp/dev/src/main/java/application/servlet/JdbcServlet.java create mode 100644 boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/.gitignore create mode 100644 boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/WEB-INF/web.xml create mode 100644 boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/index.html create mode 100644 boost-gradle/src/test/resources/devProdApp/prod/build.gradle diff --git a/boost-gradle/src/test/resources/devProdApp/dev/build.gradle b/boost-gradle/src/test/resources/devProdApp/dev/build.gradle new file mode 100644 index 00000000..1886da57 --- /dev/null +++ b/boost-gradle/src/test/resources/devProdApp/dev/build.gradle @@ -0,0 +1,50 @@ +buildscript { + repositories { + mavenCentral() + mavenLocal() + maven { + url 'https://oss.sonatype.org/content/repositories/snapshots/' + } + maven { url 'https://repo.spring.io/plugins-snapshot' } + } + dependencies { + classpath("io.openliberty.boost:boost-gradle-plugin:0.1.1-SNAPSHOT") + classpath 'io.spring.gradle:dependency-management-plugin:1.0.6.RELEASE' + } +} + +apply plugin: 'war' +apply plugin: 'maven' +apply plugin: 'boost' +apply plugin: 'io.spring.dependency-management' + +group = "test" +version = "1.0" + +war { + baseName = 'app' +} + +repositories { + mavenCentral() + mavenLocal() +} + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +dependencyManagement { + imports { + mavenBom "io.openliberty.boosters:ee8-bom:0.1.3-SNAPSHOT" + } +} + +dependencies { + compile "io.openliberty.boosters:jaxrs" + compile "io.openliberty.boosters:jdbc" + compile("org.apache.httpcomponents:httpclient:4.5.6") + compile("org.apache.httpcomponents:httpcore:4.4.10") + compile "javax.servlet:javax.servlet-api:4.0.0" + + libertyRuntime "io.openliberty:openliberty-runtime:18.0.0.4" +} diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/java/application/servlet/JdbcServlet.java b/boost-gradle/src/test/resources/devProdApp/dev/src/main/java/application/servlet/JdbcServlet.java new file mode 100644 index 00000000..4595da4a --- /dev/null +++ b/boost-gradle/src/test/resources/devProdApp/dev/src/main/java/application/servlet/JdbcServlet.java @@ -0,0 +1,72 @@ +package application.servlet; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.annotation.Resource; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; + +/** + * Servlet implementation class JdbcServlet + */ +@WebServlet("/*") +public class JdbcServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse + * response) + */ + @Resource + DataSource ds1; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + Statement stmt = null; + Connection con = null; + + try { + con = ds1.getConnection(); + + stmt = con.createStatement(); + // create a table + stmt.executeUpdate( + "create table cities (name varchar(50) not null primary key, population int, county varchar(30))"); + // insert a test record + stmt.executeUpdate("insert into cities values ('myHomeCity', 106769, 'myHomeCounty')"); + // select a record + ResultSet result = stmt.executeQuery("select county from cities where name='myHomeCity'"); + result.next(); + // display the county information for the city. + response.getWriter().print("

Text retrieved from database is: " + + "" + result.getString(1) + "

"); + // System.out.println("The county for myHomeCity is " + + // result.getString(1)); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + try { + // drop the table to clean up and to be able to rerun the test. + stmt.executeUpdate("drop table cities"); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + } + +} diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/.gitignore b/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/.gitignore new file mode 100644 index 00000000..3385916d --- /dev/null +++ b/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/.gitignore @@ -0,0 +1 @@ +/META-INF/ diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/WEB-INF/web.xml b/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..ce12e9af --- /dev/null +++ b/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + Java REST Sample + + index.html + + diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/index.html b/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/index.html new file mode 100644 index 0000000000000000000000000000000000000000..e3a3a3ffb01b669db0f215a60f0917945fe88dd0 GIT binary patch literal 201100 zcmeIzL37(g6aZkZ&97K|0cIMDmKhFUG80M}JcShMK!;ODkv6udED1@j$-if1J0aXT zF<%aLyxM(w@6+zn;^Xu4a2CRgw!7=A^=1s87N3RZpFjIDEWiCJ4foyrY?|<6Rm5h9 zW!N=k?8CT;;j+t%^mV%OH2fC(p=z7(eExa(beb?bU7CINb&7D;?!q>|3r#zQ-4IiV zY6!Pg9Yg%9h}{^fCKTzV%S&X=5U)+kd#LF{S>0T8S^wdPxHIG(B3|t7xM9t za0p>Dj@?&Tw%_mP`61VN+pn|wSjmw6xP0;QYW4Cw<$GB1Yg5Nz2z~r>SM{mVo4b&A zDV-v}NlDiEKD2$v*L_Ua#&$|~-&bSRte=LVy&d;?A5)HHHH>|Avm5_qbt)pHk{?e< zT6q&@m#eT`&BC{rtL5rxit%=N{ln{DufyBRH*YSlu9q)Y;q{yF;`P;c%j@OqtMu#p zaC!B6c(uIx?rDfgDm{|;SJzMZrzERMF_shADo)Z5Pbu7{%hT_ni$!%?6{)Ufz021z ztlJNauC~>fkB56xY!+UfcCX|vqKe!NS2=KwoJTx4n9ae>WfGyXT5v8+B^oIP1=o?onD|Dld! z+GWqDkuH5aSvEse9?wPBw|~T9oX$iar{kI5ANpx;&WGdbklM%lbV$~m*o`yKIWmrrQ;u)vTLhm4Es%0Yz}?0NW*zi zOvgDN!y-?Co^1Mf`_1gMcy^JU{##`ELtWPoMbtx^?li_>3{Ad`r&?c>eRO*Hd;-OZbFzTMSh)z$f!y5V-7(#Z0d_37ffQ)=%{ zxaVKYpUtPnHoJH-h6eRTX=Cu?p|b(O&fEOK0;M~GaF;E zY1+D7S8=Kk`R_009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs Q0RjXF5FkK+!2ea?Z@b8eZU6uP literal 0 HcmV?d00001 diff --git a/boost-gradle/src/test/resources/devProdApp/prod/build.gradle b/boost-gradle/src/test/resources/devProdApp/prod/build.gradle new file mode 100644 index 00000000..6ab62540 --- /dev/null +++ b/boost-gradle/src/test/resources/devProdApp/prod/build.gradle @@ -0,0 +1,24 @@ +buildscript { + repositories { + mavenCentral() + mavenLocal() + maven { + url 'https://oss.sonatype.org/content/repositories/snapshots/' + } + maven { url 'https://repo.spring.io/plugins-snapshot' } + } + dependencies { + classpath("io.openliberty.boost:boost-gradle-plugin:0.1.1-SNAPSHOT") + } +} + +apply plugin: 'boost' + +repositories { + mavenCentral() + mavenLocal() +} + +dependencies { + boostApp "test:app:1.0" +} From b58bd35f810a030786b329ab6bdad9f242802229 Mon Sep 17 00:00:00 2001 From: mattbsox Date: Fri, 8 Mar 2019 15:06:33 -0600 Subject: [PATCH 3/5] Adding tests for boostApplication using dev and release projects --- .../gradle/utils/GradleProjectUtil.groovy | 8 +- .../groovy/BoostPackageDevReleaseTest.groovy | 84 ++++++++++++++++++ .../dev/build.gradle | 4 +- .../java/application/servlet/JdbcServlet.java | 0 .../dev/src/main/webapp/.gitignore | 0 .../dev/src/main/webapp/WEB-INF/web.xml | 0 .../dev/src/main/webapp/index.html | Bin .../release}/build.gradle | 2 +- 8 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 boost-gradle/src/test/groovy/BoostPackageDevReleaseTest.groovy rename boost-gradle/src/test/resources/{devProdApp => devReleaseApp}/dev/build.gradle (87%) rename boost-gradle/src/test/resources/{devProdApp => devReleaseApp}/dev/src/main/java/application/servlet/JdbcServlet.java (100%) rename boost-gradle/src/test/resources/{devProdApp => devReleaseApp}/dev/src/main/webapp/.gitignore (100%) rename boost-gradle/src/test/resources/{devProdApp => devReleaseApp}/dev/src/main/webapp/WEB-INF/web.xml (100%) rename boost-gradle/src/test/resources/{devProdApp => devReleaseApp}/dev/src/main/webapp/index.html (100%) rename boost-gradle/src/test/resources/{devProdApp/prod => devReleaseApp/release}/build.gradle (83%) diff --git a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy index 532b5786..d5bfc157 100644 --- a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy +++ b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy @@ -49,7 +49,13 @@ public class GradleProjectUtil { try { //Projects without the war/java plugin won't have this configuration - dependencies.putAll(project.configurations.getByName('compileClasspath'), logger) + //compileClasspath is not a regular Configuration object so we have to go through without using getAllDependenciesFromConfiguration() + project.configurations.getByName('compileClasspath').resolvedConfiguration.resolvedArtifacts.collect { it.moduleVersion.id }.each { ModuleVersionIdentifier id -> + logger.debug("Found dependency while processing project: " + id.group.toString() + ":" + + id.name.toString() + ":" + id.version.toString()) + + dependencies.put(id.group.toString() + ":" + id.name.toString(), id.version.toString()) + } } catch (UnknownConfigurationException ue) { logger.debug("The compileClasspath configuration was not found.") } diff --git a/boost-gradle/src/test/groovy/BoostPackageDevReleaseTest.groovy b/boost-gradle/src/test/groovy/BoostPackageDevReleaseTest.groovy new file mode 100644 index 00000000..d6510e2d --- /dev/null +++ b/boost-gradle/src/test/groovy/BoostPackageDevReleaseTest.groovy @@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright (c) 2019 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +import org.apache.commons.io.FileUtils + +import org.gradle.testkit.runner.BuildResult +import org.gradle.testkit.runner.GradleRunner +import static org.gradle.testkit.runner.TaskOutcome.SUCCESS + +import org.junit.After +import org.junit.BeforeClass +import org.junit.Test +import static org.junit.Assert.assertEquals +import static org.junit.Assert.assertTrue + + +public class BoostPackageDevReleaseTest extends AbstractBoostTest { + static File resourceDir = new File("build/resources/test/devReleaseApp") + static File testProjectDir = new File(integTestDir, "BoostPackageDevReleaseTest") + + static File devDir = new File(testProjectDir, 'dev') + static File releaseDir = new File(testProjectDir, 'release') + + private static String URL = "http://localhost:9080/" + + private static String SERVLET_RESPONSE = "myHomeCounty" + + @BeforeClass + public static void setup() { + createDir(testProjectDir) + FileUtils.copyDirectory(resourceDir, testProjectDir) + copyFile(new File("build/gradle.properties"), new File(devDir, 'gradle.properties')) + copyFile(new File("build/gradle.properties"), new File(releaseDir, 'gradle.properties')) + + //Build the dev project + BuildResult result = GradleRunner.create() + .withProjectDir(devDir) + .forwardOutput() + .withArguments("install", "-i", "-s") + .build() + + assertEquals(SUCCESS, result.task(":boostPackage").getOutcome()) + + //Build the release project + result = GradleRunner.create() + .withProjectDir(releaseDir) + .forwardOutput() + .withArguments("boostPackage", "boostStart", "-i", "-s") + .build() + + assertEquals(SUCCESS, result.task(":boostPackage").getOutcome()) + assertEquals(SUCCESS, result.task(":boostStart").getOutcome()) + } + + @After + public void teardown() { + + BuildResult result = GradleRunner.create() + .withProjectDir(releaseDir) + .forwardOutput() + .withArguments("boostStop", "-i", "-s") + .build() + + assertEquals(SUCCESS, result.task(":boostStop").getOutcome()) + + } + + @Test + public void checkForApplication() { + assertTrue(new File(releaseDir, 'build/wlp/usr/servers/BoostServer/apps/app-1.0.war').exists()) + } + + @Test + public void testServletResponse() throws Exception { + testServlet(URL, SERVLET_RESPONSE) + } +} \ No newline at end of file diff --git a/boost-gradle/src/test/resources/devProdApp/dev/build.gradle b/boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle similarity index 87% rename from boost-gradle/src/test/resources/devProdApp/dev/build.gradle rename to boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle index 1886da57..89b73c2b 100644 --- a/boost-gradle/src/test/resources/devProdApp/dev/build.gradle +++ b/boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle @@ -8,7 +8,7 @@ buildscript { maven { url 'https://repo.spring.io/plugins-snapshot' } } dependencies { - classpath("io.openliberty.boost:boost-gradle-plugin:0.1.1-SNAPSHOT") + classpath("io.openliberty.boost:boost-gradle-plugin:${boostVersion}") classpath 'io.spring.gradle:dependency-management-plugin:1.0.6.RELEASE' } } @@ -35,7 +35,7 @@ targetCompatibility = 1.8 dependencyManagement { imports { - mavenBom "io.openliberty.boosters:ee8-bom:0.1.3-SNAPSHOT" + mavenBom "io.openliberty.boosters:ee8-bom:${boosterVersion}" } } diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/java/application/servlet/JdbcServlet.java b/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/java/application/servlet/JdbcServlet.java similarity index 100% rename from boost-gradle/src/test/resources/devProdApp/dev/src/main/java/application/servlet/JdbcServlet.java rename to boost-gradle/src/test/resources/devReleaseApp/dev/src/main/java/application/servlet/JdbcServlet.java diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/.gitignore b/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/.gitignore similarity index 100% rename from boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/.gitignore rename to boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/.gitignore diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/WEB-INF/web.xml b/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/WEB-INF/web.xml rename to boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/WEB-INF/web.xml diff --git a/boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/index.html b/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/index.html similarity index 100% rename from boost-gradle/src/test/resources/devProdApp/dev/src/main/webapp/index.html rename to boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/index.html diff --git a/boost-gradle/src/test/resources/devProdApp/prod/build.gradle b/boost-gradle/src/test/resources/devReleaseApp/release/build.gradle similarity index 83% rename from boost-gradle/src/test/resources/devProdApp/prod/build.gradle rename to boost-gradle/src/test/resources/devReleaseApp/release/build.gradle index 6ab62540..375e2115 100644 --- a/boost-gradle/src/test/resources/devProdApp/prod/build.gradle +++ b/boost-gradle/src/test/resources/devReleaseApp/release/build.gradle @@ -8,7 +8,7 @@ buildscript { maven { url 'https://repo.spring.io/plugins-snapshot' } } dependencies { - classpath("io.openliberty.boost:boost-gradle-plugin:0.1.1-SNAPSHOT") + classpath("io.openliberty.boost:boost-gradle-plugin:${boostVersion}") } } From 010443bea431d834ac5d6a8b0d22f9d23704efa2 Mon Sep 17 00:00:00 2001 From: mattbsox Date: Mon, 1 Apr 2019 15:24:33 -0500 Subject: [PATCH 4/5] addressing review comments --- .../boost/gradle/tasks/BoostPackageTask.groovy | 17 +++++++++-------- .../boost/gradle/utils/GradleProjectUtil.groovy | 9 ++++++--- .../resources/devReleaseApp/dev/build.gradle | 10 +++++----- .../dev/src/main/webapp/.gitignore | 1 - 4 files changed, 20 insertions(+), 17 deletions(-) delete mode 100644 boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/.gitignore diff --git a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy index a3761d2c..65497806 100644 --- a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy +++ b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/tasks/BoostPackageTask.groovy @@ -215,22 +215,22 @@ public class BoostPackageTask extends AbstractBoostTask { } protected void generateServerConfigEE() throws GradleException { - String warName = null + List warNames = new ArrayList() if (project.plugins.hasPlugin('war')) { if (project.war.version == null) { - warName = project.war.baseName + warNames.add(project.war.baseName) } else { - warName = project.war.baseName + "-" + project.war.version + warNames.add(project.war.baseName + "-" + project.war.version) } } else { - warName = getWarNameFromBoostApps() + warNames = getWarNameFromBoostApps() } try { - BoosterConfigurator.generateLibertyServerConfig(libertyServerPath, boosterPackConfigurators, Arrays.asList(warName), BoostLogger.getInstance()); + BoosterConfigurator.generateLibertyServerConfig(libertyServerPath, boosterPackConfigurators, warNames, BoostLogger.getInstance()); } catch (Exception e) { throw new GradleException("Unable to generate server configuration for the Liberty server.", e); @@ -321,12 +321,13 @@ public class BoostPackageTask extends AbstractBoostTask { } //Runs through the dependencies in the boostApp configuration and pulls out the first war name. - protected String getWarNameFromBoostApps() { + protected List getWarNameFromBoostApps() { + List warNames = new ArrayList() for (def dep : project.configurations.boostApp) { if (FilenameUtils.getExtension(dep.name).equals('war')) { - return dep.name.substring(0, dep.name.length() - 4) + warNames.add(dep.name.substring(0, dep.name.length() - 4)) } } - return null + return warNames } } diff --git a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy index d5bfc157..2e5cf1f6 100644 --- a/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy +++ b/boost-gradle/src/main/groovy/io/openliberty/boost/gradle/utils/GradleProjectUtil.groovy @@ -61,18 +61,21 @@ public class GradleProjectUtil { } //Will always have the boostApp configuration since we create it in apply() - dependencies.putAll(getAllDependenciesFromConfiguration(project.configurations.boostApp, logger)) + //Just pulling in the transitive booster dependencies for the apps + dependencies.putAll(getAllBoosterDependenciesFromConfiguration(project.configurations.boostApp, logger)) return dependencies } - public static Map getAllDependenciesFromConfiguration(Configuration configuration, BoostLogger logger) { + private static Map getAllBoosterDependenciesFromConfiguration(Configuration configuration, BoostLogger logger) { Map dependencies = new HashMap() configuration.resolvedConfiguration.resolvedArtifacts.collect { it.moduleVersion.id }.each { ModuleVersionIdentifier id -> logger.debug("Found dependency while processing project: " + id.group.toString() + ":" + id.name.toString() + ":" + id.version.toString()) - dependencies.put(id.group.toString() + ":" + id.name.toString(), id.version.toString()) + if (id.group.toString().equals('io.openliberty.boosters')) { + dependencies.put(id.group.toString() + ":" + id.name.toString(), id.version.toString()) + } } return dependencies } diff --git a/boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle b/boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle index 89b73c2b..8113b084 100644 --- a/boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle +++ b/boost-gradle/src/test/resources/devReleaseApp/dev/build.gradle @@ -35,16 +35,16 @@ targetCompatibility = 1.8 dependencyManagement { imports { - mavenBom "io.openliberty.boosters:ee8-bom:${boosterVersion}" + mavenBom "io.openliberty.boosters:ee8-bom:${boosterVersion}" } } dependencies { - compile "io.openliberty.boosters:jaxrs" - compile "io.openliberty.boosters:jdbc" - compile("org.apache.httpcomponents:httpclient:4.5.6") + compile "io.openliberty.boosters:jaxrs" + compile "io.openliberty.boosters:jdbc" + compile("org.apache.httpcomponents:httpclient:4.5.6") compile("org.apache.httpcomponents:httpcore:4.4.10") compile "javax.servlet:javax.servlet-api:4.0.0" - libertyRuntime "io.openliberty:openliberty-runtime:18.0.0.4" + libertyRuntime "$runtimeGroup:$runtimeArtifactId:$runtimeVersion" } diff --git a/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/.gitignore b/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/.gitignore deleted file mode 100644 index 3385916d..00000000 --- a/boost-gradle/src/test/resources/devReleaseApp/dev/src/main/webapp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/META-INF/ From 253a79474f7706b23191b2ff57e11311941b568b Mon Sep 17 00:00:00 2001 From: mattbsox Date: Wed, 3 Apr 2019 13:31:27 -0500 Subject: [PATCH 5/5] Fixing missed test failures in the Gradle tests --- boost-gradle/gradle-test.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/boost-gradle/gradle-test.sh b/boost-gradle/gradle-test.sh index cf8300a4..449c1e05 100755 --- a/boost-gradle/gradle-test.sh +++ b/boost-gradle/gradle-test.sh @@ -1,6 +1,19 @@ +export testExitCode=0 + ./gradlew clean install check -Ptest.exclude="**/*15*" -Druntime=$RUNTIME -DruntimeVersion=$RUNTIME_VERSION --stacktrace --info --no-daemon +if [ $? ]; then + testExitCode=1 +fi + ls build/test-results/test/ >> out.txt ./gradlew wrapper --gradle-version 4.10 + ./gradlew clean install check -Ptest.include="**/*15*" -Druntime=$RUNTIME -DruntimeVersion=$RUNTIME_VERSION --stacktrace --info --no-daemon +if [ $? ]; then + testExitCode=1 +fi + ls build/test-results/test/ >> out.txt cat out.txt + +exit $testExitCode \ No newline at end of file