Search in sources :

Example 21 with Pom

use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.

the class PomManagementServiceImpl method parseUnparsedPoms.

private Set<Pom> parseUnparsedPoms() {
    final Map<String, String> pomModuleMap = new HashMap<String, String>();
    final Set<Pom> newPoms = new HashSet<Pom>();
    for (final Iterator<String> iter = toBeParsed.iterator(); iter.hasNext(); ) {
        final String pathToChangedPom = iter.next();
        if (new File(pathToChangedPom).exists()) {
            String pomContents = "";
            try {
                pomContents = org.apache.commons.io.FileUtils.readFileToString(new File(pathToChangedPom));
            } catch (IOException ignored) {
            }
            if (StringUtils.isNotBlank(pomContents)) {
                final Element rootElement = XmlUtils.stringToElement(pomContents);
                resolvePoms(rootElement, pathToChangedPom, pomModuleMap);
                final String moduleName = getModuleName(FileUtils.getFirstDirectory(pathToChangedPom));
                final Pom pom = getPomFactory().getInstance(rootElement, pathToChangedPom, moduleName);
                Validate.notNull(pom, "POM is null for module '%s' and path '%s'", moduleName, pathToChangedPom);
                pomMap.put(pathToChangedPom, pom);
                newPoms.add(pom);
                iter.remove();
            }
        }
    }
    return newPoms;
}
Also used : HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Element(org.w3c.dom.Element) IOException(java.io.IOException) File(java.io.File) Pom(org.springframework.roo.project.maven.Pom) HashSet(java.util.HashSet)

Example 22 with Pom

use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.

the class MavenOperationsImpl method createModule.

private void createModule(final String moduleName, final PackagingProvider selectedPackagingProvider, final String artifactId, final String folder) {
    Validate.isTrue(isCreateModuleAvailable(), "Cannot create modules at this time");
    if (getProjectOperations().getPomFromModuleName(moduleName) != null) {
        throw new IllegalArgumentException(String.format("Module %s already exists", moduleName));
    }
    // Get parent pom
    Pom parentPom = getProjectOperations().getPomFromModuleName("");
    setModule(parentPom);
    // Validate parent has POM packaging
    if (!parentPom.getPackaging().equals("pom")) {
        throw new IllegalArgumentException("ERROR: Parent module packaging is not POM");
    }
    final PackagingProvider packagingProvider = getPackagingProvider(selectedPackagingProvider);
    final String pathToNewPom = packagingProvider.createArtifacts(getProjectOperations().getTopLevelPackage(parentPom.getModuleName()), artifactId, "", new GAV(parentPom.getGroupId(), parentPom.getArtifactId(), parentPom.getVersion()), moduleName, this);
    updateParentModulePom(moduleName);
    setModule(pomManagementService.getPomFromPath(pathToNewPom));
    if (folder == null) {
        createFolder(getProjectOperations().getTopLevelPackage(moduleName), null);
    } else {
        createFolder(getProjectOperations().getTopLevelPackage(parentPom.getModuleName()), folder);
    }
}
Also used : PackagingProvider(org.springframework.roo.project.packaging.PackagingProvider) Pom(org.springframework.roo.project.maven.Pom)

Example 23 with Pom

use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.

the class ProjectMetadataTest method testConstructorForLevelTwoModule.

@Test
public void testConstructorForLevelTwoModule() {
    // Set up
    final Pom mockPom = mock(Pom.class);
    when(mockPom.getModuleName()).thenReturn(LEVEL_TWO_MODULE);
    // Invoke
    final ProjectMetadata projectMetadata = new ProjectMetadata(mockPom);
    // Check
    assertEquals(mockPom, projectMetadata.getPom());
    assertEquals(LEVEL_TWO_MODULE, projectMetadata.getModuleName());
    assertEquals(LEVEL_TWO_MID, projectMetadata.getId());
}
Also used : Pom(org.springframework.roo.project.maven.Pom) Test(org.junit.Test)

Example 24 with Pom

use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.

the class MavenOperationsImplTest method testRemoveDependencyTwiceWhenItExistsOnce.

@Test
public void testRemoveDependencyTwiceWhenItExistsOnce() {
    // Set up
    when(mockFileManager.getInputStream(POM_PATH)).thenReturn(new ByteArrayInputStream(POM_BEFORE_DEPENDENCY_REMOVED.getBytes()));
    // -- Dependency to remove
    final Dependency mockDependency = mock(Dependency.class);
    when(mockDependency.getArtifactId()).thenReturn(ARTIFACT_ID);
    when(mockDependency.getClassifier()).thenReturn(CLASSIFIER);
    when(mockDependency.getGroupId()).thenReturn(GROUP_ID);
    when(mockDependency.getSimpleDescription()).thenReturn(SIMPLE_DESCRIPTION);
    when(mockDependency.getType()).thenReturn(DependencyType.JAR);
    when(mockDependency.getVersion()).thenReturn(VERSION);
    when(mockMetadataService.get(ProjectMetadata.getProjectIdentifier(""))).thenReturn(mockProjectMetadata);
    final Pom pom = mock(Pom.class);
    when(pom.getPath()).thenReturn(POM_PATH);
    when(mockProjectMetadata.getPom()).thenReturn(pom);
    final Collection<Dependency> dependencies = Arrays.asList(mockDependency, mockDependency);
    when(pom.isAnyDependenciesRegistered(dependencies)).thenReturn(true);
    when(pom.isDependencyRegistered(mockDependency, false)).thenReturn(true);
    // Invoke
    projectOperations.removeDependencies("", dependencies);
    // Check
    final String expectedPom = POM_AFTER_DEPENDENCY_REMOVED.replace("\n", LINE_SEPARATOR);
    verify(mockFileManager).createOrUpdateTextFileIfRequired(eq(POM_PATH), eq(expectedPom), (String) any(), eq(false));
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) Pom(org.springframework.roo.project.maven.Pom) Test(org.junit.Test)

Example 25 with Pom

use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.

the class MavenOperationsImplTest method testGetFocusedModuleWhenChildModuleHasFocus.

@Test
public void testGetFocusedModuleWhenChildModuleHasFocus() {
    // Set up
    when(mockPomManagementService.getFocusedModuleName()).thenReturn("child");
    final Pom mockChildPom = mock(Pom.class);
    final ProjectMetadata mockChildMetadata = mock(ProjectMetadata.class);
    when(mockChildMetadata.getPom()).thenReturn(mockChildPom);
    when(mockMetadataService.get(ProjectMetadata.getProjectIdentifier("child"))).thenReturn(mockChildMetadata);
    // Invoke and check
    assertEquals(mockChildPom, projectOperations.getFocusedModule());
}
Also used : Pom(org.springframework.roo.project.maven.Pom) Test(org.junit.Test)

Aggregations

Pom (org.springframework.roo.project.maven.Pom)86 Element (org.w3c.dom.Element)19 JavaType (org.springframework.roo.model.JavaType)16 Document (org.w3c.dom.Document)16 Test (org.junit.Test)14 ArrayList (java.util.ArrayList)10 ClassOrInterfaceTypeDetails (org.springframework.roo.classpath.details.ClassOrInterfaceTypeDetails)9 ClassOrInterfaceTypeDetailsBuilder (org.springframework.roo.classpath.details.ClassOrInterfaceTypeDetailsBuilder)9 AnnotationMetadataBuilder (org.springframework.roo.classpath.details.annotations.AnnotationMetadataBuilder)9 Dependency (org.springframework.roo.project.Dependency)9 RooJavaType (org.springframework.roo.model.RooJavaType)7 InvalidSyntaxException (org.osgi.framework.InvalidSyntaxException)5 ServiceReference (org.osgi.framework.ServiceReference)5 ControllerMVCResponseService (org.springframework.roo.addon.web.mvc.controller.addon.responses.ControllerMVCResponseService)5 JavaPackage (org.springframework.roo.model.JavaPackage)5 List (java.util.List)4 Plugin (org.springframework.roo.project.Plugin)4 Completion (org.springframework.roo.shell.Completion)4 HashMap (java.util.HashMap)3 DataOnDemandCreatorProvider (org.springframework.roo.addon.test.providers.DataOnDemandCreatorProvider)3