Author: scottbw
Date: Fri Feb  7 16:10:50 2014
New Revision: 1565709

URL: http://svn.apache.org/r1565709
Log:
Replaced references to persistence manager with references to the 
WidgetMetadataService SPI

Modified:
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetsController.java
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetFactory.java
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetInstanceFactory.java

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetsController.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetsController.java?rev=1565709&r1=1565708&r2=1565709&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetsController.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetsController.java
 Fri Feb  7 16:10:50 2014
@@ -28,8 +28,6 @@ import org.apache.commons.configuration.
 import org.apache.commons.io.IOUtils;
 import org.apache.wookie.Messages;
 import org.apache.wookie.beans.IWidget;
-import org.apache.wookie.beans.util.IPersistenceManager;
-import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.exceptions.InvalidParametersException;
 import org.apache.wookie.exceptions.ResourceDuplicationException;
 import org.apache.wookie.exceptions.ResourceNotFoundException;
@@ -38,6 +36,7 @@ import org.apache.wookie.helpers.WidgetF
 import org.apache.wookie.helpers.WidgetAdvertHelper;
 import org.apache.wookie.helpers.WidgetImportHelper;
 import org.apache.wookie.server.LocaleHandler;
+import org.apache.wookie.services.WidgetMetadataService;
 import org.apache.wookie.util.NewWidgetBroadcaster;
 import org.apache.wookie.util.W3CWidgetFactoryUtils;
 import org.apache.wookie.util.WidgetFileUtils;
@@ -78,13 +77,8 @@ public class WidgetsController extends C
       throws ResourceNotFoundException, InvalidParametersException,
       UnauthorizedAccessException {
     
-    IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-    IWidget widget = persistenceManager.findWidgetByGuid(resourceId);
-    // attempt to get specific widget by id
-    if (widget == null) {
-      persistenceManager = PersistenceManagerFactory.getPersistenceManager();
-      widget = persistenceManager.findById(IWidget.class, resourceId);
-    }
+       IWidget widget = 
WidgetMetadataService.Factory.getInstance().getWidget(resourceId);
+    
     // return widget result
     if (widget == null) throw new ResourceNotFoundException();
     
@@ -106,14 +100,8 @@ public class WidgetsController extends C
       HttpServletResponse response) throws ResourceNotFoundException,
       IOException {
 
-    IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-    // attempt to get specific widget by URI
-    IWidget widget = persistenceManager.findWidgetByGuid(resourceId);
-    // attempt to get specific widget by id
-    if (widget == null) {
-      persistenceManager = PersistenceManagerFactory.getPersistenceManager();
-      widget = persistenceManager.findById(IWidget.class, resourceId);
-    }
+       IWidget widget = 
WidgetMetadataService.Factory.getInstance().getWidget(resourceId);
+
     // return widget result
     if (widget == null)
       throw new ResourceNotFoundException();
@@ -164,9 +152,8 @@ public class WidgetsController extends C
         */
        private void index(String resourceId, HttpServletRequest request,
                        HttpServletResponse response) throws IOException {
-
-    IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-    IWidget[] widgets = persistenceManager.findAll(IWidget.class);
+               
+        IWidget[] widgets = 
WidgetMetadataService.Factory.getInstance().getAllWidgets();
                returnXml(WidgetAdvertHelper.createXMLWidgetsDocument(widgets, 
getWookieServerURL(request, "").toString(), getLocales(request)),response);
        }
        
@@ -182,14 +169,7 @@ public class WidgetsController extends C
     //
     // Identify the widget to delete
     //
-    IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-    IWidget widget = persistenceManager.findWidgetByGuid(resourceId);
-    // attempt to get specific widget by id
-    if (widget == null) {
-      persistenceManager = PersistenceManagerFactory.getPersistenceManager();
-      widget = persistenceManager.findById(IWidget.class, resourceId);
-    }
-    
+    IWidget widget = 
WidgetMetadataService.Factory.getInstance().getWidget(resourceId);
     if (widget == null) throw new ResourceNotFoundException();
     
     //
@@ -269,9 +249,8 @@ public class WidgetsController extends C
         
         //
         // Check if the widget model corresponds to an existing installed 
widget
-        //
-        IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-        if (persistenceManager.findWidgetByGuid(widgetId) == null) {
+        //        
+        if (WidgetMetadataService.Factory.getInstance().getWidget(widgetId) == 
null) {
 
             //
             // A new widget was created, so return 201
@@ -287,7 +266,8 @@ public class WidgetsController extends C
             // Widget already exists, so update the widget metadata and 
configuration details
             // and return 200
             //
-            
WidgetFactory.update(widgetModel,persistenceManager.findWidgetByGuid(widgetId), 
true, zipFile);
+               IWidget widget = 
WidgetMetadataService.Factory.getInstance().getWidget(widgetId);
+            WidgetFactory.update(widgetModel,widget, true, zipFile);
             returnXml(WidgetImportHelper.createXMLWidgetDocument(widgetModel, 
new File(fac.getUnzippedWidgetDirectory(), "config.xml"), 
getWookieServerURL(request, "").toString(), true), response);
             return false;
 
@@ -342,9 +322,8 @@ public class WidgetsController extends C
 
          //
          // If the gadget is not already registered, add it
-         //
-         IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-         if(persistenceManager.findWidgetByGuid(widget.getIdentifier()) == 
null){
+         //      
+         
if(WidgetMetadataService.Factory.getInstance().getWidget(widget.getIdentifier())
 == null){
            WidgetFactory.addNewWidget(widget);
            return true;
          } else {

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetFactory.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetFactory.java?rev=1565709&r1=1565708&r2=1565709&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetFactory.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetFactory.java
 Fri Feb  7 16:10:50 2014
@@ -17,26 +17,12 @@ import java.io.File;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.log4j.Logger;
-import org.apache.wookie.beans.IParticipant;
-import org.apache.wookie.beans.IPreference;
-import org.apache.wookie.beans.ISharedData;
 import org.apache.wookie.beans.IWidget;
-import org.apache.wookie.beans.IWidgetInstance;
-import org.apache.wookie.beans.SharedContext;
-import org.apache.wookie.beans.util.IPersistenceManager;
-import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.proxy.Policies;
 import org.apache.wookie.proxy.Policy;
+import org.apache.wookie.services.WidgetMetadataService;
 import org.apache.wookie.util.WidgetFileUtils;
 import org.apache.wookie.w3c.IAccess;
-import org.apache.wookie.w3c.IAuthor;
-import org.apache.wookie.w3c.IContent;
-import org.apache.wookie.w3c.IName;
-import org.apache.wookie.w3c.IFeature;
-import org.apache.wookie.w3c.IDescription;
-import org.apache.wookie.w3c.IParam;
-import org.apache.wookie.w3c.IIcon;
-import org.apache.wookie.w3c.ILicense;
 import org.apache.wookie.w3c.W3CWidget;
 
 /**
@@ -76,130 +62,22 @@ public class WidgetFactory {
         * @return the widget
         */
        public static IWidget addNewWidget(W3CWidget model, boolean 
grantAccessRequests) {
-           IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-               IWidget widget = createWidget(persistenceManager, model);
-               createAuthor(persistenceManager, model, widget);
-               createStartFiles(persistenceManager, model,widget);
-               createNames(persistenceManager, model,widget);
-               createDescriptions(persistenceManager, model,widget);
-               createIcons(persistenceManager, model, widget);
-               createLicenses(persistenceManager, model,widget);               
-               createPreferences(persistenceManager, model,widget);
-               createFeatures(persistenceManager, model,widget);
-        persistenceManager.save(widget);
-               createAccessRequests(persistenceManager, model, widget, 
grantAccessRequests);
                
-    _logger.info("'"+model.getLocalName("en") +"' - " + "Widget was 
successfully imported into the system as "+widget.getLocalName("en"));
+               //
+               // Import the metadata into the repository service
+               //
+               IWidget widget = 
WidgetMetadataService.Factory.getInstance().importWidget(model, null);
+               
+               //
+               // Create access requests
+               //
+               createAccessRequests(model, widget, grantAccessRequests);
+               
+               _logger.info("'"+model.getLocalName("en") +"' - " + "Widget was 
successfully imported into the system as "+widget.getLocalName("en"));
     
                return widget;         
        }
 
-       private static IWidget createWidget(IPersistenceManager 
persistenceManager, W3CWidget model){
-               IWidget widget;
-               widget = persistenceManager.newInstance(IWidget.class);         
-               widget.setDir(model.getDir());
-               widget.setLang(model.getLang());
-               widget.setDefaultLocale(model.getDefaultLocale());
-               widget.setIdentifier(model.getIdentifier());
-               widget.setHeight(model.getHeight());
-               widget.setWidth(model.getWidth());
-               widget.setVersion(model.getVersion());
-               widget.setUpdateLocation(model.getUpdateLocation());
-               return widget;
-       }
-       
-       private static void createAuthor(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget){
-          if (model.getAuthor() != null){
-             IAuthor author = persistenceManager.newInstance(IAuthor.class);
-             author.setAuthorName(model.getAuthor().getAuthorName());
-             author.setEmail(model.getAuthor().getEmail());
-             author.setHref(model.getAuthor().getHref());
-             author.setDir(model.getAuthor().getDir());
-             author.setLang(model.getAuthor().getLang());
-             widget.setAuthor(author);
-           }
-       }
-
-       private static void createStartFiles(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget){
-               for (IContent page:model.getContentList()){
-                       IContent start = 
persistenceManager.newInstance(IContent.class);
-                       start.setCharSet(page.getCharSet());
-                       start.setLang(page.getLang());
-                       start.setSrc(page.getSrc());
-            widget.getContentList().add(start);
-               }
-       }
-
-       private static void createNames(IPersistenceManager persistenceManager, 
W3CWidget model, IWidget widget){
-               for (IName name:model.getNames()){
-                       IName widgetName = 
persistenceManager.newInstance(IName.class);
-                       widgetName.setLang(name.getLang());
-                       widgetName.setDir(name.getDir());
-                       widgetName.setName(name.getName());
-                       widgetName.setShort(name.getShort());
-            widget.getNames().add(widgetName);
-            persistenceManager.save(widget);
-               }
-       }
-
-       private static void createDescriptions(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget){
-               for (IDescription desc:model.getDescriptions()){
-                       IDescription widgetDesc = 
persistenceManager.newInstance(IDescription.class);
-                       widgetDesc.setDescription(desc.getDescription());
-                       widgetDesc.setLang(desc.getLang());
-                       widgetDesc.setDir(desc.getDir());
-            widget.getDescriptions().add(widgetDesc);
-               } 
-       }
-
-       private static void createIcons(IPersistenceManager persistenceManager, 
W3CWidget model, IWidget widget){
-               for(IIcon icon: model.getIcons()){
-            IIcon widgetIcon = persistenceManager.newInstance(IIcon.class);
-            widgetIcon.setSrc(icon.getSrc());
-            widgetIcon.setHeight(icon.getHeight());
-            widgetIcon.setWidth(icon.getWidth());
-            widgetIcon.setLang(icon.getLang());
-            widget.getIcons().add(widgetIcon);
-               }
-       }
-
-       private static void createLicenses(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget){
-               for(ILicense licenseModel: model.getLicenses()){
-            ILicense license = persistenceManager.newInstance(ILicense.class);
-            license.setLicenseText(licenseModel.getLicenseText());
-            license.setHref(licenseModel.getHref());
-            license.setLang(licenseModel.getLang());
-            license.setDir(licenseModel.getDir());
-            widget.getLicenses().add(license);
-               }
-       }
-
-       private static void createPreferences(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget){
-               for(org.apache.wookie.w3c.IPreference pref : 
model.getPreferences()){
-                       org.apache.wookie.w3c.IPreference preferenceDefault = 
persistenceManager.newInstance(org.apache.wookie.w3c.IPreference.class);
-                       preferenceDefault.setName(pref.getName());
-                       preferenceDefault.setValue(pref.getValue());
-                       preferenceDefault.setReadOnly(pref.isReadOnly());
-            widget.getPreferences().add(preferenceDefault);
-               }
-       }
-
-       private static void createFeatures(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget){
-               for(IFeature ofeature: model.getFeatures()){
-            IFeature feature = persistenceManager.newInstance(IFeature.class);
-                       feature.setName(ofeature.getName());
-                       feature.setRequired(ofeature.isRequired());
-            widget.getFeatures().add(feature);
-                       // now attach all parameters to this feature.
-                       for(org.apache.wookie.w3c.IParam oparam : 
ofeature.getParameters()){
-                   IParam param = persistenceManager.newInstance(IParam.class);
-                               param.setName(oparam.getName());
-                               param.setValue(oparam.getValue());
-                   feature.getParameters().add(param);
-                       }
-               }
-       }
-
        /**
         * Create or update the access policies associated with a widget
         * @param persistenceManager the persistence manager
@@ -207,32 +85,32 @@ public class WidgetFactory {
         * @param widget the Wookie widget object
         * @param grantAccessRequests whether access requests are granted by 
default
         */
-       private static void createAccessRequests(IPersistenceManager 
persistenceManager, W3CWidget model, IWidget widget, boolean 
grantAccessRequests){
-         try {
-      //
-      // Remove any existing access policies
-      //
-      Policies.getInstance().clearPolicies(widget.getIdentifier());
-
-      //
-      // Create access policies for each access request in the widget model
-      //
-      for(IAccess access:model.getAccessList()){
-        Policy policy = new Policy();
-        policy.setOrigin(access.getOrigin());
-        policy.setScope(widget.getIdentifier());
-        policy.setDirective("DENY");
-        if (grantAccessRequests){
-          policy.setDirective("ALLOW");
-          _logger.info("access policy granted for 
"+widget.getLocalName("en")+" to access "+policy.getOrigin());
-        }
-        Policies.getInstance().addPolicy(policy);
-      }
-    } catch (ConfigurationException e) {
-      _logger.error("problem with policies configuration", e);
-    } catch (Exception e) {
-      _logger.error("problem setting policies", e);
-    }
+       private static void createAccessRequests(W3CWidget model, IWidget 
widget, boolean grantAccessRequests){
+               try {
+                       //
+                       // Remove any existing access policies
+                       //
+                       
Policies.getInstance().clearPolicies(widget.getIdentifier());
+
+                       //
+                       // Create access policies for each access request in 
the widget model
+                       //
+                       for(IAccess access:model.getAccessList()){
+                               Policy policy = new Policy();
+                               policy.setOrigin(access.getOrigin());
+                               policy.setScope(widget.getIdentifier());
+                               policy.setDirective("DENY");
+                               if (grantAccessRequests){
+                                       policy.setDirective("ALLOW");
+                                       _logger.info("access policy granted for 
"+widget.getLocalName("en")+" to access "+policy.getOrigin());
+                               }
+                               Policies.getInstance().addPolicy(policy);
+                       }
+               } catch (ConfigurationException e) {
+                       _logger.error("problem with policies configuration", e);
+               } catch (Exception e) {
+                       _logger.error("problem setting policies", e);
+               }
        }
 
        /**
@@ -241,57 +119,28 @@ public class WidgetFactory {
         * @return true if the widget is destroyed successfully
         */
        public static boolean destroy(IWidget widget, String resourcesPath){
-         
 
-               if(widget==null) return false;
-               
-               String widgetGuid = widget.getIdentifier();
-               String widgetName = widget.getLocalName("en");
-               
-    IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-               
-               // remove any widget instances for this widget
-               IWidgetInstance[] instances = 
persistenceManager.findByValue(IWidgetInstance.class, "widget", widget);  
-               for(IWidgetInstance instance : instances){
-                       
-                       // Delete all participants and shared data associated 
with any instances
-                       //
-                       // Note that we don't call this within 
WidgetInstanceFactory.destroy() as 
-                       // if called in a different context (to remove just one 
instance) it would 
-                       // have the side effect of deleting participants and 
shared data from other instances,
-                       // not just the one being deleted.
-                       //
-                       // Note also that we have to use the instance as the 
hook for removing participants as there is no
-                       // specific query for getting participants for a widget.
-                       //                                              
-                       IParticipant[] participants = new 
SharedContext(instance).getParticipants();
-                       persistenceManager.delete(participants);
-               ISharedData[] sharedData = new 
SharedContext(instance).getSharedData();
-               persistenceManager.delete(sharedData);
-               
-                       // remove any preferences
-                       IPreference[] preferences = 
instance.getPreferences().toArray(new 
IPreference[instance.getPreferences().size()]);// 
persistenceManager.findByValue(IPreference.class, "widgetInstance", instance);
-                       persistenceManager.delete(preferences);
-                       
-                       // remove the instance
-                       WidgetInstanceFactory.destroy(instance);
-                       
-               }
+               //
+               // Remove the metadata from the repository
+               //
+               
WidgetMetadataService.Factory.getInstance().removeWidget(widget);
 
+               //
                // remove any AccessRequests
-    try {
-      Policies.getInstance().clearPolicies(widget.getIdentifier());
-    } catch (ConfigurationException e) {
-      _logger.error("Problem with properties configuration", e);
-    }
-        
-               // remove the widget db entry itself
-               persistenceManager.delete(widget);
-               // now remove the widget file resources
-               WidgetFileUtils.removeWidgetResources(resourcesPath, 
widgetGuid);
+               //
+               try {
+                       
Policies.getInstance().clearPolicies(widget.getIdentifier());
+               } catch (ConfigurationException e) {
+                       _logger.error("Problem with properties configuration", 
e);
+               }
                
-    _logger.info("'"+widgetName+"' - " + "Widget was successfully deleted from 
the system.");
-    
+               //
+               // now remove the widget file resources
+               //
+               WidgetFileUtils.removeWidgetResources(resourcesPath, 
widget.getIdentifier());
+
+               _logger.info("'"+widget.getLocalName("en")+"' - " + "Widget was 
successfully deleted from the system.");
+
                return true;
        } 
        
@@ -302,46 +151,9 @@ public class WidgetFactory {
         * @param grantAccessRequests set to true to grant any access requests 
defined by the model
         */
        public static void update( W3CWidget model, IWidget widget,  boolean 
grantAccessRequests, File zipFile){
-           IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-          
-               widget.setDir(model.getDir());
-        widget.setLang(model.getLang());
-        widget.setDefaultLocale(model.getDefaultLocale());
-               
-        //
-        // Don't override the identifier - see WOOKIE-383
-        //
-        //widget.setIdentifier(model.getIdentifier());
-        
-               widget.setHeight(model.getHeight());
-               widget.setWidth(model.getWidth());
-               widget.setVersion(model.getVersion());
-               widget.setUpdateLocation(model.getUpdateLocation());
-               
-               // Clear old values
-               widget.setContentList(null);
-               widget.setNames(null);
-               widget.setDescriptions(null);
-               widget.setLicenses(null);
-               widget.setFeatures(null);       
-               widget.setIcons(null);
-               widget.setPreferences(null);
-               // We set this here to ensure widgets already imported in to
-               // a 0.9.0 version of wookie get this value set. See WOOKIE-256
-           if(zipFile != null){
-               widget.setPackagePath(zipFile.getPath());
-           }
-               // Set with updated values
-               createAuthor(persistenceManager, model,widget);
-               createStartFiles(persistenceManager, model,widget);
-               createNames(persistenceManager, model,widget);
-               createDescriptions(persistenceManager, model,widget);
-               createIcons(persistenceManager, model, widget);
-               createLicenses(persistenceManager, model,widget);               
-               createPreferences(persistenceManager, model,widget);
-               createFeatures(persistenceManager, model,widget);
-        persistenceManager.save(widget);
-               createAccessRequests(persistenceManager, model, widget, 
grantAccessRequests);
+           
+               
WidgetMetadataService.Factory.getInstance().updateWidget(widget, model);
+               createAccessRequests(model, widget, grantAccessRequests);
 
                _logger.info("'"+model.getLocalName("en") +"' - " + "Widget was 
successfully updated in the system.");
        }

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetInstanceFactory.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetInstanceFactory.java?rev=1565709&r1=1565708&r2=1565709&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetInstanceFactory.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/helpers/WidgetInstanceFactory.java
 Fri Feb  7 16:10:50 2014
@@ -24,6 +24,7 @@ import org.apache.wookie.beans.IWidget;
 import org.apache.wookie.beans.IWidgetInstance;
 import org.apache.wookie.beans.util.IPersistenceManager;
 import org.apache.wookie.beans.util.PersistenceManagerFactory;
+import org.apache.wookie.services.WidgetMetadataService;
 import org.apache.wookie.util.HashGenerator;
 import org.apache.wookie.util.opensocial.OpenSocialUtils;
 import org.apache.wookie.w3c.util.LocalizationUtils;
@@ -69,7 +70,7 @@ public class WidgetInstanceFactory{
        public static IWidgetInstance defaultInstance(String locale){
         IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
                IWidgetInstance instance = 
persistenceManager.newInstance(IWidgetInstance.class);
-               
instance.setWidget(persistenceManager.findWidgetByGuid("http://notsupported";)); 
//$NON-NLS-1$
+               
instance.setWidget(WidgetMetadataService.Factory.getInstance().getWidget("http://notsupported";));
 //$NON-NLS-1$
                instance.setIdKey("0000");
                instance.setLang(locale);
                instance.setOpensocialToken("");
@@ -92,7 +93,7 @@ public class WidgetInstanceFactory{
                        // Widget ID or Widget Type?
                IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
                        if (widgetId != null){
-                               widget = 
persistenceManager.findWidgetByGuid(widgetId);
+                               widget = 
WidgetMetadataService.Factory.getInstance().getWidget(widgetId);
                        } 
                        // Unsupported
                        if (widget == null) return null;


Reply via email to