Author: gnodet
Date: Mon Oct 12 09:19:40 2009
New Revision: 824271

URL: http://svn.apache.org/viewvc?rev=824271&view=rev
Log:
FELIX-1626: Configurations loaded from the etc/ directory are only available 
after a delay

Modified:
    felix/trunk/karaf/assembly/src/main/filtered-resources/etc/config.properties
    
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties
    felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java

Modified: 
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/config.properties
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/filtered-resources/etc/config.properties?rev=824271&r1=824270&r2=824271&view=diff
==============================================================================
--- 
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/config.properties 
(original)
+++ 
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/config.properties 
Mon Oct 12 09:19:40 2009
@@ -57,6 +57,7 @@
 felix.fileinstall.dir    = ${karaf.base}/etc
 felix.fileinstall.filter = .*\\.cfg
 felix.fileinstall.poll   = 1000
+felix.fileinstall.noInitialDelay = true
 
 #
 # Hack for FELIX-1628

Modified: 
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties?rev=824271&r1=824270&r2=824271&view=diff
==============================================================================
--- 
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties 
(original)
+++ 
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties 
Mon Oct 12 09:19:40 2009
@@ -23,13 +23,13 @@
 #
 # Startup core services like logging
 #
-org/apache/felix/org.apache.felix.fileinstall/${felix.fileinstall.version}/org.apache.felix.fileinstall-${felix.fileinstall.version}.jar=5
 
org/ops4j/pax/url/pax-url-mvn/${pax.url.version}/pax-url-mvn-${pax.url.version}.jar=5
 
org/ops4j/pax/url/pax-url-wrap/${pax.url.version}/pax-url-wrap-${pax.url.version}.jar=5
 
org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar=8
 
org/ops4j/pax/logging/pax-logging-service/${pax.logging.version}/pax-logging-service-${pax.logging.version}.jar=8
 
org/apache/felix/org.apache.felix.configadmin/${felix.configadmin.version}/org.apache.felix.configadmin-${felix.configadmin.version}.jar=10
 
org/apache/felix/org.apache.felix.prefs/${felix.prefs.version}/org.apache.felix.prefs-${felix.prefs.version}.jar=10
+org/apache/felix/org.apache.felix.fileinstall/${felix.fileinstall.version}/org.apache.felix.fileinstall-${felix.fileinstall.version}.jar=11
 
 #
 # The rest of the services..

Modified: 
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java?rev=824271&r1=824270&r2=824271&view=diff
==============================================================================
--- felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java 
(original)
+++ felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java 
Mon Oct 12 09:19:40 2009
@@ -470,7 +470,6 @@
                                 Bundle b = context.installBundle(parts[0], new 
URL(parts[1]).openStream());
                                 if (b != null) {
                                     b.start();
-                                    checkCmProperties(b);
                                 }
                             }
                             catch (Exception ex) {
@@ -484,59 +483,6 @@
         }
     }
 
-    /**
-     * TODO: remove this hack when FELIX-1628 is properly implemented
-     * Hack for FELIX-1626.
-     * FileInstall has some delay before installing the configurations which 
can cause some problems
-     *
-     * @param b
-     */
-    private void checkCmProperties(final Bundle b) {
-        final String cmDir = (String) configProps.get(PROPERTY_CM_DIRECTORY);
-        if (cmProcessed || cmDir == null) {
-            return;
-        }
-        try {
-            // Try to load fileinstall internal classes.
-            // Those are not exported, so this mean if the load succeeds, we 
have the fileinstall bundle
-            final Class ciClass = 
b.loadClass("org.apache.felix.fileinstall.internal.ConfigInstaller");
-            final Class fiClass = 
b.loadClass("org.apache.felix.fileinstall.internal.FileInstall");
-            // If we have been able to load the classes, start a thread that 
will wait until
-            // fileinstall is correctly configured using config admin and push 
all configs.
-            new Thread() {
-                public void run() {
-                    for (int i = 0; !cmProcessed && i < 100; i++) {
-                        try {
-                            Thread.sleep(50);
-                            Method mth = 
fiClass.getDeclaredMethod("getConfigurationAdmin", long.class);
-                            mth.setAccessible(true);
-                            if (mth.invoke(null, 0) != null) {
-                                Constructor cns = 
ciClass.getDeclaredConstructor(BundleContext.class);
-                                cns.setAccessible(true);
-                                Object ci = 
cns.newInstance(b.getBundleContext());
-                                mth = ciClass.getDeclaredMethod("setConfig", 
File.class);
-                                mth.setAccessible(true);
-                                cmProcessed = true;
-//                                System.err.println("Found ready 
FileInstall");
-                                for (File f : new File(cmDir).listFiles()) {
-                                    if (f.getName().endsWith(".cfg")) {
-//                                        System.err.println("Processing: " + 
f.getName());
-                                        mth.invoke(ci, f);
-                                    }
-                                }
-                            }
-                        } catch (Throwable t) {
-                            if (cmProcessed) {
-                                t.printStackTrace();
-                            }
-                        }
-                    }
-                }
-            }.start();
-        } catch (Throwable t) {
-        }
-    }
-
     private static String[] convertToMavenUrlsIfNeeded(String location, 
boolean convertToMavenUrls) {
         String[] parts = location.split("\\|");
         if (convertToMavenUrls) {


Reply via email to