Return-Path: Delivered-To: apmail-karaf-commits-archive@minotaur.apache.org Received: (qmail 32515 invoked from network); 2 Jul 2010 12:28:32 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 2 Jul 2010 12:28:32 -0000 Received: (qmail 11976 invoked by uid 500); 2 Jul 2010 12:28:32 -0000 Delivered-To: apmail-karaf-commits-archive@karaf.apache.org Received: (qmail 11953 invoked by uid 500); 2 Jul 2010 12:28:32 -0000 Mailing-List: contact commits-help@karaf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@karaf.apache.org Delivered-To: mailing list commits@karaf.apache.org Received: (qmail 11945 invoked by uid 99); 2 Jul 2010 12:28:31 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jul 2010 12:28:31 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jul 2010 12:28:28 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id EFEFA23888EA; Fri, 2 Jul 2010 12:27:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r959962 - in /karaf/trunk: assembly/src/main/filtered-resources/etc/ shell/obr/ shell/obr/src/main/java/org/apache/karaf/shell/obr/ Date: Fri, 02 Jul 2010 12:27:34 -0000 To: commits@karaf.apache.org From: gnodet@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100702122734.EFEFA23888EA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 @@ + commons-logging + commons-logging + 1.1.1 + + + commons-collections + commons-collections + 3.2.1 + + + commons-lang + commons-lang + 2.5 + + org.apache.felix org.osgi.core provided 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); } }