public AbstractSimpleProjectRelationship( final ProjectRelationship<R, T> relationship ) { this.sources.addAll( relationship.getSources() ); this.declaring = new SimpleProjectVersionRef( relationship.getDeclaring() ); this.pomLocation = relationship.getPomLocation(); this.index = relationship.getIndex(); this.managed = relationship.isManaged(); this.inherited = relationship.isInherited(); this.mixin = relationship.isMixin(); this.type = relationship.getType(); this.target = cloneTarget( relationship.getTarget() ); }
public static Set<ArtifactRef> collectArtifactReferences( final Collection<ProjectRelationship<?, ?>> rels, final boolean includePomArtifacts ) { final Set<ArtifactRef> artifacts = new HashSet<ArtifactRef>(); for ( final ProjectRelationship<?, ?> rel : rels ) { // if ( !( rel instanceof DependencyRelationship ) ) // { // continue; // } if ( includePomArtifacts ) { final ProjectVersionRef pvr = rel.getDeclaring() .asProjectVersionRef(); artifacts.add( pvr.asPomArtifact() ); } final ArtifactRef tar = rel.getTargetArtifact(); artifacts.add( tar ); if ( includePomArtifacts ) { artifacts.add( tar.asPomArtifact() ); } } return artifacts; }
@SuppressWarnings( "unchecked" ) private <C extends ProjectRelationship<?, ?>> C adjustDeclaring( final C rel ) { if ( !ref .equals( rel.getDeclaring() ) ) { return (C) rel.cloneFor( ref ); } return rel; }
public Set<ProjectVersionRef> getAllParticipatingProjects() { final Set<ProjectVersionRef> refs = new HashSet<ProjectVersionRef>(); for ( final ProjectRelationship<?, ?> rel : relationships ) { refs.add( rel.getDeclaring() ); refs.add( rel.getTarget() .asProjectVersionRef() ); } return refs; }
@Override public boolean accept( final ProjectRelationship<?, ?> rel ) { boolean result = false; if ( rel.getType() == PARENT ) { result = true; } else if ( rel.getType() == BOM ) { result = true; } else if ( !acceptManaged && rel.isManaged() ) { result = false; } else if ( rel.getType() == DEPENDENCY ) { result = ( excludes == null || !excludes.contains( rel.getTarget() .asProjectRef() ) ); } else { result = true; } // logger.info( "{}: accept({})", Boolean.toString( result ) // .toUpperCase(), rel ); return result; }
@Override public ProjectVersionRef getManagedTargetFor( final ProjectVersionRef target, final GraphPath<?> path, final RelationshipType type ) { if ( path == null ) { return null; } if ( !( path instanceof JungGraphPath ) ) { throw new IllegalArgumentException( "Cannot process GraphPath's from other implementations. (Non-Jung GraphPath detected: " + path + ")" ); } final ProjectRef targetGA = target.asProjectRef(); final JungGraphPath jungpath = (JungGraphPath) path; for ( final ProjectRelationship<?, ?> ref : jungpath ) { final Collection<ProjectRelationship<?, ?>> outEdges = graph.getOutEdges( ref.getDeclaring() ); for ( final ProjectRelationship<?, ?> edge : outEdges ) { if ( edge.isManaged() && type == edge.getType() && targetGA.equals( edge.getTarget() ) ) { return edge.getTarget() .asProjectVersionRef(); } } } return null; }
@SuppressWarnings( "incomplete-switch" ) public static void toRelationshipProperties( final ProjectRelationship<?, ?> rel, final Relationship relationship ) relationship.setProperty( INDEX, rel.getIndex() ); String[] srcs = toStringArray( rel.getSources() ); Logger logger = LoggerFactory.getLogger( Conversions.class ); logger.debug( "Storing rel: {}\nwith sources: {}\n in property: {}\nRelationship: {}", rel, Arrays.toString( srcs ), SOURCE_URI, relationship ); relationship.setProperty( SOURCE_URI, srcs ); relationship.setProperty( POM_LOCATION_URI, rel.getPomLocation().toString() ); relationship.setProperty( IS_INHERITED, rel.isInherited() ); switch ( rel.getType() ) relationship.setProperty( IS_MIXIN, rel.isMixin() ); break; case DEPENDENCY: toRelationshipProperties( (ArtifactRef) rel.getTarget(), relationship ); relationship.setProperty( IS_MANAGED, specificRel.isManaged() ); relationship.setProperty( SCOPE, specificRel.getScope().realName() ); toRelationshipProperties( (ArtifactRef) rel.getTarget(), relationship );
if ( declaring == null ) if ( other.getDeclaring() != null ) else if ( !declaring.equals( other.getDeclaring() ) ) if ( other.getTarget() != null ) else if ( !target.equals( other.getTarget() ) ) return type == other.getType();
@Override public int compare( final ProjectRelationship<?, ?> one, final ProjectRelationship<?, ?> two ) if ( one.getType() == two.getType() ) if ( one.getPomLocation() .equals( POM_ROOT_URI ) && !two.getPomLocation() .equals( POM_ROOT_URI ) ) else if ( !one.getPomLocation() .equals( POM_ROOT_URI ) && two.getPomLocation() .equals( POM_ROOT_URI ) ) int res = one.getDeclaring().compareTo( two.getDeclaring() ); if ( res == 0 ) res = one.getIndex() - two.getIndex(); return one.getType() .ordinal() - two.getType() .ordinal();
@SuppressWarnings( "incomplete-switch" ) private void appendRelationshipInfo( final ProjectRelationship<?, ?> rel, final StringBuilder sb ) { sb.append( " [type=\"" ).append( rel.getType().name() ).append( "\"" ); switch ( rel.getType() ) { case DEPENDENCY: { sb.append( " managed=\"" ).append( rel.isManaged() ).append( "\"" ); sb.append( " scope=\"" ) .append( ( (DependencyRelationship) rel ).getScope().realName() ) .append( "\"" ); break; } case PLUGIN: { sb.append( " managed=\"" ).append( rel.isManaged() ).append( "\"" ); break; } case PLUGIN_DEP: { sb.append( " managed=\"" ).append( rel.isManaged() ).append( "\"" ); break; } } sb.append( "]" ); } }
public ProjectVersionRef getTargetGAV() { if ( root != null ) { return root; } else if ( rels.length > 0 ) { return rels[rels.length - 1].getTarget() .asProjectVersionRef(); } return null; }
for ( final ProjectRelationship<?, ?> rel : rels ) if ( !graph.containsVertex( rel.getDeclaring() ) ) graph.addVertex( rel.getDeclaring() ); addGA( rel.getDeclaring() ); final ProjectVersionRef target = rel.getTarget() .asProjectVersionRef(); if ( target.isVariableVersion() || !target.getVersionSpec() new ArrayList<ProjectRelationship<?, ?>>( graph.findEdgeSet( rel.getDeclaring(), target ) ); if ( !edges.contains( rel ) ) graph.addEdge( rel, rel.getDeclaring(), target.asProjectVersionRef() ); existing.addSources( rel.getSources() ); incompleteSubgraphs.remove( rel.getDeclaring() ); .build(), traversal, rel.getTarget() .asProjectVersionRef() );
private GAVDependencyTree generateGAVDependencyTree(GraphExport export, GAV rootGAV) { // keep a map of gav -> GAVDependencyTree object Map<GAV, GAVDependencyTree> gavMapper = new HashMap<>(); // create the root GAVDependencyTree and return it GAVDependencyTree root = new GAVDependencyTree(rootGAV); gavMapper.put(rootGAV, root); for (ProjectRelationship<?, ?> rel : export.getRelationships()) { if (rel.getType().equals(RelationshipType.DEPENDENCY)) { ProjectVersionRef declaring = rel.getDeclaring(); ProjectVersionRef dependencyArtifact = rel.getTargetArtifact(); GAV declaringGAV = generateGAV(declaring); GAV dependencyGAV = generateGAV(dependencyArtifact); GAVDependencyTree declaringDT = addGAVDependencyTreeToGAVMapper(gavMapper, declaringGAV); GAVDependencyTree dependencyDT = addGAVDependencyTreeToGAVMapper(gavMapper, dependencyGAV); // set the dependency relationship between GAVDependencyTree here declaringDT.addDependency(dependencyDT); } } return root; }
final ProjectVersionRef target = edge.getTarget() .asProjectVersionRef(); Set<URI> s = edge.getSources(); if ( s == null ) if ( pomLocations != null && !pomLocations.isEmpty() ) URI pomLocation = edge.getPomLocation(); if ( pomLocation == null ) if ( selected != null ) result.add( edge.selectTarget( selected ) );
public boolean contains( final ProjectVersionRef ref ) { for ( final ProjectRelationship<?, ?> rel : relationships ) { if ( rel.getDeclaring() .equals( ref ) ) { return true; } } return false; }
for ( final ProjectRelationship<?, ?> rel : accepted ) if ( rel instanceof DependencyRelationship && !rel.isManaged() ) final VersionlessArtifactRef key = new SimpleVersionlessArtifactRef( rel.getTargetArtifact() ); logger.debug( "Mapping existing dependency via key: {}", key ); concreteDeps.put( key, (DependencyRelationship) rel );
for ( final ProjectRelationship<?, ?> rel : stored ) final ProjectVersionRef ref = rel.getDeclaring() .asProjectVersionRef(); if ( seen.contains( ref ) ) final Set<URI> srcs = rel.getSources(); if ( srcs == null )
if ( !rel.isManaged() && rel instanceof DependencyRelationship && ( (DependencyRelationship) rel ).getScope() == DependencyScope.provided )
@Override public boolean accept( final ProjectRelationship<?, ?> rel ) { boolean result = false; if ( rel.getType() == PARENT ) { result = true; } else if ( rel.getType() == BOM ) { result = true; } else if ( !acceptManaged && rel.isManaged() ) { result = false; } else if ( rel.getType() == DEPENDENCY ) { result = ( excludes == null || !excludes.contains( rel.getTarget() .asProjectRef() ) ); } else { result = true; } // logger.info( "{}: accept({})", Boolean.toString( result ) // .toUpperCase(), rel ); return result; }