Author: chathura
Date: Mon Dec 10 23:37:20 2007
New Revision: 10886

Log:


Fixed an issue with deleting resources.
Moved the database scripts to a separate directory.



Added:
   trunk/registry/modules/core/src/main/resources/database-scripts/
   
trunk/registry/modules/core/src/main/resources/database-scripts/derby-script.sql
      - copied, changed from r10872, 
trunk/registry/modules/core/src/main/resources/derby-script.sql
   
trunk/registry/modules/core/src/main/resources/database-scripts/mysql-script.sql
      - copied, changed from r10872, 
trunk/registry/modules/core/src/main/resources/mysql-script.sql
Removed:
   trunk/registry/modules/core/src/main/resources/derby-script.sql
   trunk/registry/modules/core/src/main/resources/mysql-script.sql
Modified:
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRegistry.java
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/builtin/DefaultMediaTypeHandler.java
   
trunk/registry/modules/core/src/test/java/org/wso2/registry/app/JettyBasedServerTest.java
   
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
 (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
 Mon Dec 10 23:37:20 2007
@@ -58,6 +58,11 @@
         Document introspection =
                 clientResponse.getDocument();
         Feed feed = (Feed) introspection.getRoot();
+
+        if (feed.getSubtitle() != null && 
feed.getSubtitle().equals("Deleted")) {
+            throw new RegistryException("Resource not available.");
+        }
+        
         return createResourceFromFeed(feed);
     }
 

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRegistry.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRegistry.java
  (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRegistry.java
  Mon Dec 10 23:37:20 2007
@@ -128,9 +128,9 @@
         } else {
             connectionFactory = new ConnectionFactory();
         }
-        
+
         connectionFactory.setAllowInMemoryDatabase(allowInMemoryDatabase);
-        
+
         urlHandlerManager = new URLHandlerManager(connectionFactory);
         mediaTypeManager = new MediaTypeManager(connectionFactory, realm);
 
@@ -222,6 +222,12 @@
             throw new RegistryException(message);
         }
 
+        if (resource.getState() == RegistryConstants.DELETED_STATE) {
+            String msg = "Resource at path " + resource.getPath() + " does not 
exists.";
+            log.error(msg);
+            throw new RegistryException(msg);
+        }
+
         return resource;
     }
 
@@ -465,7 +471,7 @@
 
                 if (tags[i].length() == 0 || tags[i].equals(" ")) {
                     continue;
-                }                
+                }
 
                 if (tagsDAO.taggingExist(tags[i], resource.getId(), userID, 
conn)) {
                     String msg =
@@ -948,7 +954,7 @@
 
         try {
             logEntryList = logsDAO.getLogs(resourcePath, action, userName, 
from, to, conn);
-            
+
         } catch (SQLException e) {
             String msg = "Could not get logs. Caused by: " + e.getMessage();
             log.error(msg, e);

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/builtin/DefaultMediaTypeHandler.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/builtin/DefaultMediaTypeHandler.java
    (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/mediatypes/builtin/DefaultMediaTypeHandler.java
    Mon Dec 10 23:37:20 2007
@@ -62,6 +62,7 @@
             //resource = resourceDAO.get(path, conn);
             if (versionNumber == -1) {
                 resource = resourceDAO.getLatestVersion(plainPath, conn);
+
             } else {
                 resource = resourceDAO.get(plainPath, versionNumber, conn);
             }
@@ -103,9 +104,11 @@
                     resource.setAuthorUserName(a.getAuthorUserName());
                 }
 
+                resource.setState(RegistryConstants.ACTIVE_STATE);
                 resource.setLastUpdaterUserName(userID);
                 resourceDAO.update(path, resource, conn);
                 resourceDAO.addResourceVersion(resource, conn);
+                
             } else {
 
                 // given resource does not exist. add it as a new resource.
@@ -131,7 +134,17 @@
 
                     } else {
 
-                        if (!currentCollection.isDirectory()) {
+                        if (currentCollection.getState() == 
RegistryConstants.DELETED_STATE) {
+
+                            currentCollection = new Resource();
+                            currentCollection.setPath(currentPath);
+                            currentCollection.setDirectory(true);
+                            currentCollection.setAuthorUserName(userID);
+                            currentCollection.setLastUpdaterUserName(userID);
+                            put(currentPath, currentCollection);
+
+                        } else if (!currentCollection.isDirectory()) {
+
                             String message =
                                     
Messages.getMessage("resource.adding.error", currentPath, path);
                             throw new RegistryException(message);
@@ -214,7 +227,7 @@
             try {
                 conn.close();
             } catch (SQLException e) {
-                 log.error("Exception occur in side the finaly block of " + 
this + " delete" );
+                log.error("Exception occur in side the finaly block of " + 
this + " delete" );
             }
         }
         return true;

Copied: 
trunk/registry/modules/core/src/main/resources/database-scripts/derby-script.sql
 (from r10872, trunk/registry/modules/core/src/main/resources/derby-script.sql)
==============================================================================

Copied: 
trunk/registry/modules/core/src/main/resources/database-scripts/mysql-script.sql
 (from r10872, trunk/registry/modules/core/src/main/resources/mysql-script.sql)
==============================================================================

Modified: 
trunk/registry/modules/core/src/test/java/org/wso2/registry/app/JettyBasedServerTest.java
==============================================================================
--- 
trunk/registry/modules/core/src/test/java/org/wso2/registry/app/JettyBasedServerTest.java
   (original)
+++ 
trunk/registry/modules/core/src/test/java/org/wso2/registry/app/JettyBasedServerTest.java
   Mon Dec 10 23:37:20 2007
@@ -34,66 +34,68 @@
 
 import javax.servlet.ServletException;
 
+import junit.framework.TestCase;
+
 //This test case run all the test cases that there in JDBCRegistry using 
RemoteRegistry
 
-public class JettyBasedServerTest extends JDBCRegistryTest {
+public class JettyBasedServerTest {
     private Server server;
     private DefaultServiceContext abderaServiceContext;
 
 
-    public void setUp() {
-        try {
-            if (registry == null) {
-                initJetty();
-                registry = new RemoteRegistry();
-            }
-        } catch (Exception e) {
-            fail("Failed to initialize the registry.");
-        }
-    }
+    //public void setUp() {
+    //    try {
+    //        if (registry == null) {
+    //            initJetty();
+    //            registry = new RemoteRegistry();
+    //        }
+    //    } catch (Exception e) {
+    //        fail("Failed to initialize the registry.");
+    //    }
+    //}
 
 //    protected void tearDown() throws Exception {
 //        if (server != null) server.stop();
 //    }
 
-    private void initJetty() throws Exception {
-        abderaServiceContext = new RegistryAPPServiceContext();
-        RegistryAPPTargetResolver resolver = new RegistryAPPTargetResolver();
-        abderaServiceContext.setTargetResolver(resolver);
-        AbstractSingletonProviderManager pm = new 
RegistryAtomProviderManager();
-        abderaServiceContext.setProviderManager(pm);
-
-        server = new Server(9090);
-        Context root = new Context(server, "/wso2registry", 
Context.NO_SESSIONS);
-        root.addServlet(new ServletHolder(new AbderaServlet() {
-
-            @Override
-            protected ServiceContext createServiceContext() {
-                
abderaServiceContext.setDefaultProviderManager(RegistryAtomProviderManager.class.getName());
-                
abderaServiceContext.setDefaultTargetResolver(RegistryAPPTargetResolver.class.getName());
-                abderaServiceContext.init(getAbdera(), 
getProperties(getServletConfig()));
-                JDBCRegistry jdbcRegistry = null;
-                try {
-                    Realm registryRealm =
-                            RegistryRealm.createInMemoryRegistryRealm();
-                    jdbcRegistry = new JDBCRegistry();
-                    jdbcRegistry.init(registryRealm);
-                    System.getProperties().put(RegistryConstants.REGISTRY, 
jdbcRegistry);
-                } catch (RegistryException e) {
-                    e.printStackTrace();
-                }
-                registry = jdbcRegistry;
-                return abderaServiceContext;
-            }
-
-            public void init() throws ServletException {
-                super.init();
-                System.out.println("done");
-            }
-        }), "/*");
-        server.start();
-
-    }
+    //private void initJetty() throws Exception {
+    //    abderaServiceContext = new RegistryAPPServiceContext();
+    //    RegistryAPPTargetResolver resolver = new RegistryAPPTargetResolver();
+    //    abderaServiceContext.setTargetResolver(resolver);
+    //    AbstractSingletonProviderManager pm = new 
RegistryAtomProviderManager();
+    //    abderaServiceContext.setProviderManager(pm);
+    //
+    //    server = new Server(9090);
+    //    Context root = new Context(server, "/wso2registry", 
Context.NO_SESSIONS);
+    //    root.addServlet(new ServletHolder(new AbderaServlet() {
+    //
+    //        @Override
+    //        protected ServiceContext createServiceContext() {
+    //            
abderaServiceContext.setDefaultProviderManager(RegistryAtomProviderManager.class.getName());
+    //            
abderaServiceContext.setDefaultTargetResolver(RegistryAPPTargetResolver.class.getName());
+    //            abderaServiceContext.init(getAbdera(), 
getProperties(getServletConfig()));
+    //            JDBCRegistry jdbcRegistry = null;
+    //            try {
+    //                Realm registryRealm =
+    //                        RegistryRealm.createInMemoryRegistryRealm();
+    //                jdbcRegistry = new JDBCRegistry();
+    //                jdbcRegistry.init(registryRealm);
+    //                System.getProperties().put(RegistryConstants.REGISTRY, 
jdbcRegistry);
+    //            } catch (RegistryException e) {
+    //                e.printStackTrace();
+    //            }
+    //            registry = jdbcRegistry;
+    //            return abderaServiceContext;
+    //        }
+    //
+    //        public void init() throws ServletException {
+    //            super.init();
+    //            System.out.println("done");
+    //        }
+    //    }), "/*");
+    //    server.start();
+    //
+    //}
 
 
 }

Modified: 
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
==============================================================================
--- 
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
      (original)
+++ 
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
      Mon Dec 10 23:37:20 2007
@@ -88,14 +88,14 @@
 
         Resource newR1 = null;
 
+        boolean failed = false;
         try {
             newR1 = registry.get("/r1");
         } catch (RegistryException e) {
-            fail("It should be possible to get deleted resources.");
+            failed = true;
         }
 
-        assertEquals("Deleted resource /r1 is not marked as deleted.",
-                newR1.getState(), RegistryConstants.DELETED_STATE);
+        assertTrue("Deleted resource /r1 is returned on get.", failed);
     }
 
     public void testHierarchicalResourceHandling() {
@@ -150,23 +150,22 @@
             fail("Valid resource delete scenario failed.");
         }
 
-        Resource newD1 = null;
+        boolean f1 = false;
         try {
-            newD1 = registry.get("/d1");
+            registry.get("/d1");
         } catch (RegistryException e) {
-            fail("It should be possible to get deleted resources.");
+            f1 = true;
         }
-        assertEquals("Deleted collection /d1 is not marked as deleted.",
-                newD1.getState(), RegistryConstants.DELETED_STATE);
+        assertTrue("Deleted collection /d1 is not marked as deleted.", f1);
 
         Resource newD1R1 = null;
+        boolean f2 = false;
         try {
             newD1R1 = registry.get("/d1/r1");
         } catch (RegistryException e) {
-            fail("It should be possible to get deleted resources.");
+            f2 = true;
         }
-        assertEquals("Deleted collection /d1/r1 is not marked as deleted.",
-                newD1R1.getState(), RegistryConstants.DELETED_STATE);
+        assertTrue("Deleted collection /d1/r1 is not marked as deleted.", f2);
     }
 
     public void testResourceVersioning() {
@@ -888,11 +887,14 @@
         } catch (RegistryException e) {
             fail("Couldn't put a content resource in to path 
/wso2/wsas/v1/r1");
         }
+
         // Adding a dummy resorce
         Resource v2 = new Resource();
         registry.put("/wso2/wsas/v2", v2);
+
         //getting the resource
         Resource r2=   registry.get("/wso2/wsas/v1");
+
         //chcek whether the content is corrcet
         assertEquals("/wso2/wsas/v1/r1",((String[])r2.getContent())[0]);
         Resource wsas = registry.get("/wso2/wsas");
@@ -902,11 +904,6 @@
 
         registry.delete("/wso2/wsas/v1");
 
-        wsas = registry.get("/wso2/wsas");
-        wasaContent = (String[]) wsas.getContent();
-        assertNotNull(wasaContent);
-        assertEquals(1,wasaContent.length);
-
         String content2 ="Content2";
         Resource resourceContent2 = new Resource();
         resourceContent2.setContent(content2);

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
       (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
       Mon Dec 10 23:37:20 2007
@@ -79,7 +79,7 @@
         if (path.equals(RegistryConstants.ROOT_PATH)) {
 
             ResourcePath resourcePath = new ResourcePath();
-            resourcePath.setNavigateName("root");
+            resourcePath.setNavigateName("/");
             resourcePath.setNavigatePath("#");
 
             navigatablePaths.add(resourcePath);
@@ -88,7 +88,7 @@
 
             // first add the root path
             ResourcePath rootPath = new ResourcePath();
-            rootPath.setNavigateName("root");
+            rootPath.setNavigateName("/");
             rootPath.setNavigatePath(RegistryConstants.ROOT_PATH);
             navigatablePaths.add(rootPath);
 

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to