Author: keith
Date: Sun Dec  2 21:38:07 2007
New Revision: 10388

Modified:
   
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
Log:
Adding resources into the registry only if they are not in the registry. 
Workaround for Registry-18.



Modified: 
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
==============================================================================
--- 
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
   (original)
+++ 
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
   Sun Dec  2 21:38:07 2007
@@ -643,157 +643,176 @@
             
configCtx.getAxisConfiguration().addParameter(RegistryConstants.REGISTRY, 
registry);
             
configCtx.getAxisConfiguration().addParameter(RegistryConstants.REGISTRY_REALM, 
realm);
 
-            // add queries to generate user profiles
+            if 
(!registry.resourceExists(MashupConstants.QUERYSTORE_QUERY_PATH)) {
+// add queries to generate user profiles
 
-            Resource queryCollection = new Resource();
-            queryCollection.setDirectory(true);
-            registry.put(MashupConstants.QUERYSTORE_QUERY_PATH, 
queryCollection);
-
-            // All mashups query
-            addQuery(
-            registry,
-            MashupConstants.ALL_MASHUPS_QUERY_PATH,
-            "SELECT PATH FROM ARTIFACTS WHERE MEDIA_TYPE='" + 
MashupConstants.MASHUP_MEDIA_TYPE + "'",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            // Mashups from a specific user
-            addQuery(
-            registry,
-            MashupConstants.MY_MASHUPS_QUERY_PATH,
-            "SELECT PATH FROM ARTIFACTS WHERE AUTHOR=? AND MEDIA_TYPE='" + 
MashupConstants.MASHUP_MEDIA_TYPE + "'",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            // Mashups rated 4.0 or better, sorted by rating.
-            addQuery(
-            registry,
-            MashupConstants.TOP_MASHUPS_QUERY_PATH,
-            "SELECT A.PATH FROM ARTIFACTS A, RATINGS R WHERE A.AID=R.AID AND 
A.MEDIA_TYPE='" + MashupConstants.MASHUP_MEDIA_TYPE + "' GROUP BY A.PATH HAVING 
AVG(R.RATING) >= 4.0 ORDER BY AVG(R.RATING) DESC",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            // Mashups from a specific user rated 4.0 or better, sorted by 
rating.
-            addQuery(
-            registry,
-            MashupConstants.MY_TOP_MASHUPS_QUERY_PATH,
-            "SELECT A.PATH FROM ARTIFACTS A, RATINGS R WHERE A.AID=R.AID AND 
A.AUTHOR=? AND A.MEDIA_TYPE='" + MashupConstants.MASHUP_MEDIA_TYPE + "' GROUP 
BY A.PATH HAVING AVG(R.RATING) >= 4.0 ORDER BY AVG(R.RATING) DESC",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            Resource usersCollection = new Resource();
-            usersCollection.setDirectory(true);
-            registry.put("/users", queryCollection);
-
-            Resource profileCollection = new Resource();
-            profileCollection.setDirectory(true);
-            registry.put("/users/profile", queryCollection);
-
-            Resource systemCollection = new Resource();
-            systemCollection.setDirectory(true);
-            registry.put("/system", queryCollection);
-
-            Resource queriesCollection = new Resource();
-            queriesCollection.setDirectory(true);
-            registry.put("/system/queries", queryCollection);
-
-            Resource mashupsResource = new Resource();
-            mashupsResource.setDirectory(true);
-            registry.put("/mashups", mashupsResource);
-
-            // This query accepts a resource path, a username, and a tag name, 
and returns the resource path if that user applied that tag to the resource.
-            //  Used for checking whether the current user should be allowed 
to delete the tag.
-            addQuery(
-            registry,
-            MashupConstants.USER_TAGS_QUERY_PATH,
-            "SELECT A.PATH FROM ARTIFACTS A, TAGS T WHERE A.PATH=? AND 
T.TAG_NAME=? AND T.AID=A.AID AND T.USER_ID=? AND A.MEDIA_TYPE='" + 
MashupConstants.MASHUP_MEDIA_TYPE + "'",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            // Query for mashups based on tag, description, or title
-            // todo: queries aren't case insensitive
-            addQuery(
-            registry,
-            MashupConstants.CUSTOM_QUERY_PATH,
-            "SELECT DISTINCT A.PATH FROM ARTIFACTS A, TAGS T WHERE (A.PATH 
LIKE ? OR A.DESCRIPTION LIKE ? OR (T.TAG_NAME=? AND T.AID=A.AID)) AND 
A.MEDIA_TYPE='" + MashupConstants.MASHUP_MEDIA_TYPE + "'",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            // Query for mashups from a specific user based on tag, 
description, or title
-            // todo: queries aren't case insensitive
-            addQuery(
-            registry,
-            MashupConstants.MY_CUSTOM_QUERY_PATH,
-            "SELECT DISTINCT A.PATH FROM ARTIFACTS A, TAGS T WHERE (A.PATH 
LIKE ? OR A.DESCRIPTION LIKE ? OR (T.TAG_NAME=? AND T.AID=A.AID)) AND 
A.AUTHOR=? AND A.MEDIA_TYPE='" + MashupConstants.MASHUP_MEDIA_TYPE + "'",
-                RegistryConstants.RESOURCES_RESULT_TYPE
-            );
-
-            SecureRegistry secureRegistry = new SecureRegistry(
-                        RegistryConstants.ADMIN_USER, 
MashupConstants.ADMIN_PASSWORD, registry, realm);
-
-            RegistryUserManager userManager = secureRegistry.getUserManager();
-
-            // add profile for the anonymous user
-
-            AccessControlAdmin ac = realm.getAccessControlAdmin();
-            UserStoreAdmin us = realm.getUserStoreAdmin();
-
-            ac.authorizeRole(MashupConstants.EVERYONE_ROLE, 
MashupConstants.ALL_MASHUPS_PATH, UserManagerConstants.READ);
-            ac.authorizeRole(MashupConstants.EVERYONE_ROLE, 
MashupConstants.ALL_MASHUPS_QUERY_PATH, UserManagerConstants.READ);
-
-            String anonName = RegistryConstants.ANONYMOUS_USER;
-            us.addUserToRole(anonName, MashupConstants.EVERYONE_ROLE);
-
-            // create a collection for the new user
-            Resource userCollection = new Resource();
-            userCollection.setDirectory(true);
-            registry.put("/users/" + anonName, userCollection);
-            ac.authorizeUser(anonName, "/users/" + anonName, 
UserManagerConstants.EDIT);
-
-            // add some predefined queries for the new user
-            String profilePath = "/users/" + anonName + "/profile";
-            userManager.setUserProperty(anonName, 
MashupConstants.PROFILE_PATH, profilePath);
-            userManager.setUserProperty(anonName, MashupConstants.FORMAL_NAME, 
"Visitor");
-
-            User user = new User();
-            user.setEmailAddress("none");
-            user.setUsername(anonName);
-            user.setBio("Anonymous user");
-
-            user.addQuery("All Mashups", 
MashupConstants.ALL_MASHUPS_QUERY_PATH, new String[] {});
-
-            Resource userProfile = new Resource();
-            userProfile.setContent(user.serializeUserProfile().getBytes());
-            registry.put(profilePath, userProfile);
-
-            // add profile for the admin user
-
-            String adminName = RegistryConstants.ADMIN_USER;
-            us.addUserToRole(adminName, MashupConstants.EVERYONE_ROLE);
-
-            // create a collection for the new user
-            Resource adminUserCollection = new Resource();
-            adminUserCollection.setDirectory(true);
-            registry.put("/users/" + adminName, adminUserCollection);
-            ac.authorizeUser(adminName, "/users/" + adminName, 
UserManagerConstants.EDIT);
-
-            // add some predefined queries for the new user
-            String adminProfilePath = "/users/" + adminName + "/profile";
-            userManager.setUserProperty(adminName, 
MashupConstants.PROFILE_PATH, adminProfilePath);
-            userManager.setUserProperty(adminName, 
MashupConstants.FORMAL_NAME, "Administrator");
-
-            User adminUser = new User();
-            adminUser.setEmailAddress("None");
-            adminUser.setUsername(adminName);
-            adminUser.setBio("System administrator");
-
-            adminUser.addQuery("My Mashups", 
MashupConstants.MY_MASHUPS_QUERY_PATH, new String[] {adminName});
-            adminUser.addQuery("All Mashups", 
MashupConstants.ALL_MASHUPS_QUERY_PATH, new String[] {});
-
-            Resource adminUserProfile = new Resource();
-            
adminUserProfile.setContent(adminUser.serializeUserProfile().getBytes());
-            registry.put(adminProfilePath, adminUserProfile);
-            ac.authorizeUser(adminName, adminProfilePath, ActionConstants.PUT);
+                Resource queryCollection = new Resource();
+                queryCollection.setDirectory(true);
+                registry.put(MashupConstants.QUERYSTORE_QUERY_PATH, 
queryCollection);
+
+                // All mashups query
+                addQuery(
+                        registry,
+                        MashupConstants.ALL_MASHUPS_QUERY_PATH,
+                        "SELECT PATH FROM ARTIFACTS WHERE MEDIA_TYPE='" + 
MashupConstants
+                                .MASHUP_MEDIA_TYPE + "'",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                // Mashups from a specific user
+                addQuery(
+                        registry,
+                        MashupConstants.MY_MASHUPS_QUERY_PATH,
+                        "SELECT PATH FROM ARTIFACTS WHERE AUTHOR=? AND 
MEDIA_TYPE='" +
+                                MashupConstants.MASHUP_MEDIA_TYPE + "'",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                // Mashups rated 4.0 or better, sorted by rating.
+                addQuery(
+                        registry,
+                        MashupConstants.TOP_MASHUPS_QUERY_PATH,
+                        "SELECT A.PATH FROM ARTIFACTS A, RATINGS R WHERE 
A.AID=R.AID AND A.MEDIA_TYPE='" +
+                                MashupConstants.MASHUP_MEDIA_TYPE +
+                                "' GROUP BY A.PATH HAVING AVG(R.RATING) >= 4.0 
ORDER BY AVG(R.RATING) DESC",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                // Mashups from a specific user rated 4.0 or better, sorted by 
rating.
+                addQuery(
+                        registry,
+                        MashupConstants.MY_TOP_MASHUPS_QUERY_PATH,
+                        "SELECT A.PATH FROM ARTIFACTS A, RATINGS R WHERE 
A.AID=R.AID AND A.AUTHOR=? AND A.MEDIA_TYPE='" +
+                                MashupConstants.MASHUP_MEDIA_TYPE +
+                                "' GROUP BY A.PATH HAVING AVG(R.RATING) >= 4.0 
ORDER BY AVG(R.RATING) DESC",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                Resource usersCollection = new Resource();
+                usersCollection.setDirectory(true);
+                registry.put("/users", queryCollection);
+
+                Resource profileCollection = new Resource();
+                profileCollection.setDirectory(true);
+                registry.put("/users/profile", queryCollection);
+
+                Resource systemCollection = new Resource();
+                systemCollection.setDirectory(true);
+                registry.put("/system", queryCollection);
+
+                Resource queriesCollection = new Resource();
+                queriesCollection.setDirectory(true);
+                registry.put("/system/queries", queryCollection);
+
+                Resource mashupsResource = new Resource();
+                mashupsResource.setDirectory(true);
+                registry.put("/mashups", mashupsResource);
+
+                // This query accepts a resource path, a username, and a tag 
name, and returns the resource path if that user applied that tag to the 
resource.
+                //  Used for checking whether the current user should be 
allowed to delete the tag.
+                addQuery(
+                        registry,
+                        MashupConstants.USER_TAGS_QUERY_PATH,
+                        "SELECT A.PATH FROM ARTIFACTS A, TAGS T WHERE A.PATH=? 
AND T.TAG_NAME=? AND T.AID=A.AID AND T.USER_ID=? AND A.MEDIA_TYPE='" +
+                                MashupConstants.MASHUP_MEDIA_TYPE + "'",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                // Query for mashups based on tag, description, or title
+                // todo: queries aren't case insensitive
+                addQuery(
+                        registry,
+                        MashupConstants.CUSTOM_QUERY_PATH,
+                        "SELECT DISTINCT A.PATH FROM ARTIFACTS A, TAGS T WHERE 
(A.PATH LIKE ? OR A.DESCRIPTION LIKE ? OR (T.TAG_NAME=? AND T.AID=A.AID)) AND 
A.MEDIA_TYPE='" +
+                                MashupConstants.MASHUP_MEDIA_TYPE + "'",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                // Query for mashups from a specific user based on tag, 
description, or title
+                // todo: queries aren't case insensitive
+                addQuery(
+                        registry,
+                        MashupConstants.MY_CUSTOM_QUERY_PATH,
+                        "SELECT DISTINCT A.PATH FROM ARTIFACTS A, TAGS T WHERE 
(A.PATH LIKE ? OR A.DESCRIPTION LIKE ? OR (T.TAG_NAME=? AND T.AID=A.AID)) AND 
A.AUTHOR=? AND A.MEDIA_TYPE='" +
+                                MashupConstants.MASHUP_MEDIA_TYPE + "'",
+                        RegistryConstants.RESOURCES_RESULT_TYPE
+                );
+
+                SecureRegistry secureRegistry = new SecureRegistry(
+                        RegistryConstants.ADMIN_USER, 
MashupConstants.ADMIN_PASSWORD, registry,
+                        realm);
+
+                RegistryUserManager userManager = 
secureRegistry.getUserManager();
+
+                // add profile for the anonymous user
+
+                AccessControlAdmin ac = realm.getAccessControlAdmin();
+                UserStoreAdmin us = realm.getUserStoreAdmin();
+
+                ac.authorizeRole(MashupConstants.EVERYONE_ROLE, 
MashupConstants.ALL_MASHUPS_PATH,
+                                 UserManagerConstants.READ);
+                ac.authorizeRole(MashupConstants.EVERYONE_ROLE,
+                                 MashupConstants.ALL_MASHUPS_QUERY_PATH, 
UserManagerConstants.READ);
+
+                String anonName = RegistryConstants.ANONYMOUS_USER;
+                us.addUserToRole(anonName, MashupConstants.EVERYONE_ROLE);
+
+                // create a collection for the new user
+                Resource userCollection = new Resource();
+                userCollection.setDirectory(true);
+                registry.put("/users/" + anonName, userCollection);
+                ac.authorizeUser(anonName, "/users/" + anonName, 
UserManagerConstants.EDIT);
+
+                // add some predefined queries for the new user
+                String profilePath = "/users/" + anonName + "/profile";
+                userManager.setUserProperty(anonName, 
MashupConstants.PROFILE_PATH, profilePath);
+                userManager.setUserProperty(anonName, 
MashupConstants.FORMAL_NAME, "Visitor");
+
+                User user = new User();
+                user.setEmailAddress("none");
+                user.setUsername(anonName);
+                user.setBio("Anonymous user");
+
+                user.addQuery("All Mashups", 
MashupConstants.ALL_MASHUPS_QUERY_PATH,
+                              new String[] { });
+
+                Resource userProfile = new Resource();
+                userProfile.setContent(user.serializeUserProfile().getBytes());
+                registry.put(profilePath, userProfile);
+
+                // add profile for the admin user
+
+                String adminName = RegistryConstants.ADMIN_USER;
+                us.addUserToRole(adminName, MashupConstants.EVERYONE_ROLE);
+
+                // create a collection for the new user
+                Resource adminUserCollection = new Resource();
+                adminUserCollection.setDirectory(true);
+                registry.put("/users/" + adminName, adminUserCollection);
+                ac.authorizeUser(adminName, "/users/" + adminName, 
UserManagerConstants.EDIT);
+
+                // add some predefined queries for the new user
+                String adminProfilePath = "/users/" + adminName + "/profile";
+                userManager
+                        .setUserProperty(adminName, 
MashupConstants.PROFILE_PATH, adminProfilePath);
+                userManager
+                        .setUserProperty(adminName, 
MashupConstants.FORMAL_NAME, "Administrator");
+
+                User adminUser = new User();
+                adminUser.setEmailAddress("None");
+                adminUser.setUsername(adminName);
+                adminUser.setBio("System administrator");
+
+                adminUser.addQuery("My Mashups", 
MashupConstants.MY_MASHUPS_QUERY_PATH,
+                                   new String[] { adminName });
+                adminUser.addQuery("All Mashups", 
MashupConstants.ALL_MASHUPS_QUERY_PATH,
+                                   new String[] { });
+
+                Resource adminUserProfile = new Resource();
+                
adminUserProfile.setContent(adminUser.serializeUserProfile().getBytes());
+                registry.put(adminProfilePath, adminUserProfile);
+                ac.authorizeUser(adminName, adminProfilePath, 
ActionConstants.PUT);
+            }
         } catch (UserManagerException e) {
             e.printStackTrace();
             throw new MashupFault(e);

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to