You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2010/07/02 14:27:34 UTC
svn commit: r959962 - in /karaf/trunk:
assembly/src/main/filtered-resources/etc/ shell/obr/
shell/obr/src/main/java/org/apache/karaf/shell/obr/
Author: gnodet
Date: Fri Jul 2 12:27:34 2010
New Revision: 959962
URL: http://svn.apache.org/viewvc?rev=959962&view=rev
Log:
KARAF-100: the list of OBR repositories is not persisted
Modified:
karaf/trunk/assembly/src/main/filtered-resources/etc/config.properties
karaf/trunk/shell/obr/pom.xml
karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/AddUrlCommand.java
karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/ObrCommandSupport.java
karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/RemoveUrlCommand.java
Modified: karaf/trunk/assembly/src/main/filtered-resources/etc/config.properties
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/src/main/filtered-resources/etc/config.properties?rev=959962&r1=959961&r2=959962&view=diff
==============================================================================
--- karaf/trunk/assembly/src/main/filtered-resources/etc/config.properties (original)
+++ karaf/trunk/assembly/src/main/filtered-resources/etc/config.properties Fri Jul 2 12:27:34 2010
@@ -74,6 +74,11 @@ felix.fileinstall.noInitialDelay = true
eclipse.stateSaveDelayInterval = 1000
#
+# OBR Repository list
+#
+obr.repository.url =
+
+#
# Java platform package export properties.
#
Modified: karaf/trunk/shell/obr/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/obr/pom.xml?rev=959962&r1=959961&r2=959962&view=diff
==============================================================================
--- karaf/trunk/shell/obr/pom.xml (original)
+++ karaf/trunk/shell/obr/pom.xml Fri Jul 2 12:27:34 2010
@@ -42,6 +42,21 @@
<dependencies>
<dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
Modified: karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/AddUrlCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/AddUrlCommand.java?rev=959962&r1=959961&r2=959962&view=diff
==============================================================================
--- karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/AddUrlCommand.java (original)
+++ karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/AddUrlCommand.java Fri Jul 2 12:27:34 2010
@@ -32,5 +32,6 @@ public class AddUrlCommand extends ObrCo
for (String url : urls) {
admin.addRepository(url);
}
+ persistRepositoryList(admin);
}
}
Modified: karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/ObrCommandSupport.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/ObrCommandSupport.java?rev=959962&r1=959961&r2=959962&view=diff
==============================================================================
--- karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/ObrCommandSupport.java (original)
+++ karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/ObrCommandSupport.java Fri Jul 2 12:27:34 2010
@@ -16,10 +16,12 @@
*/
package org.apache.karaf.shell.obr;
-import java.io.PrintStream;
+import java.io.*;
import java.util.List;
+import java.util.Properties;
import org.apache.felix.bundlerepository.Reason;
+import org.apache.felix.bundlerepository.Repository;
import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Requirement;
import org.apache.felix.bundlerepository.Resolver;
@@ -249,4 +251,63 @@ public abstract class ObrCommandSupport
return reqs;
}
+ public static final String REPOSITORY_URL_PROP = "obr.repository.url";
+
+ protected void persistRepositoryList(RepositoryAdmin admin) {
+ try {
+ StringBuilder sb = new StringBuilder();
+ for (Repository repo : admin.listRepositories()) {
+ if (sb.length() > 0) {
+ sb.append(",");
+ }
+ sb.append(repo.getURI());
+ }
+ File base = new File(System.getProperty("karaf.base"));
+ File sys = new File(base, "etc/config.properties");
+ File sysTmp = new File(base, "etc/config.properties.tmp");
+
+ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(sysTmp)));
+ boolean modified = false;
+ try {
+ if (sys.exists()) {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(sys)));
+ try {
+ String line = reader.readLine();
+ while (line != null) {
+ if (line.matches("obr\\.repository\\.url[:= ].*")) {
+ modified = true;
+ line = "obr.repository.url = " + sb.toString();
+ }
+ writer.write(line);
+ writer.newLine();
+ line = reader.readLine();
+ }
+ } finally {
+ reader.close();
+ }
+ }
+ if (!modified) {
+ writer.newLine();
+ writer.write("# ");
+ writer.newLine();
+ writer.write("# OBR Repository list");
+ writer.newLine();
+ writer.write("# ");
+ writer.newLine();
+ writer.write("obr.repository.url = " + sb.toString());
+ writer.newLine();
+ writer.newLine();
+ }
+ } finally {
+ writer.close();
+ }
+
+ sys.delete();
+ sysTmp.renameTo(sys);
+
+ } catch (Exception e) {
+ System.err.println("Error while persisting repository list");
+ }
+ }
+
}
Modified: karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/RemoveUrlCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/RemoveUrlCommand.java?rev=959962&r1=959961&r2=959962&view=diff
==============================================================================
--- karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/RemoveUrlCommand.java (original)
+++ karaf/trunk/shell/obr/src/main/java/org/apache/karaf/shell/obr/RemoveUrlCommand.java Fri Jul 2 12:27:34 2010
@@ -32,5 +32,6 @@ public class RemoveUrlCommand extends Ob
for (String url : urls) {
admin.removeRepository(url);
}
+ persistRepositoryList(admin);
}
}