Revision: 19743
http://sourceforge.net/p/gate/code/19743
Author: markagreenwood
Date: 2016-11-17 00:48:30 +0000 (Thu, 17 Nov 2016)
Log Message:
-----------
move some of the maven stuff in PLugin into a util method so we can more easily
reuse it in the cache impl
Modified Paths:
--------------
gate/branches/sawdust2/gate-core/src/main/java/gate/Plugin.java
gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/SimpleMavenCache.java
gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/Utils.java
Modified: gate/branches/sawdust2/gate-core/src/main/java/gate/Plugin.java
===================================================================
--- gate/branches/sawdust2/gate-core/src/main/java/gate/Plugin.java
2016-11-16 17:58:23 UTC (rev 19742)
+++ gate/branches/sawdust2/gate-core/src/main/java/gate/Plugin.java
2016-11-17 00:48:30 UTC (rev 19743)
@@ -14,9 +14,9 @@
package gate;
+import static gate.util.maven.Utils.getRepositoryList;
import static gate.util.maven.Utils.getRepositorySession;
import static gate.util.maven.Utils.getRepositorySystem;
-import static gate.util.maven.Utils.loadMavenSettings;
import java.io.File;
import java.io.IOException;
@@ -57,7 +57,6 @@
import org.apache.maven.model.building.ModelBuildingRequest;
import org.apache.maven.settings.Profile;
import org.apache.maven.settings.Repository;
-import org.apache.maven.settings.Settings;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
@@ -508,31 +507,11 @@
new DefaultArtifact(group, artifact, "jar", version);
Dependency dependency = new Dependency(artifactObj, "runtime");
- RemoteRepository central =
- new RemoteRepository.Builder("central", "default",
- "http://repo1.maven.org/maven2/").build();
- ArtifactRequest artifactRequest = new ArtifactRequest();
- artifactRequest.setArtifact(artifactObj);
+ List<RemoteRepository> repos = getRepositoryList();
- //is this needed now we load the settings file?
- artifactRequest.addRepository(central);
-
- // Add all repos from settings.xml
- //
http://stackoverflow.com/questions/27818659/loading-mavens-settings-xml-for-jcabi-aether-to-use
- Settings effectiveSettings = loadMavenSettings();
- Map<String, Profile> profilesMap = effectiveSettings.getProfilesAsMap();
- for(String profileName : effectiveSettings.getActiveProfiles()) {
- Profile profile = profilesMap.get(profileName);
- List<Repository> repositories = profile.getRepositories();
- for(Repository repo : repositories) {
- RemoteRepository remoteRepo =
- new RemoteRepository.Builder(repo.getId(), "default",
- repo.getUrl()).build();
- artifactRequest.addRepository(remoteRepo);
- }
- }
-
+ ArtifactRequest artifactRequest = new ArtifactRequest(artifactObj,
repos, null);
+
RepositorySystem repoSystem = getRepositorySystem();
RepositorySystemSession repoSession = getRepositorySession(repoSystem);
@@ -557,20 +536,8 @@
+ " does not exist so this artifact is not a GATE plugin");
}
- CollectRequest collectRequest = new CollectRequest();
- collectRequest.setRoot(dependency);
- collectRequest.addRepository(central);
- for(String profileName : effectiveSettings.getActiveProfiles()) {
- Profile profile = profilesMap.get(profileName);
- List<Repository> repositories = profile.getRepositories();
- for(Repository repo : repositories) {
- RemoteRepository remoteRepo =
- new RemoteRepository.Builder(repo.getId(), "default",
- repo.getUrl()).build();
- collectRequest.addRepository(remoteRepo);
- }
- }
-
+ CollectRequest collectRequest = new CollectRequest(dependency,repos);
+
DependencyNode node =
repoSystem.collectDependencies(repoSession,
collectRequest).getRoot();
@@ -590,9 +557,8 @@
Element creoleRoot = jdomDoc.getRootElement();
- for(ArtifactResult ar : result.getArtifactResults()) {
+ for(ArtifactResult ar : result.getArtifactResults()) {
-
Element jarElement = new Element("JAR");
jarElement.setText(ar.getArtifact().getFile().toURI().toURL()
.toExternalForm());
Modified:
gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/SimpleMavenCache.java
===================================================================
---
gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/SimpleMavenCache.java
2016-11-16 17:58:23 UTC (rev 19742)
+++
gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/SimpleMavenCache.java
2016-11-17 00:48:30 UTC (rev 19743)
@@ -8,6 +8,7 @@
import org.apache.commons.io.FileUtils;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.repository.WorkspaceReader;
import org.eclipse.aether.repository.WorkspaceRepository;
@@ -65,7 +66,13 @@
}
public void cacheArtifact(Artifact artifact) throws IOException {
+ cacheArtifact(artifact,false);
+ }
+
+ public void cacheArtifact(Artifact artifact, boolean includeDependencies)
throws IOException {
+
+
File file = getArtifactFile(artifact);
@@ -81,6 +88,11 @@
}
public static void main(String args[]) throws Exception {
+
+ for (RemoteRepository repo : Utils.getRepositoryList()) {
+ System.out.println(repo);
+ }
+
Artifact artifactObj = new DefaultArtifact("uk.ac.gate.plugins", "annie",
"jar", "9.0-SNAPSHOT");
artifactObj = artifactObj.setFile(new
File("/home/mark/.m2/repository/uk/ac/gate/plugins/annie/9.0-SNAPSHOT/annie-9.0-SNAPSHOT.jar"));
Modified:
gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/Utils.java
===================================================================
--- gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/Utils.java
2016-11-16 17:58:23 UTC (rev 19742)
+++ gate/branches/sawdust2/gate-core/src/main/java/gate/util/maven/Utils.java
2016-11-17 00:48:30 UTC (rev 19743)
@@ -1,9 +1,14 @@
package gate.util.maven;
import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
+import org.apache.maven.settings.Profile;
+import org.apache.maven.settings.Repository;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.building.DefaultSettingsBuilder;
import org.apache.maven.settings.building.DefaultSettingsBuilderFactory;
@@ -14,9 +19,11 @@
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
@@ -65,6 +72,38 @@
return effectiveSettings;
}
+ public static List<RemoteRepository> getRepositoryList() throws
SettingsBuildingException {
+
+ List<RemoteRepository> repos = new ArrayList<RemoteRepository>();
+
+ RemoteRepository central =
+ new RemoteRepository.Builder("central", "default",
+ "http://repo1.maven.org/maven2/").build();
+
+ repos.add(central);
+
+ // Add all repos from settings.xml
+ //
http://stackoverflow.com/questions/27818659/loading-mavens-settings-xml-for-jcabi-aether-to-use
+ Settings effectiveSettings = loadMavenSettings();
+ Map<String, Profile> profilesMap = effectiveSettings.getProfilesAsMap();
+ for(String profileName : effectiveSettings.getActiveProfiles()) {
+ Profile profile = profilesMap.get(profileName);
+ List<Repository> repositories = profile.getRepositories();
+ for(Repository repo : repositories) {
+ RemoteRepository remoteRepo =
+ new RemoteRepository.Builder(repo.getId(), "default",
+ repo.getUrl()).build();
+ repos.add(remoteRepo);
+ }
+ }
+
+ return repos;
+ }
+
+ public Artifact getArtifact() {
+ return null;
+ }
+
public static RepositorySystem getRepositorySystem() {
DefaultServiceLocator locator =
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs