private void writeRelocation(Relocation relocation, String tagName, XmlSerializer serializer) throws java.io.IOException { serializer.startTag(NAMESPACE, tagName); flush(serializer); StringBuffer b = b(serializer); int start = b.length(); if (relocation.getGroupId() != null) { writeValue(serializer, "groupId", relocation.getGroupId(), relocation); } if (relocation.getArtifactId() != null) { writeValue(serializer, "artifactId", relocation.getArtifactId(), relocation); } if (relocation.getVersion() != null) { writeValue(serializer, "version", relocation.getVersion(), relocation); } if (relocation.getMessage() != null) { writeValue(serializer, "message", relocation.getMessage(), relocation); } serializer.endTag(NAMESPACE, tagName).flush(); logLocation(relocation, "", start, b.length()); }
private Relocation getRelocation(org.netbeans.modules.maven.model.pom.Dependency d) { ProjectBuildingRequest dpbr = EmbedderFactory.getProjectEmbedder().createMavenExecutionRequest().getProjectBuildingRequest(); dpbr.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); dpbr.setProcessPlugins(false); dpbr.setResolveDependencies(false); ArrayList<ArtifactRepository> remoteRepos = new ArrayList<>(); dpbr.setRemoteRepositories(remoteRepos); String groupId = d.getGroupId(); String artifactId = d.getArtifactId(); String version = d.getVersion(); if(groupId != null && !"".equals(groupId.trim()) && artifactId != null && !"".equals(artifactId.trim()) && version != null && !"".equals(version.trim())) { MavenEmbedder embedder = EmbedderFactory.getProjectEmbedder(); Artifact a = embedder.createProjectArtifact(groupId, artifactId, version); try { ProjectBuildingResult r = embedder.buildProject(a, dpbr); DistributionManagement dm = r.getProject().getDistributionManagement(); return dm != null ? dm.getRelocation() : null; } catch (ProjectBuildingException ex) { // just log and hope for the best ... Logger.getLogger(DependencyNode.class.getName()).log(Level.INFO, version, ex); } } return null; }
private void writeDistributionManagement(DistributionManagement distributionManagement, String tagName, XmlSerializer serializer) throws java.io.IOException { serializer.startTag(NAMESPACE, tagName); flush(serializer); StringBuffer b = b(serializer); int start = b.length(); if (distributionManagement.getRepository() != null) { writeDeploymentRepository((DeploymentRepository) distributionManagement.getRepository(), "repository", serializer); } if (distributionManagement.getSnapshotRepository() != null) { writeDeploymentRepository((DeploymentRepository) distributionManagement.getSnapshotRepository(), "snapshotRepository", serializer); } if (distributionManagement.getSite() != null) { writeSite((Site) distributionManagement.getSite(), "site", serializer); } if (distributionManagement.getDownloadUrl() != null) { writeValue(serializer, "downloadUrl", distributionManagement.getDownloadUrl(), distributionManagement); } if (distributionManagement.getRelocation() != null) { writeRelocation((Relocation) distributionManagement.getRelocation(), "relocation", serializer); } if (distributionManagement.getStatus() != null) { writeValue(serializer, "status", distributionManagement.getStatus(), distributionManagement); } serializer.endTag(NAMESPACE, tagName).flush(); logLocation(distributionManagement, "", start, b.length()); }
/** * Method updateRelocation * * @param value * @param element * @param counter * @param xmlTag */ protected void updateRelocation( Relocation value, String xmlTag, Counter counter, Element element ) { boolean shouldExist = value != null; Element root = updateElement( counter, element, xmlTag, shouldExist ); if ( shouldExist ) { Counter innerCount = new Counter( counter.getDepth() + 1 ); findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); findAndReplaceSimpleElement( innerCount, root, "message", value.getMessage(), null ); } }
private void writeRelocationPom( String groupId, String artifactId, String version, String newGroupId, String newArtifactId, String newVersion, String message, ArtifactRepository repository, FileTransaction transaction ) throws IOException { Model pom = new Model(); pom.setGroupId( groupId ); pom.setArtifactId( artifactId ); pom.setVersion( version ); DistributionManagement dMngt = new DistributionManagement(); Relocation relocation = new Relocation(); relocation.setGroupId( newGroupId ); relocation.setArtifactId( newArtifactId ); relocation.setVersion( newVersion ); if ( message != null && message.length() > 0 ) { relocation.setMessage( message ); } dMngt.setRelocation( relocation ); pom.setDistributionManagement( dMngt ); Artifact artifact = artifactFactory.createBuildArtifact( groupId, artifactId, version, "pom" ); //$NON-NLS-1$ File pomFile = new File( repository.getBasedir(), repository.pathOf( artifact ) ); StringWriter strWriter = new StringWriter(); MavenXpp3Writer pomWriter = new MavenXpp3Writer(); pomWriter.write( strWriter, pom ); transaction.createFile( strWriter.toString(), pomFile, digesters ); }
private void visitDistributionManagement( ModelVisitor visitor, DistributionManagement distributionManagement ) { DeploymentRepository repository = distributionManagement.getRepository(); if ( repository != null ) { visitor.visitDistributionManagementRepository( repository ); visitDistributionManagementRepository( visitor, repository ); repository = visitor.replaceDistributionManagementRepository( repository ); distributionManagement.setRepository( repository ); } DeploymentRepository snapshotRepository = distributionManagement.getSnapshotRepository(); if ( snapshotRepository != null ) { visitor.visitDistributionManagementSnapshotRepository( snapshotRepository ); visitDistributionManagementSnapshotRepository( visitor, snapshotRepository ); snapshotRepository = visitor.replaceDistributionManagementSnapshotRepository( snapshotRepository ); distributionManagement.setSnapshotRepository( snapshotRepository ); } Site site = distributionManagement.getSite(); if ( site != null ) { visitor.visitDistributionManagementSite( site ); site = visitor.replaceDistributionManagementSite( site ); distributionManagement.setSite( site ); } Relocation relocation = distributionManagement.getRelocation(); if ( relocation != null ) { visitor.visitDistributionManagementRelocation( relocation ); relocation = visitor.replaceDistributionManagementRelocation( relocation ); distributionManagement.setRelocation( relocation ); } }
private void visitProfileDistributionManagement( ModelVisitor visitor, DistributionManagement distributionManagement ) { DeploymentRepository repository = distributionManagement.getRepository(); if ( repository != null ) { visitor.visitProfileDistributionManagementRepository( repository ); visitProfileDistributionManagementRepository( visitor, repository ); repository = visitor.replaceProfileDistributionManagementRepository( repository ); distributionManagement.setRepository( repository ); } DeploymentRepository snapshotRepository = distributionManagement.getSnapshotRepository(); if ( snapshotRepository != null ) { visitor.visitProfileDistributionManagementSnapshotRepository( snapshotRepository ); visitProfileDistributionManagementSnapshotRepository( visitor, snapshotRepository ); snapshotRepository = visitor.replaceProfileDistributionManagementSnapshotRepository( snapshotRepository ); distributionManagement.setSnapshotRepository( snapshotRepository ); } Site site = distributionManagement.getSite(); if ( site != null ) { visitor.visitProfileDistributionManagementSite( site ); site = visitor.replaceProfileDistributionManagementSite( site ); distributionManagement.setSite( site ); } Relocation relocation = distributionManagement.getRelocation(); if ( relocation != null ) { visitor.visitProfileDistributionManagementRelocation( relocation ); relocation = visitor.replaceProfileDistributionManagementRelocation( relocation ); distributionManagement.setRelocation( relocation ); } }
private void writeRelocationPom( String groupId, String artifactId, String version, String newGroupId, String newArtifactId, String newVersion, String message, ArtifactRepository repository, FileTransaction transaction ) throws IOException { Model pom = new Model(); pom.setGroupId( groupId ); pom.setArtifactId( artifactId ); pom.setVersion( version ); DistributionManagement dMngt = new DistributionManagement(); Relocation relocation = new Relocation(); relocation.setGroupId( newGroupId ); relocation.setArtifactId( newArtifactId ); relocation.setVersion( newVersion ); if ( message != null && message.length() > 0 ) { relocation.setMessage( message ); } dMngt.setRelocation( relocation ); pom.setDistributionManagement( dMngt ); Artifact artifact = artifactFactory.createBuildArtifact( groupId, artifactId, version, "pom" ); //$NON-NLS-1$ Path pomFile = Paths.get( repository.getBasedir(), repository.pathOf( artifact ) ); StringWriter strWriter = new StringWriter(); MavenXpp3Writer pomWriter = new MavenXpp3Writer(); pomWriter.write( strWriter, pom ); transaction.createFile( strWriter.toString(), pomFile, digesters ); }
private Relocation getRelocation( Model model ) { Relocation relocation = null; DistributionManagement distMngt = model.getDistributionManagement(); if ( distMngt != null ) { relocation = distMngt.getRelocation(); } return relocation; }
protected void mergeRelocation( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { mergeRelocation_GroupId( target, source, sourceDominant, context ); mergeRelocation_ArtifactId( target, source, sourceDominant, context ); mergeRelocation_Version( target, source, sourceDominant, context ); mergeRelocation_Message( target, source, sourceDominant, context ); }
protected void mergeRelocation_GroupId( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } }
protected void mergeRelocation_ArtifactId( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } }
protected void mergeRelocation_Version( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } }
protected void mergeRelocation_Message( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getMessage(); if ( src != null ) { if ( sourceDominant || target.getMessage() == null ) { target.setMessage( src ); target.setLocation( "message", source.getLocation( "message" ) ); } } }
private void runModifyExclusions(final Artifact art, final Collection<org.apache.maven.shared.dependency.tree.DependencyNode> nds) { ModelOperation<POMModel> operation = new ModelOperation<POMModel>() { @Override public void performOperation(POMModel model) { for (org.apache.maven.shared.dependency.tree.DependencyNode nd : nds) { Artifact directArt = nd.getArtifact(); org.netbeans.modules.maven.model.pom.Dependency dep = model.getProject().findDependencyById(directArt.getGroupId(), directArt.getArtifactId(), null); if (dep == null) { // now check the active profiles for the dependency.. List<String> profileNames = new ArrayList<String>(); Iterator it = data.getMavenProject().getActiveProfiles().iterator(); while (it.hasNext()) { Profile prof = (Profile) it.next(); profileNames.add(prof.getId()); } for (String profileId : profileNames) { org.netbeans.modules.maven.model.pom.Profile modProf = model.getProject().findProfileById(profileId); if (modProf != null) { dep = modProf.findDependencyById(directArt.getGroupId(), directArt.getArtifactId(), null); if (dep != null) { break; } } } } if (dep == null) { // relocation maybe? List<org.netbeans.modules.maven.model.pom.Dependency> deps = model.getProject().getDependencies(); for (org.netbeans.modules.maven.model.pom.Dependency d : deps) { Relocation rel = getRelocation(d); if(rel != null && rel.getArtifactId().equals(directArt.getArtifactId()) && rel.getGroupId().equals(directArt.getGroupId()) && rel.getVersion().equals(directArt.getVersion())) { dep = d; break; } } } if (dep == null) { dep = model.getFactory().createDependency(); dep.setGroupId(directArt.getGroupId()); dep.setArtifactId(directArt.getArtifactId()); dep.setVersion(directArt.getVersion()); if (!"jar".equals(directArt.getType())) { dep.setType(directArt.getType()); } model.getProject().addDependency(dep); //mkleint: TODO why is the dependency being added? i forgot already.. } Exclusion ex = dep.findExclusionById(art.getGroupId(), art.getArtifactId()); if (ex == null) { Exclusion exclude = model.getFactory().createExclusion(); exclude.setGroupId(art.getGroupId()); exclude.setArtifactId(art.getArtifactId()); dep.addExclusion(exclude); } } } }; FileObject fo = FileUtil.toFileObject(data.project.getLookup().lookup(NbMavenProjectImpl.class).getPOMFile()); org.netbeans.modules.maven.model.Utilities.performPOMModelOperations(fo, Collections.singletonList(operation)); }
@Override public Relocation replaceDistributionManagementRelocation( Relocation relocation ) { return relocation; }
@Override public Relocation replaceProfileDistributionManagementRelocation( Relocation relocation ) { return relocation; }
@Override public void visitDistributionManagementRelocation( Relocation relocation ) { }
@Override public void visitProfileDistributionManagementRelocation( Relocation relocation ) { }
Relocation replaceDistributionManagementRelocation( Relocation relocation );
Relocation replaceProfileDistributionManagementRelocation( Relocation relocation );
void visitDistributionManagementRelocation( Relocation relocation );
void visitProfileDistributionManagementRelocation( Relocation relocation );