From b74ebed51a5dcf6094b8278ed390125b9b699439 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 20 Feb 2026 16:32:33 +0000 Subject: [PATCH] NCL-9559 Remove cartographer, update Atlas and Galley --- communication/pom.xml | 32 +-- .../communication/CartographerProducer.java | 206 ------------------ .../da/communication/GalleyMavenProducer.java | 194 +++++++++++++++++ .../indy/impl/MetadataFileParser.java | 3 +- .../da/communication/pom/GalleyWrapper.java | 42 ++-- .../jboss/da/communication/pom/LocalRepo.java | 16 +- .../da/communication/pom/PomAnalyzerImpl.java | 28 ++- .../pom/impl/DependencyTreeBuilder.java | 6 +- .../pom/qualifier/DACartographerCore.java | 18 -- pom.xml | 28 ++- testsuite/pom.xml | 2 +- .../communication/GalleyWrapperTestIT.java | 33 ++- 12 files changed, 297 insertions(+), 311 deletions(-) delete mode 100644 communication/src/main/java/org/jboss/da/communication/CartographerProducer.java create mode 100644 communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java delete mode 100644 communication/src/main/java/org/jboss/da/communication/pom/qualifier/DACartographerCore.java diff --git a/communication/pom.xml b/communication/pom.xml index 9ab863d78..d2a49ed55 100644 --- a/communication/pom.xml +++ b/communication/pom.xml @@ -101,29 +101,33 @@ - org.commonjava.cartographer - cartographer - - - com.sun - tools - - + org.commonjava.maven.galley + galley-maven - - org.projectlombok - lombok - provided + org.commonjava.maven.galley + galley-transport-filearc + + + org.commonjava.maven.galley + galley-transport-httpclient + + + org.commonjava.atlas + atlas-identities - - org.commonjava.maven.galley galley-cache-partyline + + org.projectlombok + lombok + provided + + junit diff --git a/communication/src/main/java/org/jboss/da/communication/CartographerProducer.java b/communication/src/main/java/org/jboss/da/communication/CartographerProducer.java deleted file mode 100644 index 4fc9f9c5c..000000000 --- a/communication/src/main/java/org/jboss/da/communication/CartographerProducer.java +++ /dev/null @@ -1,206 +0,0 @@ -package org.jboss.da.communication; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import org.commonjava.cartographer.CartoDataException; -import org.commonjava.cartographer.CartographerCore; -import org.commonjava.cartographer.CartographerCoreBuilder; -import org.commonjava.cartographer.INTERNAL.graph.discover.DiscovererImpl; -import org.commonjava.cartographer.graph.discover.meta.MetadataScannerSupport; -import org.commonjava.cartographer.graph.discover.patch.PatcherSupport; -import org.commonjava.cartographer.spi.graph.discover.DiscoverySourceManager; -import org.commonjava.cartographer.spi.graph.discover.ProjectRelationshipDiscoverer; -import org.commonjava.maven.atlas.graph.RelationshipGraphFactory; -import org.commonjava.maven.atlas.graph.spi.neo4j.FileNeo4jConnectionFactory; -import org.commonjava.maven.galley.auth.MemoryPasswordManager; -import org.commonjava.maven.galley.cache.FileCacheProviderConfig; -import org.commonjava.maven.galley.cache.partyline.PartyLineCacheProvider; -import org.commonjava.maven.galley.config.TransportManagerConfig; -import org.commonjava.maven.galley.event.NoOpFileEventManager; -import org.commonjava.maven.galley.filearc.FileTransportConfig; -import org.commonjava.maven.galley.io.HashedLocationPathGenerator; -import org.commonjava.maven.galley.io.NoOpTransferDecorator; -import org.commonjava.maven.galley.maven.GalleyMaven; -import org.commonjava.maven.galley.maven.internal.defaults.StandardMaven304PluginDefaults; -import org.commonjava.maven.galley.maven.internal.defaults.StandardMavenPluginImplications; -import org.commonjava.maven.galley.maven.parse.MavenPomReader; -import org.commonjava.maven.galley.maven.parse.XMLInfrastructure; -import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; -import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; -import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginDefaults; -import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginImplications; -import org.commonjava.maven.galley.nfc.MemoryNotFoundCache; -import org.commonjava.maven.galley.spi.auth.PasswordManager; -import org.commonjava.maven.galley.spi.event.FileEventManager; -import org.commonjava.maven.galley.spi.io.TransferDecorator; -import org.commonjava.maven.galley.spi.nfc.NotFoundCache; -import org.commonjava.maven.galley.spi.transport.LocationExpander; -import org.commonjava.maven.galley.spi.transport.LocationResolver; -import org.commonjava.maven.galley.spi.transport.TransportManager; -import org.commonjava.maven.galley.transport.NoOpLocationExpander; -import org.commonjava.maven.galley.transport.SimpleUrlLocationResolver; -import org.commonjava.maven.galley.transport.htcli.Http; -import org.commonjava.maven.galley.transport.htcli.HttpImpl; -import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; -import org.jboss.da.communication.pom.qualifier.DACartographerCore; - -import javax.enterprise.inject.Produces; -import javax.inject.Inject; - -import java.io.File; -import java.io.IOException; - -/** - * Class used to inject null to '@Injects' in cartographer - */ -public class CartographerProducer { - - @Inject - private MetadataScannerSupport metadataScannerSupport; - - @Inject - private MavenPomReader mavenPomReader; - - @Inject - private TransportManager transportManager; - - @Produces - @DACartographerCore - public CartographerCore getCartographerCore() throws IOException, CartoDataException { - - // tempFile is not really used, but just needed to be passed to the constructor - File tempFile = new File("random"); - - return new CartographerCoreBuilder(tempFile, new FileNeo4jConnectionFactory(null, true)).withDefaultTransports() - .withCache(getPartyLineCacheProvider()) - .build(); - } - - @Produces - public NotFoundCache getNotFoundCache() { - return new MemoryNotFoundCache(); - } - - @Produces - public FileTransportConfig getFileTransportConfig() { - return new FileTransportConfig(); - } - - @Produces - public GlobalHttpConfiguration getGlobalHttpConfiguration() { - return new GlobalHttpConfiguration(); - } - - @Produces - public PasswordManager getPasswordManager() { - return new MemoryPasswordManager(); - } - - @Produces - public Http getHttp() { - return new HttpImpl(getPasswordManager()); - } - - @Produces - public ObjectMapper getObjectMapper() { - return new ObjectMapper(); - } - - @Produces - public LocationExpander getLocationExpander() throws IOException, CartoDataException { - return new NoOpLocationExpander(); - } - - @Produces - public MavenPluginDefaults getMavenPluginDefaults() { - return new StandardMaven304PluginDefaults(); - } - - @Produces - public MavenPluginImplications getMavenPluginImplications() { - return new StandardMavenPluginImplications(new XMLInfrastructure()); - } - - @Produces - public ProjectRelationshipDiscoverer getProjectRelationshipDiscoverer() throws IOException, CartoDataException { - return new DiscovererImpl( - getMavenModelProcessor(), - mavenPomReader, - getGalleyMaven().getArtifactManager(), - getPatcherSupport(), - metadataScannerSupport); - } - - @Produces - public GalleyMaven getGalleyMaven() throws IOException, CartoDataException { - return getCartographerCore().getGalley(); - } - - @Produces - public PatcherSupport getPatcherSupport() { - return new PatcherSupport(); - } - - @Produces - public FileEventManager getFileEventManager() throws IOException, CartoDataException { - return new NoOpFileEventManager(); - } - - @Produces - public TransportManagerConfig getTransportManagerConfig() { - return new TransportManagerConfig(); - } - - @Produces - public TransferDecorator getTransferDecorator() throws IOException, CartoDataException { - return new NoOpTransferDecorator(); - } - - @Produces - public ModelProcessorConfig getModelProcessorConfig() { - ModelProcessorConfig disConf = new ModelProcessorConfig(); - disConf.setIncludeBuildSection(false); - disConf.setIncludeManagedDependencies(false); - disConf.setIncludeManagedPlugins(false); - return disConf; - } - - @Produces - public MavenModelProcessor getMavenModelProcessor() { - return new MavenModelProcessor(); - } - - @Produces - public LocationResolver getLocationResolver() throws IOException, CartoDataException { - return new SimpleUrlLocationResolver(getLocationExpander(), transportManager); - } - - @Produces - public PartyLineCacheProvider getPartyLineCacheProvider() throws IOException, CartoDataException { - - // tempFile is not really used, but just needed to be passed to the constructor - File tempFile = new File("random"); - - return new PartyLineCacheProvider( - tempFile, - new HashedLocationPathGenerator(), - getFileEventManager(), - getTransferDecorator()); - } - - @Produces - public DiscoverySourceManager getDiscoverySourceManager() { - return null; - } - - @Produces - public RelationshipGraphFactory getRelationshipGraphFactory() { - return null; - } - - @Produces - public FileCacheProviderConfig getFileCacheProviderConfig() { - FileCacheProviderConfig fcpc = new FileCacheProviderConfig(new File("random")); - return fcpc; - } -} diff --git a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java new file mode 100644 index 000000000..e6323e7b0 --- /dev/null +++ b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java @@ -0,0 +1,194 @@ +package org.jboss.da.communication; + +import com.codahale.metrics.MetricRegistry; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.commonjava.cdi.util.weft.config.DefaultWeftConfig; +import org.commonjava.cdi.util.weft.config.WeftConfig; +import org.commonjava.maven.galley.auth.MemoryPasswordManager; +import org.commonjava.maven.galley.cache.partyline.PartyLineCacheProvider; +import org.commonjava.maven.galley.config.TransportManagerConfig; +import org.commonjava.maven.galley.config.TransportMetricConfig; +import org.commonjava.maven.galley.event.NoOpFileEventManager; +import org.commonjava.maven.galley.filearc.FileTransportConfig; +import org.commonjava.maven.galley.io.HashedLocationPathGenerator; +import org.commonjava.maven.galley.io.TransferDecoratorManager; +import org.commonjava.maven.galley.maven.internal.defaults.StandardMaven304PluginDefaults; +import org.commonjava.maven.galley.maven.internal.defaults.StandardMavenPluginImplications; +import org.commonjava.maven.galley.maven.parse.XMLInfrastructure; +import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; +import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; +import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginDefaults; +import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginImplications; +import org.commonjava.maven.galley.model.Location; +import org.commonjava.maven.galley.nfc.MemoryNotFoundCache; +import org.commonjava.maven.galley.spi.auth.PasswordManager; +import org.commonjava.maven.galley.spi.event.FileEventManager; +import org.commonjava.maven.galley.spi.io.PathGenerator; +import org.commonjava.maven.galley.spi.nfc.NotFoundCache; +import org.commonjava.maven.galley.spi.transport.LocationExpander; +import org.commonjava.maven.galley.transport.NoOpLocationExpander; +import org.commonjava.maven.galley.transport.htcli.Http; +import org.commonjava.maven.galley.transport.htcli.HttpImpl; +import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; +import org.commonjava.util.partyline.JoinableFileManager; + +import javax.annotation.PostConstruct; +import javax.enterprise.inject.Produces; +import javax.inject.Inject; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.concurrent.Executors; + +// Inspiration taken from the previous CartographyProducer and org.commonjava.maven.galley.embed.TestCDIProvider.java +public class GalleyMavenProducer { + + @Inject + private TransferDecoratorManager transferDecorator; + + private FileTransportConfig fileTransportConfig; + + private PartyLineCacheProvider cacheProvider; + + private MetricRegistry metricRegistry; + + private GlobalHttpConfiguration globalHttpConfiguration; + + private PathGenerator pathGenerator; + + private final TransportMetricConfig transportMetricConfig = new TransportMetricConfig() { + public boolean isEnabled() { + return false; + } + + @Override + public String getNodePrefix() { + return null; + } + + @Override + public String getMetricUniqueName(Location location) { + return null; + } + }; + + @PostConstruct + void init() { + try { + File file = Files.createTempDirectory("galley").toFile(); + + pathGenerator = new HashedLocationPathGenerator(); + cacheProvider = new PartyLineCacheProvider( + file, + pathGenerator, + new NoOpFileEventManager(), + transferDecorator, + Executors.newScheduledThreadPool(2), + new JoinableFileManager()); + fileTransportConfig = new FileTransportConfig(file, pathGenerator); + + globalHttpConfiguration = new GlobalHttpConfiguration(); + + metricRegistry = new MetricRegistry(); + + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Produces + public FileTransportConfig getFileTransportConfig() { + return fileTransportConfig; + } + + @Produces + public LocationExpander getLocationExpander() { + return new NoOpLocationExpander(); + } + + @Produces + public PartyLineCacheProvider getCacheProvider() { + return cacheProvider; + } + + @Produces + public NotFoundCache getNotFoundCache() { + return new MemoryNotFoundCache(); + } + + @Produces + public MavenPluginImplications getMavenPluginImplications() { + return new StandardMavenPluginImplications(new XMLInfrastructure()); + } + + @Produces + public MavenPluginDefaults getMavenPluginDefaults() { + return new StandardMaven304PluginDefaults(); + } + + @Produces + public WeftConfig getWeftConfig() { + return new DefaultWeftConfig(); + } + + @Produces + public Http getHttp() { + return new HttpImpl(getPasswordManager()); + } + + @Produces + public PasswordManager getPasswordManager() { + return new MemoryPasswordManager(); + } + + @Produces + public PathGenerator getPathGenerator() { + return pathGenerator; + } + + @Produces + public TransportManagerConfig getTransportManagerConfig() { + return new TransportManagerConfig(); + } + + @Produces + public FileEventManager getFileEventManager() { + return new NoOpFileEventManager(); + } + + @Produces + public GlobalHttpConfiguration getGlobalHttpConfiguration() { + return globalHttpConfiguration; + } + + @Produces + public MetricRegistry getMetricRegistry() { + return metricRegistry; + } + + @Produces + public TransportMetricConfig getTransportMetricConfig() { + return transportMetricConfig; + } + + @Produces + public ObjectMapper getObjectMapper() { + return new ObjectMapper(); + } + + // Only appears to be used by GalleyWrapperTestIT + @Produces + public ModelProcessorConfig getModelProcessorConfig() { + ModelProcessorConfig disConf = new ModelProcessorConfig(); + disConf.setIncludeBuildSection(false); + disConf.setIncludeManagedDependencies(false); + disConf.setIncludeManagedPlugins(false); + return disConf; + } + + // Only appears to be used by GalleyWrapperTestIT + @Produces + public MavenModelProcessor getMavenModelProcessor() { + return new MavenModelProcessor(); + } +} diff --git a/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java b/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java index c6f48dc5a..e4653f2e3 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java @@ -25,8 +25,7 @@ public class MetadataFileParser { @Inject private ObjectMapper om; - public static VersionResponse parseMavenMetadata(InputStream in) - throws IOException, CommunicationException, JAXBException { + public static VersionResponse parseMavenMetadata(InputStream in) throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(VersionResponse.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); return (VersionResponse) jaxbUnmarshaller.unmarshal(in); diff --git a/communication/src/main/java/org/jboss/da/communication/pom/GalleyWrapper.java b/communication/src/main/java/org/jboss/da/communication/pom/GalleyWrapper.java index 64f94a354..dbf012db7 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/GalleyWrapper.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/GalleyWrapper.java @@ -1,11 +1,9 @@ package org.jboss.da.communication.pom; -import org.commonjava.cartographer.CartoDataException; -import org.commonjava.maven.atlas.graph.model.EProjectDirectRelationships; -import org.commonjava.maven.atlas.graph.rel.DependencyRelationship; -import org.commonjava.maven.atlas.graph.rel.RelationshipType; -import org.commonjava.maven.atlas.ident.ref.ProjectVersionRef; -import org.commonjava.maven.galley.maven.GalleyMaven; +import org.commonjava.atlas.maven.graph.model.EProjectDirectRelationships; +import org.commonjava.atlas.maven.graph.rel.DependencyRelationship; +import org.commonjava.atlas.maven.graph.rel.RelationshipType; +import org.commonjava.atlas.maven.ident.ref.ProjectVersionRef; import org.commonjava.maven.galley.maven.GalleyMavenException; import org.commonjava.maven.galley.maven.model.view.DependencyView; import org.commonjava.maven.galley.maven.model.view.MavenGAVView; @@ -14,6 +12,7 @@ import org.commonjava.maven.galley.maven.parse.PomPeek; import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; +import org.commonjava.maven.galley.maven.spi.type.TypeMapper; import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.model.SimpleLocation; import org.jboss.da.common.util.Configuration; @@ -26,7 +25,13 @@ import java.io.IOException; import java.net.URI; import java.nio.file.Path; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; +import java.util.Queue; +import java.util.Set; import java.util.stream.Collectors; /** @@ -49,13 +54,17 @@ public class GalleyWrapper implements AutoCloseable { private MavenModelProcessor processor; - public GalleyWrapper(GalleyMaven galley, File scmDir, ModelProcessorConfig disConf, MavenModelProcessor processor) - throws IOException { + public GalleyWrapper( + MavenPomReader mavenPomReader, + TypeMapper typeMapper, + File scmDir, + ModelProcessorConfig disConf, + MavenModelProcessor processor) throws IOException { this.disConf = disConf; this.processor = processor; - this.mvnPomReader = galley.getPomReader(); + this.mvnPomReader = mavenPomReader; this.scm = scmDir.toPath(); - this.localRepo = new LocalRepo(galley, scmDir); + this.localRepo = new LocalRepo(typeMapper, scmDir); locations.add(localRepo.getLocation()); } @@ -238,13 +247,11 @@ public void close() { * @param artifact Dependencies of this artifact will be returned * @return Set of dependency relationships describing the dependency graph. * @throws GalleyMavenException - * @throws CartoDataException * @see #addDefaultLocations(org.jboss.da.common.util.Configuration) * @see #addLocations(java.util.List) * @see #addLocationsFromPoms(org.jboss.da.communication.pom.PomReader) */ - public Set getAllDependencies(Artifact artifact) - throws GalleyMavenException, CartoDataException { + public Set getAllDependencies(Artifact artifact) throws GalleyMavenException { return getAllDependencies(artifact, false, false); } @@ -257,13 +264,12 @@ public Set getAllDependencies(Artifact artifact) * @param providedDeps true if should dependencies of provided-scope dependency be resolved. * @return Set of dependency relationships describing the dependency graph. * @throws GalleyMavenException - * @throws CartoDataException * @see #addDefaultLocations(org.jboss.da.common.util.Configuration) * @see #addLocations(java.util.List) * @see #addLocationsFromPoms(org.jboss.da.communication.pom.PomReader) */ public Set getAllDependencies(Artifact artifact, boolean testDeps, boolean providedDeps) - throws GalleyMavenException, CartoDataException { + throws GalleyMavenException { Set deps = new HashSet<>(); URI src = localRepo.getUri(); @@ -284,7 +290,7 @@ public Set getAllDependencies(Artifact artifact, boolean try { work.addAll(getDeps(dr.getTarget(), processor, src, disConf)); - } catch (CartoDataException | GalleyMavenException ex) { + } catch (GalleyMavenException ex) { log.warn("Failed to get dependencies for " + dr.getTarget(), ex); } } @@ -295,7 +301,7 @@ private Set getDeps( ProjectVersionRef ref, MavenModelProcessor processor, URI src, - ModelProcessorConfig disConf) throws GalleyMavenException, CartoDataException { + ModelProcessorConfig disConf) throws GalleyMavenException { MavenPomView pomView = mvnPomReader.read(ref, locations); EProjectDirectRelationships relationships = processor.readRelationships(pomView, src, disConf); return relationships.getAllRelationships() diff --git a/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java b/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java index 5f4e13e69..f0a4119e5 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java @@ -1,9 +1,9 @@ package org.jboss.da.communication.pom; -import org.commonjava.maven.atlas.ident.ref.ProjectVersionRef; +import org.commonjava.atlas.maven.ident.ref.ProjectVersionRef; import org.commonjava.maven.galley.TransferException; -import org.commonjava.maven.galley.maven.GalleyMaven; import org.commonjava.maven.galley.maven.parse.PomPeek; +import org.commonjava.maven.galley.maven.spi.type.TypeMapper; import org.commonjava.maven.galley.maven.util.ArtifactPathUtils; import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.model.SimpleLocation; @@ -25,7 +25,7 @@ /** * Class holding local maven-like repository of pom files. - * + * * @author Honza Brázdil <jbrazdil@redhat.com> */ public class LocalRepo { @@ -36,10 +36,10 @@ public class LocalRepo { private static final String SUFFIX = "-20150205.044024-1.pom"; - public LocalRepo(GalleyMaven galley, File scmDir) throws IOException { + public LocalRepo(TypeMapper typeMapper, File scmDir) throws IOException { path = Files.createTempDirectory("deps"); - initLocalRepo(galley, scmDir.toPath()); + initLocalRepo(typeMapper, scmDir.toPath()); } public synchronized Location getLocation() { @@ -50,7 +50,7 @@ public synchronized URI getUri() { return path.toUri(); } - private void initLocalRepo(GalleyMaven galley, Path scmDir) throws IOException { + private void initLocalRepo(TypeMapper typeMapper, Path scmDir) throws IOException { Set poms = getAllPoms(scmDir); for (Path pomFile : poms) { @@ -62,7 +62,7 @@ private void initLocalRepo(GalleyMaven galley, Path scmDir) throws IOException { } try { - String artifactPath = ArtifactPathUtils.formatArtifactPath(key.asPomArtifact(), galley.getTypeMapper()); + String artifactPath = ArtifactPathUtils.formatArtifactPath(key.asPomArtifact(), typeMapper); Path p = path.resolve(artifactPath); Files.createDirectories(p.getParent()); @@ -108,7 +108,7 @@ protected void delete() { /** * This method will generate maven-metadata for - * + * * @param key * @param pomFile * @param p diff --git a/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java b/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java index 958f2ca50..ef058661c 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java @@ -1,14 +1,13 @@ package org.jboss.da.communication.pom; -import org.commonjava.cartographer.CartoDataException; -import org.commonjava.cartographer.CartographerCore; -import org.commonjava.maven.atlas.graph.rel.DependencyRelationship; +import org.commonjava.atlas.maven.graph.rel.DependencyRelationship; import org.commonjava.maven.galley.maven.GalleyMavenException; import org.commonjava.maven.galley.maven.model.view.MavenPomView; import org.commonjava.maven.galley.maven.parse.MavenPomReader; import org.commonjava.maven.galley.maven.parse.PomPeek; import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; +import org.commonjava.maven.galley.maven.spi.type.TypeMapper; import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.model.SimpleLocation; import org.jboss.da.common.json.DAConfig; @@ -19,14 +18,12 @@ import org.jboss.da.communication.pom.api.PomAnalyzer; import org.jboss.da.communication.pom.impl.DependencyTreeBuilder; import org.jboss.da.communication.pom.model.MavenProject; -import org.jboss.da.communication.pom.qualifier.DACartographerCore; import org.jboss.da.model.rest.GA; import org.jboss.da.model.rest.GAV; import org.slf4j.Logger; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; - import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -48,8 +45,10 @@ public class PomAnalyzerImpl implements PomAnalyzer { private PomReader pomReader; @Inject - @DACartographerCore - private CartographerCore carto; + MavenPomReader mavenPomReader; + + @Inject + TypeMapper typeMapper; @Inject private Configuration config; @@ -67,7 +66,7 @@ public class PomAnalyzerImpl implements PomAnalyzer { public GAVDependencyTree readRelationships(File pomRepoDir, String pomPath, List repositories) throws PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), pomRepoDir, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, pomRepoDir, disConf, processor)) { GalleyWrapper.Artifact pom = gw.getPom(pomPath); gw.addLocations(repositories); @@ -79,7 +78,7 @@ public GAVDependencyTree readRelationships(File pomRepoDir, String pomPath, List @Override public GAVDependencyTree readRelationships(File pomRepoDir, GAV gav) throws PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), pomRepoDir, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, pomRepoDir, disConf, processor)) { GalleyWrapper.Artifact artifact = gw.getGAV(gav); return readRelationships(gw, artifact); @@ -99,14 +98,14 @@ private GAVDependencyTree readRelationships(GalleyWrapper gw, GalleyWrapper.Arti GAV originGAV = a.getGAV(); return dtb.getDependencyTree(relationships, originGAV, false, false); - } catch (CartoDataException | GalleyMavenException | IOException ex) { + } catch (GalleyMavenException | IOException ex) { throw new PomAnalysisException(ex); } } @Override public Set getToplevelDepency(File pomRepoDir, GAV gav) throws PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), pomRepoDir, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, pomRepoDir, disConf, processor)) { GalleyWrapper.Artifact artifact = gw.getGAV(gav); gw.addDefaultLocations(config); @@ -121,7 +120,7 @@ public Set getToplevelDepency(File pomRepoDir, GAV gav) throws PomAnalysisE @Override public Set getToplevelDepency(File pomRepoDir, String pomPath, List repositories) throws PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), pomRepoDir, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, pomRepoDir, disConf, processor)) { GalleyWrapper.Artifact artifact = gw.getPom(pomPath); gw.addLocations(repositories); @@ -151,7 +150,7 @@ public Optional getPOMFileForGAV(File pomRepoDir, GAV gav) { @Override public MavenPomView getGitPomView(File repoDir, String pomPath, List repositories) throws PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), repoDir, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, repoDir, disConf, processor)) { GalleyWrapper.Artifact pom = gw.getPom(pomPath); gw.addDefaultLocations(config); gw.addLocationsFromPoms(pomReader); @@ -182,7 +181,6 @@ public MavenPomView getMavenPomView(InputStream is) throws ConfigurationParseExc List repos = new ArrayList<>(); repos.add(repoLocation); - MavenPomReader mavenPomReader = carto.getGalley().getPomReader(); MavenPomView pomView = mavenPomReader.read(pom.getKey(), repos); return pomView; @@ -191,7 +189,7 @@ public MavenPomView getMavenPomView(InputStream is) throws ConfigurationParseExc @Override public Map> getDependenciesOfModules(File scmDir, String pomPath, List repositories) throws PomAnalysisException { - try (GalleyWrapper wrapper = new GalleyWrapper(carto.getGalley(), scmDir, disConf, processor)) { + try (GalleyWrapper wrapper = new GalleyWrapper(mavenPomReader, typeMapper, scmDir, disConf, processor)) { wrapper.addDefaultLocations(config); wrapper.addLocations(repositories); wrapper.addLocationsFromPoms(pomReader); diff --git a/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java b/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java index e6a9778b2..85a9ed1a4 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java @@ -2,9 +2,9 @@ import java.util.Comparator; -import org.commonjava.maven.atlas.graph.rel.DependencyRelationship; -import org.commonjava.maven.atlas.ident.ref.ArtifactRef; -import org.commonjava.maven.atlas.ident.ref.ProjectRef; +import org.commonjava.atlas.maven.graph.rel.DependencyRelationship; +import org.commonjava.atlas.maven.ident.ref.ArtifactRef; +import org.commonjava.atlas.maven.ident.ref.ProjectRef; import org.jboss.da.communication.indy.model.GAVDependencyTree; import org.jboss.da.communication.pom.GalleyWrapper; import org.jboss.da.model.rest.GAV; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/qualifier/DACartographerCore.java b/communication/src/main/java/org/jboss/da/communication/pom/qualifier/DACartographerCore.java deleted file mode 100644 index 152a8290d..000000000 --- a/communication/src/main/java/org/jboss/da/communication/pom/qualifier/DACartographerCore.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.jboss.da.communication.pom.qualifier; - -import java.lang.annotation.ElementType; -import javax.inject.Qualifier; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * The Cartographer library already provides an @Produces for CartographerCore, which sadly returns null. We need to add - * a Qualifier to the @Produces in CartographerProducer to help Weld pick our cartographer producer over the one in the - * Cartographer library. - */ -@Qualifier -@Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.FIELD, ElementType.METHOD }) -public @interface DACartographerCore { -} diff --git a/pom.xml b/pom.xml index 36299d081..da831be45 100644 --- a/pom.xml +++ b/pom.xml @@ -84,9 +84,10 @@ 3.4.2 3.4.1-SNAPSHOT 3.4.2 - 0.16.2 - 0.13.4 - 0.12.2 + 1.1.9 + + + 1.3 11 11 7.4.3.GA @@ -245,9 +246,9 @@ - org.commonjava.cartographer - cartographer - ${version.cartographer} + org.commonjava.maven.galley + galley-maven + ${version.galley} org.apache.httpcomponents @@ -257,8 +258,19 @@ org.commonjava.maven.galley - galley-cdi-embedder + galley-transport-filearc + ${version.galley} + + + org.commonjava.maven.galley + galley-transport-httpclient ${version.galley} + + + org.apache.httpcomponents + * + + org.commonjava.maven.galley @@ -266,7 +278,7 @@ ${version.galley} - org.commonjava.maven.atlas + org.commonjava.atlas atlas-identities ${atlasVersion} diff --git a/testsuite/pom.xml b/testsuite/pom.xml index 4048216bf..b4dab9cf7 100644 --- a/testsuite/pom.xml +++ b/testsuite/pom.xml @@ -29,7 +29,7 @@ pncmetrics - org.commonjava.maven.atlas + org.commonjava.atlas atlas-identities diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java index 10df9e672..3977a13ac 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java @@ -1,12 +1,10 @@ package org.jboss.da.test.server.communication; -import org.jboss.da.test.server.AbstractServerTest; import org.apache.maven.scm.ScmException; -import org.commonjava.cartographer.CartoDataException; -import org.commonjava.cartographer.CartographerCore; -import org.commonjava.maven.galley.maven.GalleyMavenException; +import org.commonjava.maven.galley.maven.parse.MavenPomReader; import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; +import org.commonjava.maven.galley.maven.spi.type.TypeMapper; import org.jboss.arquillian.junit.Arquillian; import org.jboss.da.common.util.Configuration; import org.jboss.da.communication.indy.model.GAVDependencyTree; @@ -14,27 +12,25 @@ import org.jboss.da.communication.pom.PomAnalysisException; import org.jboss.da.communication.pom.PomReader; import org.jboss.da.communication.pom.api.PomAnalyzer; -import org.jboss.da.communication.pom.qualifier.DACartographerCore; import org.jboss.da.model.rest.GAV; import org.jboss.da.scm.api.SCM; import org.jboss.da.scm.api.SCMType; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - +import org.jboss.da.test.server.AbstractServerTest; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import javax.inject.Inject; - import java.io.File; import java.io.IOException; import java.util.Collections; import java.util.HashSet; import java.util.Set; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + /** * * @author Honza Brázdil <jbrazdil@redhat.com> @@ -54,8 +50,10 @@ public class GalleyWrapperTestIT extends AbstractServerTest { private SCM scm; @Inject - @DACartographerCore - private CartographerCore carto; + MavenPomReader mavenPomReader; + + @Inject + TypeMapper typeMapper; @Inject private PomReader pomReader; @@ -89,8 +87,7 @@ private void printDeptree(GAVDependencyTree tree, String prefix) { } @Test - public void testReadRelationships() - throws IOException, PomAnalysisException, GalleyMavenException, CartoDataException { + public void testReadRelationships() throws PomAnalysisException { long start = System.nanoTime(); GAVDependencyTree readRelationships = pomAnalyzer .readRelationships(clonedRepository, "application/pom.xml", Collections.emptyList()); @@ -103,7 +100,7 @@ public void testReadRelationships() @Test public void testGetPom() throws IOException, PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), clonedRepository, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, clonedRepository, disConf, processor)) { GalleyWrapper.Artifact parent = gw.getPom("pom.xml"); assertEquals(PARENT_GAV, parent.getGAV()); @@ -116,7 +113,7 @@ public void testGetPom() throws IOException, PomAnalysisException { @Test public void testGetModules() throws IOException, PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), clonedRepository, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, clonedRepository, disConf, processor)) { GalleyWrapper.Artifact parent = gw.getPom("pom.xml"); Set modules = gw.getModules(parent); @@ -149,7 +146,7 @@ public void testGetModules() throws IOException, PomAnalysisException { @Test public void testGetDependencies() throws IOException, PomAnalysisException { - try (GalleyWrapper gw = new GalleyWrapper(carto.getGalley(), clonedRepository, disConf, processor)) { + try (GalleyWrapper gw = new GalleyWrapper(mavenPomReader, typeMapper, clonedRepository, disConf, processor)) { gw.addDefaultLocations(config); gw.addLocationsFromPoms(pomReader);