Author: marrs
Date: Tue Feb  7 23:41:54 2012
New Revision: 1241703

URL: http://svn.apache.org/viewvc?rev=1241703&view=rev
Log:
FELIX-3329 FELIX-3330 Some small fixes and a lot of extra debug logging, added 
until we get coverage and confidence in the new code up. Renamed the TestUtils 
to Utils because they were being picked up as tests (having Test in the name).

Added:
    
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/Utils.java
   (contents, props changed)
      - copied, changed from r1241559, 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/TestUtils.java
Removed:
    
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/TestUtils.java
Modified:
    
felix/trunk/deploymentadmin/autoconf/src/main/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessor.java
    
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessorTest.java

Modified: 
felix/trunk/deploymentadmin/autoconf/src/main/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessor.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/deploymentadmin/autoconf/src/main/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessor.java?rev=1241703&r1=1241702&r2=1241703&view=diff
==============================================================================
--- 
felix/trunk/deploymentadmin/autoconf/src/main/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessor.java
 (original)
+++ 
felix/trunk/deploymentadmin/autoconf/src/main/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessor.java
 Tue Feb  7 23:41:54 2012
@@ -92,6 +92,7 @@ public class AutoConfResourceProcessor i
        }
        
     public void begin(DeploymentSession session) {
+        m_log.log(LogService.LOG_DEBUG, "beginning session " + session);
         synchronized (LOCK) {
             if (m_session != null) {
                 throw new IllegalArgumentException("Trying to begin new 
deployment session while already in one.");
@@ -99,13 +100,15 @@ public class AutoConfResourceProcessor i
             if (session == null) {
                 throw new IllegalArgumentException("Trying to begin new 
deployment session with a null session.");
             }
+            if (m_toBeInstalled.size() > 0 || m_toBeDeleted.size() > 0 || 
m_configurationAdminTasks.size() > 0 || m_postCommitTasks.size() > 0) {
+                throw new IllegalStateException("State not reset correctly at 
start of session.");
+            }
             m_session = session;
-            m_toBeInstalled.clear();
-            m_toBeDeleted.clear();
         }
     }
  
     public void process(String name, InputStream stream) throws 
ResourceProcessorException {
+        m_log.log(LogService.LOG_DEBUG, "processing " + name);
         // initial validation
         synchronized (LOCK) {
             if (m_session == null) {
@@ -167,9 +170,11 @@ public class AutoConfResourceProcessor i
             List resources = (List) m_toBeInstalled.get(name);
             resources.add(new AutoConfResource(name, designate.getPid(), 
designate.getFactoryPid(), designate.getBundleLocation(), designate.isMerge(), 
dict, filter));
         }
+        m_log.log(LogService.LOG_DEBUG, "processing " + name + " done");
     }
 
     public void dropped(String name) throws ResourceProcessorException {
+        m_log.log(LogService.LOG_DEBUG, "dropped " + name);
         synchronized (LOCK) {
                if (m_session == null) {
                        throw new 
ResourceProcessorException(ResourceProcessorException.CODE_OTHER_ERROR, "Can 
not process resource without a Deployment Session");
@@ -185,9 +190,11 @@ public class AutoConfResourceProcessor i
        catch (IOException ioe) {
                throw new 
ResourceProcessorException(ResourceProcessorException.CODE_OTHER_ERROR, "Unable 
to drop resource: " + name, ioe);
        }
+        m_log.log(LogService.LOG_DEBUG, "dropped " + name + " done");
     }
 
     public void dropAllResources() throws ResourceProcessorException {
+        m_log.log(LogService.LOG_DEBUG, "drop all resources");
         synchronized (LOCK) {
                if (m_session == null) {
                        throw new 
ResourceProcessorException(ResourceProcessorException.CODE_OTHER_ERROR, "Can 
not drop all resources without a Deployment Session");
@@ -214,18 +221,21 @@ public class AutoConfResourceProcessor i
        else {
                throw new 
ResourceProcessorException(ResourceProcessorException.CODE_OTHER_ERROR, "Unable 
to drop resources, data area is not accessible");
        }
+        m_log.log(LogService.LOG_DEBUG, "drop all resources done");
     }
     
     private List m_configurationAdminTasks = new ArrayList();
     private List m_postCommitTasks = new ArrayList();
 
     public void prepare() throws ResourceProcessorException {
+        m_log.log(LogService.LOG_DEBUG, "prepare");
         synchronized (LOCK) {
                if (m_session == null) {
                        throw new 
ResourceProcessorException(ResourceProcessorException.CODE_OTHER_ERROR, "Can 
not process resource without a Deployment Session");
                }
         }
        try {
+            m_log.log(LogService.LOG_DEBUG, "prepare delete");
                // delete dropped resources
                for (Iterator i = m_toBeDeleted.keySet().iterator(); 
i.hasNext();) {
                        String name = (String) i.next();
@@ -237,6 +247,7 @@ public class AutoConfResourceProcessor i
                        m_postCommitTasks.add(new DeleteResourceTask(name));
                }
 
+            m_log.log(LogService.LOG_DEBUG, "prepare install/update");
                // install new/updated resources
                for (Iterator j = m_toBeInstalled.keySet().iterator(); 
j.hasNext();) {
                        String name = (String) j.next();
@@ -250,9 +261,7 @@ public class AutoConfResourceProcessor i
                        List resources = (List) m_toBeInstalled.get(name);
                        for (Iterator iterator = resources.iterator(); 
iterator.hasNext();) {
                                AutoConfResource resource = (AutoConfResource) 
iterator.next();
-                               
                                m_configurationAdminTasks.add(new 
InstallOrUpdateResourceTask(resource));
-
                        }
                        // remove existing configurations that were not in the 
new version of the resource
                        for (Iterator i = existingResources.iterator(); 
i.hasNext();) {
@@ -272,18 +281,22 @@ public class AutoConfResourceProcessor i
                m_toBeInstalled.clear();
                throw new 
ResourceProcessorException(ResourceProcessorException.CODE_PREPARE, "Unable to 
prepare for commit for resource", ioe);
        }
+        m_log.log(LogService.LOG_DEBUG, "prepare done");
     }
 
     public synchronized void commit() {
+        m_log.log(LogService.LOG_DEBUG, "commit");
         DependencyManager dm = m_component.getDependencyManager();
         m_configurationAdminDependency = dm.createServiceDependency()
             .setService(ConfigurationAdmin.class)
             .setCallbacks("addConfigurationAdmin", null)
             .setRequired(false);
         m_component.add(m_configurationAdminDependency);
+        m_log.log(LogService.LOG_DEBUG, "commit done");
     }
     
     public void addConfigurationAdmin(ServiceReference ref, ConfigurationAdmin 
ca) {
+        m_log.log(LogService.LOG_DEBUG, "found configuration admin " + ref);
         Iterator iterator = m_configurationAdminTasks.iterator();
         while (iterator.hasNext()) {
             ConfigurationAdminTask task = (ConfigurationAdminTask) 
iterator.next();
@@ -306,9 +319,11 @@ public class AutoConfResourceProcessor i
                 m_log.log(LogService.LOG_ERROR, "Exception during 
configuration to " + ca + ". Trying to continue.", e);
             }
         }
+        m_log.log(LogService.LOG_DEBUG, "found configuration admin " + ref + " 
done");
     }
     
     public void postcommit() {
+        m_log.log(LogService.LOG_DEBUG, "post commit");
         m_component.remove(m_configurationAdminDependency);
         Iterator iterator = m_postCommitTasks.iterator();
         while (iterator.hasNext()) {
@@ -320,15 +335,20 @@ public class AutoConfResourceProcessor i
                 m_log.log(LogService.LOG_ERROR, "Exception during post commit 
wrap-up. Trying to continue.", e);
             }
         }
+        endSession();
+        m_log.log(LogService.LOG_DEBUG, "post commit done");
+    }
+
+    private void endSession() {
         m_toBeInstalled.clear();
         m_toBeDeleted.clear();
         m_postCommitTasks.clear();
         m_configurationAdminTasks.clear();
         m_session = null;
-        m_component.remove(m_configurationAdminDependency);
     }
 
     public void rollback() {
+        m_log.log(LogService.LOG_DEBUG, "rollback");
        Set keys = m_toBeInstalled.keySet();
        for (Iterator i = keys.iterator(); i.hasNext();) {
                List configs = (List) m_toBeInstalled.get(i.next());
@@ -337,19 +357,20 @@ public class AutoConfResourceProcessor i
                        String name = resource.getName();
                        try {
                                dropped(name);
-                       } catch (ResourceProcessorException e) {
+                       }
+                       catch (ResourceProcessorException e) {
                                m_log.log(LogService.LOG_ERROR, "Unable to roll 
back resource '" + name + "', reason: " + e.getMessage() + ", caused by: " + 
e.getCause().getMessage());
                        }
                        break;
                }
        }
-       m_toBeInstalled.clear();
-       m_session = null;
+       endSession();
+        m_log.log(LogService.LOG_DEBUG, "rollback done");
     }
 
     public void cancel() {
+        m_log.log(LogService.LOG_DEBUG, "cancel");
        rollback();
-       m_session = null;
     }
 
     /**

Modified: 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessorTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessorTest.java?rev=1241703&r1=1241702&r2=1241703&view=diff
==============================================================================
--- 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessorTest.java
 (original)
+++ 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/AutoConfResourceProcessorTest.java
 Tue Feb  7 23:41:54 2012
@@ -55,10 +55,10 @@ public class AutoConfResourceProcessorTe
     /** Go through a simple session, containing two empty configurations. */
     public void testSimpleSession() throws Exception {
         AutoConfResourceProcessor p = new AutoConfResourceProcessor();
-        TestUtils.configureObject(p, LogService.class);
-        TestUtils.configureObject(p, Component.class, 
TestUtils.createMockObjectAdapter(Component.class, new Object() {
+        Utils.configureObject(p, LogService.class);
+        Utils.configureObject(p, Component.class, 
Utils.createMockObjectAdapter(Component.class, new Object() {
             public DependencyManager getDependencyManager() {
-                return new DependencyManager((BundleContext) 
TestUtils.createNullObject(BundleContext.class));
+                return new DependencyManager((BundleContext) 
Utils.createNullObject(BundleContext.class));
             }
         }));
         File tempDir = File.createTempFile("persistence", "dir");
@@ -67,7 +67,7 @@ public class AutoConfResourceProcessorTe
         
         System.out.println("Temporary dir: " + tempDir);
         
-        TestUtils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
+        Utils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
         Session s = new Session();
         p.begin(s);
         p.process("a", new ByteArrayInputStream("<MetaData />".getBytes()));
@@ -75,27 +75,27 @@ public class AutoConfResourceProcessorTe
         p.prepare();
         p.commit();
         p.postcommit();
-        TestUtils.removeDirectoryWithContent(tempDir);
+        Utils.removeDirectoryWithContent(tempDir);
     }
 
     /** Go through a simple session, containing two empty configurations. */
     public void testSimpleInstallAndUninstallSession() throws Throwable {
         AutoConfResourceProcessor p = new AutoConfResourceProcessor();
-        TestUtils.configureObject(p, LogService.class);
-        TestUtils.configureObject(p, Component.class, 
TestUtils.createMockObjectAdapter(Component.class, new Object() {
+        Utils.configureObject(p, LogService.class);
+        Utils.configureObject(p, Component.class, 
Utils.createMockObjectAdapter(Component.class, new Object() {
             public DependencyManager getDependencyManager() {
-                return new DependencyManager((BundleContext) 
TestUtils.createNullObject(BundleContext.class));
+                return new DependencyManager((BundleContext) 
Utils.createNullObject(BundleContext.class));
             }
         }));
         Logger logger = new Logger();
-        TestUtils.configureObject(p, LogService.class, logger);
+        Utils.configureObject(p, LogService.class, logger);
         File tempDir = File.createTempFile("persistence", "dir");
         tempDir.delete();
         tempDir.mkdirs();
         
         System.out.println("Temporary dir: " + tempDir);
         
-        TestUtils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
+        Utils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
         Session s = new Session();
         p.begin(s);
         p.process("a", new ByteArrayInputStream("<MetaData />".getBytes()));
@@ -110,17 +110,17 @@ public class AutoConfResourceProcessorTe
         p.commit();
         p.postcommit();
         logger.failOnException();
-        TestUtils.removeDirectoryWithContent(tempDir);
+        Utils.removeDirectoryWithContent(tempDir);
     }
     
     /** Go through a simple session, containing two empty configurations. */
     public void testBasicConfigurationSession() throws Throwable {
         AutoConfResourceProcessor p = new AutoConfResourceProcessor();
         Logger logger = new Logger();
-        TestUtils.configureObject(p, LogService.class, logger);
-        TestUtils.configureObject(p, Component.class, 
TestUtils.createMockObjectAdapter(Component.class, new Object() {
+        Utils.configureObject(p, LogService.class, logger);
+        Utils.configureObject(p, Component.class, 
Utils.createMockObjectAdapter(Component.class, new Object() {
             public DependencyManager getDependencyManager() {
-                return new DependencyManager((BundleContext) 
TestUtils.createNullObject(BundleContext.class));
+                return new DependencyManager((BundleContext) 
Utils.createNullObject(BundleContext.class));
             }
         }));
         File tempDir = File.createTempFile("persistence", "dir");
@@ -129,7 +129,7 @@ public class AutoConfResourceProcessorTe
         
         System.out.println("Temporary dir: " + tempDir);
         
-        TestUtils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
+        Utils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
         Session s = new Session();
         p.begin(s);
         String config =
@@ -171,22 +171,22 @@ public class AutoConfResourceProcessorTe
         });
         p.postcommit();
         logger.failOnException();
-        TestUtils.removeDirectoryWithContent(tempDir);
+        Utils.removeDirectoryWithContent(tempDir);
     }
 
     /** Go through a simple session, containing two empty configurations. */
     public void testFilteredConfigurationSession() throws Throwable {
         AutoConfResourceProcessor p = new AutoConfResourceProcessor();
         Logger logger = new Logger();
-        TestUtils.configureObject(p, LogService.class, logger);
-        TestUtils.configureObject(p, Component.class, 
TestUtils.createMockObjectAdapter(Component.class, new Object() {
+        Utils.configureObject(p, LogService.class, logger);
+        Utils.configureObject(p, Component.class, 
Utils.createMockObjectAdapter(Component.class, new Object() {
             public DependencyManager getDependencyManager() {
-                return new DependencyManager((BundleContext) 
TestUtils.createNullObject(BundleContext.class));
+                return new DependencyManager((BundleContext) 
Utils.createNullObject(BundleContext.class));
             }
         }));
-        TestUtils.configureObject(p, BundleContext.class, 
TestUtils.createMockObjectAdapter(BundleContext.class, new Object() {
+        Utils.configureObject(p, BundleContext.class, 
Utils.createMockObjectAdapter(BundleContext.class, new Object() {
             public Filter createFilter(String condition) {
-                return (Filter) 
TestUtils.createMockObjectAdapter(Filter.class, new Object() {
+                return (Filter) Utils.createMockObjectAdapter(Filter.class, 
new Object() {
                     public boolean match(ServiceReference ref) {
                         Object id = ref.getProperty("id");
                         if (id != null && id.equals(Integer.valueOf(42))) {
@@ -203,7 +203,7 @@ public class AutoConfResourceProcessorTe
         
         System.out.println("Temporary dir: " + tempDir);
         
-        TestUtils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
+        Utils.configureObject(p, PersistencyManager.class, new 
PersistencyManager(tempDir));
         Session s = new Session();
         p.begin(s);
         String config =
@@ -273,7 +273,7 @@ public class AutoConfResourceProcessorTe
         logger.failOnException();
         assertEquals("test", configuration.getProperties().get("name"));
         assertNull(emptyConfiguration.getProperties());
-        TestUtils.removeDirectoryWithContent(tempDir);
+        Utils.removeDirectoryWithContent(tempDir);
     }
 
     private static class ConfigurationImpl implements Configuration {

Copied: 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/Utils.java
 (from r1241559, 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/TestUtils.java)
URL: 
http://svn.apache.org/viewvc/felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/Utils.java?p2=felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/Utils.java&p1=felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/TestUtils.java&r1=1241559&r2=1241703&rev=1241703&view=diff
==============================================================================
--- 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/TestUtils.java
 (original)
+++ 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/Utils.java
 Tue Feb  7 23:41:54 2012
@@ -28,7 +28,7 @@ import java.lang.reflect.Proxy;
 /**
  * Utility class that injects dependencies. Can be used to unit test service 
implementations.
  */
-public class TestUtils {
+public class Utils {
     /**
      * Configures an object to use a null object for the specified service 
interface.
      *

Propchange: 
felix/trunk/deploymentadmin/autoconf/src/test/java/org/apache/felix/deployment/rp/autoconf/Utils.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to