From 70d8275345e79e0ec2d951d3877b2f566bd30c3d Mon Sep 17 00:00:00 2001 From: Fred Bricon Date: Wed, 25 Jun 2014 11:56:18 +0200 Subject: [PATCH] Fix #21 : add Maven property to disable m2e-wtp integration Signed-off-by: Fred Bricon --- .../wro4j/internal/Wro4jBuildParticipant.java | 15 ++++++- .../WebContent/WEB-INF/web.xml | 0 .../WebContent/WEB-INF/wro.properties | 0 .../WebContent/WEB-INF/wro.xml | 0 .../{p4-173 => p4-176}/WebContent/another.js | 0 .../{p4-173 => p4-176}/WebContent/some.js | 0 .../{p4-173 => p4-176}/WebContent/style1.css | 0 .../{p4-173 => p4-176}/WebContent/style2.css | 0 .../projects/{p4-173 => p4-176}/pom.xml | 4 +- .../projects/p7/pom.xml | 41 +++++++++++++++++++ .../p7/src/main/webapp/WEB-INF/web.xml | 7 ++++ .../p7/src/main/webapp/WEB-INF/wro.properties | 2 + .../p7/src/main/webapp/WEB-INF/wro.xml | 7 ++++ .../projects/p7/src/main/webapp/another.js | 3 ++ .../projects/p7/src/main/webapp/some.js | 3 ++ .../projects/p7/src/main/webapp/style1.css | 3 ++ .../projects/p7/src/main/webapp/style2.css | 3 ++ .../tests/Wro4jProjectconfiguratorTest.java | 29 ++++++++++++- org.jboss.tools.m2e.wro4j.ui/plugin.xml | 13 ++++-- 19 files changed, 121 insertions(+), 9 deletions(-) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/WEB-INF/web.xml (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/WEB-INF/wro.properties (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/WEB-INF/wro.xml (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/another.js (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/some.js (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/style1.css (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/WebContent/style2.css (100%) rename org.jboss.tools.m2e.wro4j.tests/projects/{p4-173 => p4-176}/pom.xml (96%) create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/pom.xml create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/web.xml create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.properties create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.xml create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/another.js create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/some.js create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style1.css create mode 100644 org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style2.css diff --git a/org.jboss.tools.m2e.wro4j.core/src/org/jboss/tools/m2e/wro4j/internal/Wro4jBuildParticipant.java b/org.jboss.tools.m2e.wro4j.core/src/org/jboss/tools/m2e/wro4j/internal/Wro4jBuildParticipant.java index b8b7976..b292512 100644 --- a/org.jboss.tools.m2e.wro4j.core/src/org/jboss/tools/m2e/wro4j/internal/Wro4jBuildParticipant.java +++ b/org.jboss.tools.m2e.wro4j.core/src/org/jboss/tools/m2e/wro4j/internal/Wro4jBuildParticipant.java @@ -15,11 +15,13 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Properties; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.maven.plugin.MojoExecution; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.Scanner; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomUtils; @@ -30,6 +32,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.m2e.core.MavenPlugin; import org.eclipse.m2e.core.embedder.IMaven; @@ -47,6 +50,8 @@ */ public class Wro4jBuildParticipant extends MojoExecutionBuildParticipant { + private static final String M2E_WRO4J_WTP_INTEGRATION_KEY = "m2e.wro4j.wtp.integration"; + private static final String CONTEXT_FOLDER = "contextFolder"; private static final String TOKEN_SEPARATOR = ",\\s*"; @@ -225,7 +230,7 @@ private void refreshResource(MojoExecution mojoExecution, private Xpp3Dom customize(Xpp3Dom originalConfiguration, Collection contextFolders, File originalDestinationFolder, File originalJsDestinationFolder, - File originalCssDestinationFolder, File originalGroupNameMappingFile) throws IOException { + File originalCssDestinationFolder, File originalGroupNameMappingFile) throws IOException, CoreException { IMavenProjectFacade facade = getMavenProjectFacade(); if (!"war".equals(facade.getPackaging())) { // Not a war project, we don't know how to customize that @@ -244,7 +249,7 @@ private Xpp3Dom customize(Xpp3Dom originalConfiguration, Collection contex IFolder m2eWtpFolder = project.getFolder(relativeTargetPath.append("m2e-wtp")); - if (!m2eWtpFolder.exists()) { + if (!m2eWtpFolder.exists() || isWtpIntegrationDisabled(facade.getMavenProject(new NullProgressMonitor()))) { // Not a m2e-wtp project, we don't know how to customize either // TODO Try to support Sonatype's webby instead? return customConfiguration; @@ -271,6 +276,12 @@ private Xpp3Dom customize(Xpp3Dom originalConfiguration, Collection contex return customConfiguration; } + private boolean isWtpIntegrationDisabled(MavenProject mavenProject) { + Properties properties = mavenProject.getProperties(); + String isWtpIntegrationProperty = properties.getProperty(M2E_WRO4J_WTP_INTEGRATION_KEY, Boolean.TRUE.toString()); + return !Boolean.parseBoolean(isWtpIntegrationProperty); + } + private void customizeLocation(File originalDestinationFolder, IFolder webResourcesFolder, IPath defaultOutputPathPrefix, Xpp3Dom configuration, String parameterName) throws IOException { diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/WEB-INF/web.xml b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/WEB-INF/web.xml similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/WEB-INF/web.xml rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/WEB-INF/web.xml diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/WEB-INF/wro.properties b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/WEB-INF/wro.properties similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/WEB-INF/wro.properties rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/WEB-INF/wro.properties diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/WEB-INF/wro.xml b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/WEB-INF/wro.xml similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/WEB-INF/wro.xml rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/WEB-INF/wro.xml diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/another.js b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/another.js similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/another.js rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/another.js diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/some.js b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/some.js similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/some.js rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/some.js diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/style1.css b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/style1.css similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/style1.css rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/style1.css diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/style2.css b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/style2.css similarity index 100% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/WebContent/style2.css rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/WebContent/style2.css diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/pom.xml b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/pom.xml similarity index 96% rename from org.jboss.tools.m2e.wro4j.tests/projects/p4-173/pom.xml rename to org.jboss.tools.m2e.wro4j.tests/projects/p4-176/pom.xml index 54efb5f..2792ab8 100644 --- a/org.jboss.tools.m2e.wro4j.tests/projects/p4-173/pom.xml +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p4-176/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 foo.bar - p4-171 + p4-176 0.0.1-SNAPSHOT war @@ -13,7 +13,7 @@ ro.isdc.wro4j wro4j-maven-plugin - 1.7.3 + 1.7.6 compile diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/pom.xml b/org.jboss.tools.m2e.wro4j.tests/projects/p7/pom.xml new file mode 100644 index 0000000..d5c5c13 --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + foo.bar + disable-wtp + 0.0.1-SNAPSHOT + war + + false + + + + + ro.isdc.wro4j + wro4j-maven-plugin + 1.7.6 + + + compile + + run + + + + + ${project.build.directory}/${project.build.finalName}/resources + testCase + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.6 + 1.6 + + + + + \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/web.xml b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..85c8245 --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + p1 + + index.html + + \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.properties b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.properties new file mode 100644 index 0000000..efbe113 --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.properties @@ -0,0 +1,2 @@ +preProcessors=cssImport,semicolonAppender,lessCss +postProcessors=cssMinJawr,jsMin \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.xml b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.xml new file mode 100644 index 0000000..01f6473 --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/WEB-INF/wro.xml @@ -0,0 +1,7 @@ + + + /*.css + /*.js + + \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/another.js b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/another.js new file mode 100644 index 0000000..158d9f5 --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/another.js @@ -0,0 +1,3 @@ +function hi(name) { + alert("Hi "+ name); +} \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/some.js b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/some.js new file mode 100644 index 0000000..ed7753a --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/some.js @@ -0,0 +1,3 @@ +function hello(name) { + alert("Hello "+ name); +} \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style1.css b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style1.css new file mode 100644 index 0000000..7993b6c --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style1.css @@ -0,0 +1,3 @@ +body { + background-color:#656565; +} \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style2.css b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style2.css new file mode 100644 index 0000000..be8d7ae --- /dev/null +++ b/org.jboss.tools.m2e.wro4j.tests/projects/p7/src/main/webapp/style2.css @@ -0,0 +1,3 @@ +.yeaahbaby { + display:hidden; +} \ No newline at end of file diff --git a/org.jboss.tools.m2e.wro4j.tests/src/org/jboss/tools/m2e/wro4j/tests/Wro4jProjectconfiguratorTest.java b/org.jboss.tools.m2e.wro4j.tests/src/org/jboss/tools/m2e/wro4j/tests/Wro4jProjectconfiguratorTest.java index cdaad9e..4c76ae7 100644 --- a/org.jboss.tools.m2e.wro4j.tests/src/org/jboss/tools/m2e/wro4j/tests/Wro4jProjectconfiguratorTest.java +++ b/org.jboss.tools.m2e.wro4j.tests/src/org/jboss/tools/m2e/wro4j/tests/Wro4jProjectconfiguratorTest.java @@ -84,8 +84,8 @@ public void testContextFolder171() throws Exception { basicTest(p); } - public void testContextFolder173() throws Exception { - IProject p = importProject("projects/p4-173/pom.xml"); + public void testContextFolder176() throws Exception { + IProject p = importProject("projects/p4-176/pom.xml"); waitForJobsToComplete(); basicTest(p); } @@ -102,6 +102,31 @@ public void testMultipleRelativeContextFolders() throws Exception { basicTest(projects[1]); } + public void testDisableM2eWtpIntegration() throws Exception { + IProject p = importProject("projects/p7/pom.xml"); + waitForJobsToComplete(); + + p.build(IncrementalProjectBuilder.AUTO_BUILD, monitor); + waitForJobsToComplete(); + + IFile js = p + .getFile("target/m2e-wtp/web-resources/resources/testCase.js"); + assertFalse(js + " should be missing", js.exists()); + + js = p + .getFile("target/disable-wtp-0.0.1-SNAPSHOT/resources/testCase.js"); + assertTrue(js + " is missing", js.exists()); + + + IFile css = p + .getFile("target/m2e-wtp/web-resources/resources/testCase.css"); + assertFalse("target/m2e-wtp/web-resources/resources/testCase.css should be missing", css.exists()); + + css = p + .getFile("target/disable-wtp-0.0.1-SNAPSHOT/resources/testCase.css"); + assertTrue(css + " is missing", css.exists()); + } + private void assertMinifiedFiles(IProject p) throws Exception { IFile js = p.getFile("target/m2e-wtp/web-resources/resources/testCase.js"); assertTrue("testCase.js is missing after a clean build", js.exists()); diff --git a/org.jboss.tools.m2e.wro4j.ui/plugin.xml b/org.jboss.tools.m2e.wro4j.ui/plugin.xml index 34f6a30..6e02985 100644 --- a/org.jboss.tools.m2e.wro4j.ui/plugin.xml +++ b/org.jboss.tools.m2e.wro4j.ui/plugin.xml @@ -9,7 +9,7 @@ <plugin> <groupId>ro.isdc.wro4j</groupId> <artifactId>wro4j-maven-plugin</artifactId> - <version>1.7.3</version> + <version>1.7.6</version> <executions> <execution> <phase>compile</phase> @@ -19,10 +19,17 @@ </execution> </executions> <configuration> - <jsDestinationFolder>$${project.build.directory}/$${project.build.finalName}/${cursor}resources/js</jsDestinationFolder> - <cssDestinationFolder>$${project.build.directory}/$${project.build.finalName}/resources/styles</cssDestinationFolder> + <jsDestinationFolder>$${project.build.directory}/$${project.build.finalName}/${cursor}${resources}/js</jsDestinationFolder> + <cssDestinationFolder>$${project.build.directory}/$${project.build.finalName}/${resources}/styles</cssDestinationFolder> </configuration> </plugin> + +