metadata.setPlugins( new ArrayList<>( allPlugins ) );
public static ArchivaRepositoryMetadata merge( final ArchivaRepositoryMetadata mainMetadata, final ArchivaRepositoryMetadata sourceMetadata ) throws RepositoryMetadataException { if ( mainMetadata == null ) { throw new RepositoryMetadataException( "Cannot merge a null main project." ); } if ( sourceMetadata == null ) { throw new RepositoryMetadataException( "Cannot copy to a null parent project." ); } ArchivaRepositoryMetadata merged = new ArchivaRepositoryMetadata(); merged.setGroupId( merge( mainMetadata.getGroupId(), sourceMetadata.getGroupId() ) ); merged.setArtifactId( merge(mainMetadata.getArtifactId(), sourceMetadata.getArtifactId())); merged.setVersion( merge(mainMetadata.getVersion(), sourceMetadata.getVersion()) ); merged.setReleasedVersion( merge( mainMetadata.getReleasedVersion(), sourceMetadata.getReleasedVersion() ) ); merged.setSnapshotVersion( merge( mainMetadata.getSnapshotVersion(), sourceMetadata.getSnapshotVersion() ) ); merged.setAvailableVersions( mergeAvailableVersions( mainMetadata.getAvailableVersions(), sourceMetadata.getAvailableVersions() ) ); merged.setPlugins( mergePlugins( mainMetadata.getPlugins(), sourceMetadata.getPlugins() ) ); //Don't set if merge was not possible long lastUpdated = mergeTimestamp( mainMetadata.getLastUpdated(), sourceMetadata.getLastUpdated()); if (lastUpdated > -1) { merged.setLastUpdated( Long.toString(lastUpdated) ); } return merged; }