public Transfer generateRelationshipFile ( Transfer transfer , TransferOperation op ) { final Logger logger = LoggerFactory . getLogger ( getClass ( ) ) ; if ( ! config . isEnabled ( ) ) { logger . debug ( "Relate Add-on is not enabled." ) ; return null ; } logger . debug ( "Relate generation for {}" , transfer ) ; if ( transfer == null ) { logger . debug ( "No transfer. No .rel generation performed." ) ; return null ; } String txfrPath = transfer . getPath ( ) ; if ( ! txfrPath . endsWith ( ".pom" ) ) { logger . debug ( "This is not a pom transfer." ) ; return null ; } ArtifactPathInfo artPathInfo = ArtifactPathInfo . parse ( txfrPath ) ; if ( artPathInfo == null ) { logger . debug ( "Not an artifact download ({}). No .rel generation performed." , txfrPath ) ; return null ; } ConcreteResource pomResource = transfer . getResource ( ) ; StoreKey storeKey = StoreKey . fromString ( transfer . getLocation ( ) . getName ( ) ) ; ArtifactStore store ; try { store = storeManager . getArtifactStore ( storeKey ) ; } catch ( final IndyDataException ex ) { logger . error ( "Error retrieving artifactStore with key " + storeKey , ex ) ; return null ; } logger . debug ( "Generate .rel corresponding to associated POM download: {}/{}" , storeKey , pomResource . getPath ( ) ) ; try { URI source = new URI ( pomResource . getLocation ( ) . getUri ( ) + REL_SUFFIX ) ; ProjectVersionRef ref = artPathInfo . getProjectId ( ) ; // get all groups that this store is a member of Set < ArtifactStore > stores = new HashSet <> ( ) ; stores . add ( store ) ; stores . addAll ( storeManager . query ( ) . getGroupsContaining ( store . getKey ( ) ) ) ; List < ? extends Location > supplementalLocations = LocationUtils . toLocations ( stores . toArray ( new ArtifactStore [ 0 ] ) ) ; MavenPomView pomView = mavenPomReader . read ( ref , transfer , supplementalLocations , ALL_PROFILES ) ; EProjectDirectRelationships rel = mavenModelProcessor . readRelationships ( pomView , source , new ModelProcessorConfig ( ) ) ; Transfer transferRel = transfer . getSiblingMeta ( REL_SUFFIX ) ; writeRelationships ( rel , transferRel , op ) ; return transferRel ; } catch ( Exception e ) { logger . error ( "Error generating .rel file for " + txfrPath + " from store " + store , e ) ; return null ; } }
Generate relationship file for pom transfer .