SimpleGeneratorStrategy implements GeneratorStrategy { @Override public void generateProject(FolderEntry baseFolder, Map<String, AttributeValue> attributes, Map<String, String> options) throws ForbiddenException, ConflictException, ServerException { AttributeValue artifactId = attributes.get(ARTIFACT_ID); AttributeValue groupId = attributes.get(GROUP_ID); AttributeValue version = attributes.get(VERSION); if (artifactId == null) throw new ConflictException("Missed required attribute artifactId"); if (groupId == null) throw new ConflictException("Missed required attribute groupId"); if (version == null) throw new ConflictException("Missed required attribute version"); Model model = Model.createModel(); model.setModelVersion("4.0.0"); baseFolder.createFile("pom.xml", new byte[0], "text/xml"); AttributeValue parentArtifactId = attributes.get(PARENT_ARTIFACT_ID); if (parentArtifactId != null) { model.setArtifactId(parentArtifactId.getString()); } AttributeValue parentGroupId = attributes.get(PARENT_GROUP_ID); if (parentGroupId != null) { model.setGroupId(parentGroupId.getString()); } AttributeValue parentVersion = attributes.get(PARENT_VERSION); if (parentVersion != null) { model.setVersion(parentVersion.getString()); } model.setArtifactId(artifactId.getString()); model.setGroupId(groupId.getString()); model.setVersion(version.getString()); AttributeValue packaging = attributes.get(PACKAGING); if (packaging != null) { model.setPackaging(packaging.getString()); } AttributeValue sourceFolders = attributes.get(SOURCE_FOLDER); if (sourceFolders != null) { final String sourceFolder = sourceFolders.getString(); baseFolder.createFolder(sourceFolder); if (!"src/main/java".equals(sourceFolder)) { model.setBuild(new Build().setSourceDirectory(sourceFolder)); } } AttributeValue testSourceFolders = attributes.get(TEST_SOURCE_FOLDER); if (testSourceFolders != null) { final String testSourceFolder = testSourceFolders.getString(); baseFolder.createFolder(testSourceFolder); if (!"src/test/java".equals(testSourceFolder)) { Build build = model.getBuild(); if (build != null) { build.setTestSourceDirectory(testSourceFolder); } else { model.setBuild(new Build().setTestSourceDirectory(testSourceFolder)); } } } model.writeTo(baseFolder.getChild("pom.xml").getVirtualFile()); }  @Override String getId(); @Override void generateProject(FolderEntry baseFolder, Map<String, AttributeValue> attributes, Map<String, String> options);  }
@Test public void testGeneratingProject() throws Exception { prepareProject(); final Path pomXml = Paths.get(Thread.currentThread().getContextClassLoader().getResource("test-pom.xml").toURI()); Map<String, AttributeValue> attributeValues = new HashMap<>(); attributeValues.put(MavenAttributes.ARTIFACT_ID, new AttributeValue("my_artifact")); attributeValues.put(MavenAttributes.GROUP_ID, new AttributeValue("my_group")); attributeValues.put(MavenAttributes.PACKAGING, new AttributeValue("jar")); attributeValues.put(MavenAttributes.VERSION, new AttributeValue("1.0-SNAPSHOT")); attributeValues.put(MavenAttributes.SOURCE_FOLDER, new AttributeValue("src/main/java")); attributeValues.put(MavenAttributes.TEST_SOURCE_FOLDER, new AttributeValue("src/test/java")); FolderEntry folder = pm.getProject(workspace, "my_project").getBaseFolder(); simple.generateProject(folder, attributeValues, null); VirtualFileEntry pomFile = pm.getProject(workspace, "my_project").getBaseFolder().getChild("pom.xml"); Assert.assertTrue(pomFile.isFile()); Assert.assertEquals(new String(((FileEntry)pomFile).contentAsBytes()), new String(Files.readAllBytes(pomXml))); VirtualFileEntry srcFolder = pm.getProject(workspace, "my_project").getBaseFolder().getChild("src/main/java"); Assert.assertTrue(srcFolder.isFolder()); VirtualFileEntry testFolder = pm.getProject(workspace, "my_project").getBaseFolder().getChild("src/test/java"); Assert.assertTrue(testFolder.isFolder()); }