Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Erdfelt2014-11-14 19:15:07 +0000
committerJoakim Erdfelt2014-11-14 19:15:07 +0000
commit453ab6d5c7852c73dc7cf107ea79902a43445c77 (patch)
treedca25ad6b2c1f9617fe6af31278815e81dc20c39 /jetty-start
parent28059d96446ec9fa6ec4f8e59b3a03b3402e2257 (diff)
downloadorg.eclipse.jetty.project-453ab6d5c7852c73dc7cf107ea79902a43445c77.tar.gz
org.eclipse.jetty.project-453ab6d5c7852c73dc7cf107ea79902a43445c77.tar.xz
org.eclipse.jetty.project-453ab6d5c7852c73dc7cf107ea79902a43445c77.zip
Supporting optional use of maven local repository for download content
Diffstat (limited to 'jetty-start')
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/Main.java18
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java42
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java1
3 files changed, 58 insertions, 3 deletions
diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
index 721db48b14..33ee63035b 100644
--- a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
+++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
@@ -749,8 +749,22 @@ public class Main
}
else
{
- // Downloads performed
- fileInitializers.add(new MavenLocalRepoFileInitializer());
+ // Downloads are allowed to be performed
+
+ // Setup Maven Local Repo
+ Path localRepoDir = args.getMavenLocalRepoDir();
+ if (localRepoDir != null)
+ {
+ // Use provided local repo directory
+ fileInitializers.add(new MavenLocalRepoFileInitializer(localRepoDir));
+ }
+ else
+ {
+ // No no local repo directory (direct downloads)
+ fileInitializers.add(new MavenLocalRepoFileInitializer());
+ }
+
+ // Normal URL downloads
fileInitializers.add(new UriFileInitializer());
}
diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java
index 2077f2d677..41ac0e7ad9 100644
--- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java
+++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java
@@ -23,6 +23,7 @@ import static org.eclipse.jetty.start.UsageException.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
@@ -555,6 +556,46 @@ public class StartArgs
return System.getProperty("main.class",mainclass);
}
+ public Path getMavenLocalRepoDir()
+ {
+ // Try property first
+ String localRepo = getProperties().getString("maven.local.repo");
+
+ if (Utils.isBlank(localRepo))
+ {
+ // Try jetty specific env variable
+ localRepo = System.getenv("JETTY_MAVEN_LOCAL_REPO");
+ }
+
+ if (Utils.isBlank(localRepo))
+ {
+ // Try generic env variable
+ localRepo = System.getenv("MAVEN_LOCAL_REPO");
+ }
+
+ // TODO: load & use $HOME/.m2/settings.xml ?
+ // TODO: possibly use Eclipse Aether to manage it ?
+ // TODO: see https://bugs.eclipse.org/bugs/show_bug.cgi?id=449511
+
+ // Still blank? then its not specified
+ if (Utils.isBlank(localRepo))
+ {
+ return null;
+ }
+
+ Path localRepoDir = new File(localRepo).toPath();
+ localRepoDir = localRepoDir.normalize().toAbsolutePath();
+ if (Files.exists(localRepoDir) && Files.isDirectory(localRepoDir))
+ {
+ return localRepoDir;
+ }
+
+ StartLog.warn("Not a valid maven local repository directory: %s",localRepoDir);
+
+ // Not a valid repository directory, skip it
+ return null;
+ }
+
public String getModuleGraphFilename()
{
return moduleGraphFilename;
@@ -1050,5 +1091,4 @@ public class StartArgs
builder.append("]");
return builder.toString();
}
-
}
diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java
index 6aca80597e..f48b3777fd 100644
--- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java
+++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java
@@ -112,6 +112,7 @@ public class MavenLocalRepoFileInitializer extends UriFileInitializer implements
// Grab copy from local repository (download if needed to local
// repository)
Path localRepoFile = getLocalRepoFile(coords);
+ StartLog.log("COPY","%s to %s",localRepoFile,file);
Files.copy(localRepoFile,file);
}
else

Back to the top