diff --git a/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/core/project/MavenModelReader.java b/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/core/project/MavenModelReader.java index cb3ff395456..6f1114825d0 100644 --- a/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/core/project/MavenModelReader.java +++ b/plugins/plugin-maven/che-plugin-maven-server/src/main/java/org/eclipse/che/plugin/maven/server/core/project/MavenModelReader.java @@ -25,6 +25,7 @@ import org.eclipse.che.maven.data.MavenResource; import org.eclipse.che.maven.server.MavenProjectInfo; import org.eclipse.che.maven.server.MavenServerResult; +import org.eclipse.che.plugin.maven.shared.MavenAttributes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +40,11 @@ import java.util.Set; import java.util.stream.Collectors; +import static org.eclipse.che.plugin.maven.shared.MavenAttributes.DEFAULT_RESOURCES_FOLDER; +import static org.eclipse.che.plugin.maven.shared.MavenAttributes.DEFAULT_SOURCE_FOLDER; +import static org.eclipse.che.plugin.maven.shared.MavenAttributes.DEFAULT_TEST_RESOURCES_FOLDER; +import static org.eclipse.che.plugin.maven.shared.MavenAttributes.DEFAULT_TEST_SOURCE_FOLDER; + /** * @author Evgen Vidolob */ @@ -145,22 +151,24 @@ private ModelReadingResult doRead(File pom) { Build build = model.getBuild(); if (build == null) { - result.getBuild().setSources(Collections.singletonList("src/main/java")); - result.getBuild().setTestSources(Collections.singletonList("src/test/java")); + result.getBuild().setSources(Collections.singletonList(DEFAULT_SOURCE_FOLDER)); + result.getBuild().setTestSources(Collections.singletonList(DEFAULT_TEST_SOURCE_FOLDER)); result.getBuild().setResources(Collections.singletonList( - new MavenResource("src/main/resources", false, null, Collections.emptyList(), Collections.emptyList()))); + new MavenResource(DEFAULT_RESOURCES_FOLDER, false, null, Collections.emptyList(), Collections.emptyList()))); result.getBuild().setTestResources(Collections.singletonList( - new MavenResource("src/test/resources", false, null, Collections.emptyList(), Collections.emptyList()))); + new MavenResource(DEFAULT_TEST_RESOURCES_FOLDER, false, null, Collections.emptyList(), Collections.emptyList()))); } else { String sourceDirectory = build.getSourceDirectory(); if (sourceDirectory == null) { - sourceDirectory = "src/main/java"; + sourceDirectory = DEFAULT_SOURCE_FOLDER; + } + String testSourceDirectory = build.getTestSourceDirectory(); + if (testSourceDirectory == null) { + testSourceDirectory = DEFAULT_TEST_SOURCE_FOLDER; } result.getBuild().setSources(Collections.singletonList(sourceDirectory)); - result.getBuild().setTestSources(Collections.singletonList(build.getTestSourceDirectory())); + result.getBuild().setTestSources(Collections.singletonList(testSourceDirectory)); result.getBuild().setResources(convertResources(build.getResources())); - //TODO add test sources -// result.getBuild().setTestSources(convertResources(build.getPlugins())); } //TODO add profiles return new ModelReadingResult(result, problems, enabledProfiles); diff --git a/plugins/plugin-maven/che-plugin-maven-server/src/test/java/org/eclipse/che/plugin/maven/server/WorkspaceTest.java b/plugins/plugin-maven/che-plugin-maven-server/src/test/java/org/eclipse/che/plugin/maven/server/WorkspaceTest.java index 9d0c66b09ce..6adc75ee991 100644 --- a/plugins/plugin-maven/che-plugin-maven-server/src/test/java/org/eclipse/che/plugin/maven/server/WorkspaceTest.java +++ b/plugins/plugin-maven/che-plugin-maven-server/src/test/java/org/eclipse/che/plugin/maven/server/WorkspaceTest.java @@ -300,6 +300,79 @@ public boolean matches(Object[] value) { }); } + @Test + public void testShouldContainsDefaultTestSourceDirectory() throws Exception { + String pom = "test" + + "testArtifact" + + "42" + + "" + + " " + + " junit" + + " junit" + + " 4.12" + + " " + + "" + + "" + + ""; + + createTestProject("test", pom); + + IProject test = ResourcesPlugin.getWorkspace().getRoot().getProject("test"); + mavenWorkspace.update(Collections.singletonList(test)); + mavenWorkspace.waitForUpdate(); + + JavaProject javaProject = (JavaProject)JavaCore.create(test); + IClasspathEntry[] classpath = javaProject.getResolvedClasspath(); + assertThat(classpath).onProperty("path").is(new Condition() { + @Override + public boolean matches(Object[] value) { + return Stream.of(value).filter(o -> { + if (o instanceof IPath) { + return ((IPath)o).toOSString().endsWith("src/test/java"); + } + return false; + }).findFirst().isPresent(); + } + }); + } + + @Test + public void testShouldContainsCustomTestSourceDirectory() throws Exception { + String pom = "test" + + "testArtifact" + + "42" + + "" + + " " + + " junit" + + " junit" + + " 4.12" + + " " + + "" + + "" + + "/mytest" + + ""; + + createTestProject("test", pom); + + IProject test = ResourcesPlugin.getWorkspace().getRoot().getProject("test"); + mavenWorkspace.update(Collections.singletonList(test)); + mavenWorkspace.waitForUpdate(); + + JavaProject javaProject = (JavaProject)JavaCore.create(test); + IClasspathEntry[] classpath = javaProject.getResolvedClasspath(); + assertThat(classpath).onProperty("path").is(new Condition() { + @Override + public boolean matches(Object[] value) { + return Stream.of(value).filter(o -> { + if (o instanceof IPath) { + return ((IPath)o).toOSString().endsWith("test"); + } + return false; + }).findFirst().isPresent(); + } + }); + } + @Test public void testUpdateProjectThatHasDependencyInWorkspace() throws Exception { String pom = "test" +