You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2010/02/24 00:06:11 UTC
svn commit: r915574 - in /incubator/wookie/trunk/src/org/apache/wookie:
WidgetAdminServlet.java helpers/WidgetFactory.java
helpers/WidgetInstanceFactory.java manager/IWidgetAdminManager.java
manager/impl/WidgetAdminManager.java server/ContextListener.java
Author: scottbw
Date: Tue Feb 23 23:06:10 2010
New Revision: 915574
URL: http://svn.apache.org/viewvc?rev=915574&view=rev
Log:
Refactored some of the admin methods into static factories WidgetFactory and WidgetInstanceFactory to make the code easier to understand by keeping concerns together. Longer term I think the WidgetAdminManager can eventually be removed completely.
Added:
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceFactory.java
incubator/wookie/trunk/src/org/apache/wookie/manager/IWidgetAdminManager.java
incubator/wookie/trunk/src/org/apache/wookie/manager/impl/WidgetAdminManager.java
incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
Modified: incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java?rev=915574&r1=915573&r2=915574&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java Tue Feb 23 23:06:10 2010
@@ -41,6 +41,7 @@
import org.apache.wookie.exceptions.InvalidStartFileException;
import org.apache.wookie.exceptions.ResourceDuplicationException;
import org.apache.wookie.exceptions.ResourceNotFoundException;
+import org.apache.wookie.helpers.WidgetFactory;
import org.apache.wookie.helpers.WidgetKeyManager;
import org.apache.wookie.manager.IWidgetAdminManager;
import org.apache.wookie.manager.impl.WidgetAdminManager;
@@ -370,7 +371,7 @@
String widgetId = request.getParameter("widgetId"); //$NON-NLS-1$
Widget widget = Widget.findById(Integer.parseInt(widgetId));
String guid = widget.getGuid();
- if(manager.removeWidgetAndReferences(Integer.parseInt(widgetId))){
+ if(WidgetFactory.destroy(Integer.parseInt(widgetId))){
if(WidgetPackageUtils.removeWidgetResources(WIDGETFOLDER, guid)){
session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.12")); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -477,7 +478,8 @@
IManifestModel widgetModel = WidgetPackageUtils.processWidgetPackage(zipFile,properties.getString("widget.widgetfolder"), WIDGETFOLDER,UPLOADFOLDER,locales);//$NON-NLS-1$
if(!Widget.exists(widgetModel.getIdentifier())){
// ADD
- int dbkey = manager.addNewWidget(widgetModel, new String[]{});
+ Widget widget = WidgetFactory.addNewWidget(widgetModel);
+ int dbkey = widget.getId();
// widget added
session.setAttribute("message_value", "'"+ widgetModel.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.19")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
retrieveServices(session);
Added: incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java?rev=915574&view=auto
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java (added)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java Tue Feb 23 23:06:10 2010
@@ -0,0 +1,272 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wookie.helpers;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.apache.wookie.beans.AccessRequest;
+import org.apache.wookie.beans.Description;
+import org.apache.wookie.beans.Feature;
+import org.apache.wookie.beans.License;
+import org.apache.wookie.beans.Name;
+import org.apache.wookie.beans.Param;
+import org.apache.wookie.beans.PreferenceDefault;
+import org.apache.wookie.beans.StartFile;
+import org.apache.wookie.beans.Widget;
+import org.apache.wookie.beans.WidgetDefault;
+import org.apache.wookie.beans.WidgetIcon;
+import org.apache.wookie.beans.WidgetInstance;
+import org.apache.wookie.beans.WidgetType;
+import org.apache.wookie.manifestmodel.IAccessEntity;
+import org.apache.wookie.manifestmodel.IContentEntity;
+import org.apache.wookie.manifestmodel.IDescriptionEntity;
+import org.apache.wookie.manifestmodel.IFeatureEntity;
+import org.apache.wookie.manifestmodel.IIconEntity;
+import org.apache.wookie.manifestmodel.ILicenseEntity;
+import org.apache.wookie.manifestmodel.IManifestModel;
+import org.apache.wookie.manifestmodel.INameEntity;
+import org.apache.wookie.manifestmodel.IParamEntity;
+import org.apache.wookie.manifestmodel.IPreferenceEntity;
+
+/**
+ * Factory for creating and destroying Widgets
+ */
+public class WidgetFactory {
+ static Logger _logger = Logger.getLogger(WidgetFactory.class.getName());
+
+ /**
+ * Adds a new widget
+ * @param model the model of the widget to add
+ * @param grantAccessRequests whether to automatically grant access requests for the widget
+ * @return the widget
+ */
+ public static Widget addNewWidget(IManifestModel model, boolean grantAccessRequests) {
+ return addNewWidget(model,null, grantAccessRequests);
+ }
+
+ /**
+ * Adds a new widget
+ * @param model the model of the widget to add
+ * @return the widget
+ */
+ public static Widget addNewWidget(IManifestModel model) {
+ return addNewWidget(model,null,false);
+ }
+
+ /**
+ * Adds a new widget
+ * @param model the model of the widget to add
+ * @param widgetTypes the types to allocate the widget to
+ * @return the widget
+ */
+ public static Widget addNewWidget(IManifestModel model,String[] widgetTypes) {
+ return addNewWidget(model,widgetTypes,false);
+ }
+
+
+ /**
+ * Constructs a new Widget and persists it and all dependent objects
+ * @param model the model for the widget
+ * @param widgetTypes the types to set for the widget
+ * @param grantAccessRequests whether to grant access requests created for the widget
+ * @return the widget
+ */
+ public static Widget addNewWidget(IManifestModel model, String[] widgetTypes, boolean grantAccessRequests) {
+ Widget widget = createWidget(model);
+ createTypes(widgetTypes, widget);
+ createStartFiles(model,widget);
+ createNames(model,widget);
+ createDescriptions(model,widget);
+ createIcons(model, widget);
+ createLicenses(model,widget);
+ createPreferences(model,widget);
+ createFeatures(model,widget);
+ createAccessRequests(model, widget, grantAccessRequests);
+ return widget;
+ }
+
+ private static Widget createWidget(IManifestModel model){
+ Widget widget;
+ widget = new Widget();
+ widget.setWidgetAuthor(model.getAuthor());
+ widget.setWidgetAuthorEmail(model.getAuthorEmail());
+ widget.setWidgetAuthorHref(model.getAuthorHref());
+ widget.setGuid(model.getIdentifier());
+ widget.setHeight(model.getHeight());
+ widget.setWidth(model.getWidth());
+ widget.setVersion(model.getVersion());
+ widget.save();
+ return widget;
+ }
+
+ @SuppressWarnings("unchecked")
+ private static void createTypes(String[] widgetTypes, Widget widget){
+ WidgetType widgetType;
+ if (widgetTypes!=null){
+ for(int i=0;i<widgetTypes.length;i++){
+ widgetType = new WidgetType();
+ widgetType.setWidgetContext(widgetTypes[i]);
+ widgetType.setWidget(widget);
+ widget.getWidgetTypes().add(widgetType);
+ widgetType.save();
+ }
+ }
+ }
+
+ private static void createStartFiles(IManifestModel model, Widget widget){
+ for (IContentEntity page:model.getContentList()){
+ StartFile start = new StartFile();
+ start.setCharset(page.getCharSet());
+ start.setLang(page.getLang());
+ start.setUrl(page.getSrc());
+ start.setWidget(widget);
+ start.save();
+ }
+ }
+
+ private static void createNames(IManifestModel model, Widget widget){
+ for (INameEntity name:model.getNames()){
+ Name widgetName = new Name();
+ widgetName.setLang(name.getLang());
+ widgetName.setDir(name.getDir());
+ widgetName.setName(name.getName());
+ widgetName.setShortName(name.getShort());
+ widgetName.setWidget(widget);
+ widgetName.save();
+ }
+ }
+
+ private static void createDescriptions(IManifestModel model, Widget widget){
+ for (IDescriptionEntity desc:model.getDescriptions()){
+ Description widgetDesc = new Description();
+ widgetDesc.setContent(desc.getDescription());
+ widgetDesc.setLang(desc.getLang());
+ widgetDesc.setDir(desc.getDir());
+ widgetDesc.setWidget(widget);
+ widgetDesc.save();
+ }
+ }
+
+ private static void createIcons(IManifestModel model, Widget widget){
+ for(IIconEntity icon: model.getIconsList()){
+ WidgetIcon widgetIcon = new WidgetIcon(icon.getSrc(),icon.getHeight(),icon.getWidth(),icon.getLang(), widget);
+ widgetIcon.save();
+ }
+ }
+
+ private static void createLicenses(IManifestModel model, Widget widget){
+ for(ILicenseEntity licenseModel: model.getLicensesList()){
+ License license = new License(licenseModel.getLicenseText(),licenseModel.getHref(), licenseModel.getLang(), licenseModel.getDir(), widget);
+ license.save();
+ }
+ }
+
+ private static void createPreferences(IManifestModel model, Widget widget){
+ for(IPreferenceEntity prefEntity : model.getPrefences()){
+ PreferenceDefault prefenceDefault = new PreferenceDefault();
+ prefenceDefault.setPreference(prefEntity.getName());
+ prefenceDefault.setValue(prefEntity.getValue());
+ prefenceDefault.setReadOnly(prefEntity.isReadOnly());
+ prefenceDefault.setWidget(widget);
+ prefenceDefault.save();
+ }
+ }
+
+ private static void createFeatures(IManifestModel model, Widget widget){
+ for(IFeatureEntity featureEntity: model.getFeatures()){
+ Feature feature = new Feature();
+ feature.setFeatureName(featureEntity.getName());
+ feature.setRequired(featureEntity.isRequired());
+ feature.setWidget(widget);
+ feature.save();
+ // now attach all parameters to this feature.
+ for(IParamEntity paramEntity : featureEntity.getParams()){
+ Param param = new Param();
+ param.setParameterName(paramEntity.getName());
+ param.setParameterValue(paramEntity.getValue());
+ param.setParentFeature(feature);
+ param.save();
+ }
+ }
+ }
+
+ private static void createAccessRequests(IManifestModel model, Widget widget, boolean grantAccessRequests){
+ for(IAccessEntity accessEntity:model.getAccessList()){
+ AccessRequest acc = new AccessRequest();
+ acc.setOrigin(accessEntity.getOrigin());
+ acc.setSubdomains(accessEntity.hasSubDomains());
+ acc.setWidget(widget);
+ acc.setGranted(grantAccessRequests);
+ if (grantAccessRequests){
+ _logger.info("access policy granted for "+widget.getWidgetTitle("en")+" to access "+acc.getOrigin());
+ }
+ acc.save();
+ }
+ }
+
+ /**
+ * Destroy a widget and all dependent objects and references
+ * @param id the id of the widget
+ * @return true if the widget is destroyed successfully
+ */
+ public static boolean destroy(int id){
+ Widget widget = Widget.findById(Integer.valueOf(id));
+ return destroy(widget);
+ }
+
+ /**
+ * Destroy a widget and all dependent objects and references
+ * @param widget the widget to destroy
+ * @return true if the widget is destroyed successfully
+ */
+ public static boolean destroy(Widget widget){
+
+ if(widget==null) return false;
+
+ // remove any defaults for this widget
+ WidgetDefault[] widgetDefault = WidgetDefault.findByValue("widgetId", widget.getId());
+ if (widgetDefault.length == 1) widgetDefault[0].delete();
+
+ // remove any widget instances for this widget
+ WidgetInstance[] instances = WidgetInstance.findByValue("widget", widget);
+ for(WidgetInstance instance : instances){
+ WidgetInstanceFactory.destroy(instance);
+ }
+
+ // remove any widget types for this widget
+ Set<?> types = widget.getWidgetTypes();
+ WidgetType[] widgetTypes = types.toArray(new WidgetType[types.size()]);
+ for(int j=0;j<widgetTypes.length;++j){
+ widgetTypes[j].delete();
+ }
+
+ // remove PreferenceDefaults
+ PreferenceDefault.delete(PreferenceDefault.findByValue("widget", widget));
+
+ // remove Features
+ for(Feature feature :Feature.findByValue("widget", widget)){
+ Param.delete(Param.findByValue("parentFeature", feature));
+ feature.delete();
+ }
+
+ // remove any AccessRequests
+ AccessRequest.delete(AccessRequest.findByValue("widget", widget));
+
+ // remove the widget itself
+ widget.delete();
+ return true;
+ }
+
+}
Modified: incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceFactory.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceFactory.java?rev=915574&r1=915573&r2=915574&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceFactory.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceFactory.java Tue Feb 23 23:06:10 2010
@@ -19,8 +19,10 @@
import org.apache.commons.configuration.Configuration;
import org.apache.log4j.Logger;
import org.apache.wookie.Messages;
+import org.apache.wookie.beans.Participant;
import org.apache.wookie.beans.Preference;
import org.apache.wookie.beans.PreferenceDefault;
+import org.apache.wookie.beans.SharedData;
import org.apache.wookie.beans.Widget;
import org.apache.wookie.beans.WidgetInstance;
import org.apache.wookie.util.HashGenerator;
@@ -194,6 +196,17 @@
pref.setReadOnly(readOnly);
pref.save();
}
+
+ /**
+ * Destroy a widget instance and all references to it
+ * @param instance
+ */
+ public static void destroy(WidgetInstance instance){
+ SharedData.delete(SharedData.findByValue("widgetInstance", instance));
+ Preference.delete(Preference.findByValue("widgetInstance", instance));
+ Participant.delete(Participant.findByValue("widgetInstance", instance));
+ instance.delete();
+ }
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/manager/IWidgetAdminManager.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manager/IWidgetAdminManager.java?rev=915574&r1=915573&r2=915574&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/manager/IWidgetAdminManager.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/manager/IWidgetAdminManager.java Tue Feb 23 23:06:10 2010
@@ -14,8 +14,6 @@
package org.apache.wookie.manager;
-import org.apache.wookie.manifestmodel.IManifestModel;
-
/**
* Interface for admin functions
*
@@ -26,51 +24,6 @@
public interface IWidgetAdminManager {
/**
- * Adds a new widget
- * @param model the model of the widget to add
- * @param widgetTypes the types to allocate the widget to
- * @return true if successfully added, otherwise false
- */
- int addNewWidget(IManifestModel model, String[] widgetTypes);
-
- /**
- * Adds a new widget
- * @param model the model of the widget to add
- * @return true if successfully added, otherwise false
- */
- int addNewWidget(IManifestModel model);
-
- /**
- * Adds a new widget
- * @param model the model of the widget to add
- * @param grantAccessRequests whether to automatically grant access requests for the widget
- * @return true if successfully added, otherwise false
- */
- int addNewWidget(IManifestModel model, boolean grantAccessRequests);
-
- /**
- * delete any default types that belong to a given widgetid
- */
- void deleteWidgetDefaultById(int widgetKey);
-
- /**
- * from a given widgetKey & service type, remove the default widget entry
- * @param widgetKey
- * @param serviceType
- */
- void deleteWidgetDefaultByIdAndServiceType(int widgetKey,
- String serviceType);
-
- /**
- * Check to see if a service type is currently listed for a particular widget
- * @param dbkey
- * @param serviceType
- * @return
- */
- boolean doesServiceExistForWidget(int dbkey,
- String serviceType);
-
- /**
* Find if this widget is maximizable, from given key
* @param dbKey
* @return
@@ -85,13 +38,6 @@
boolean removeSingleWidgetType(int widgetId, String widgetType);
/**
- * Remove a widget and any references in the DB - i.e. WidgetInstances
- * @param widgetId
- * @return
- */
- boolean removeWidgetAndReferences(int widgetId);
-
- /**
* Sets a given widget to be the default for a given context - i.e. chat or discussion etc...
* @param key - the key of the widget to set as defult
* @param widgetType - the type of widget
Modified: incubator/wookie/trunk/src/org/apache/wookie/manager/impl/WidgetAdminManager.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manager/impl/WidgetAdminManager.java?rev=915574&r1=915573&r2=915574&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/manager/impl/WidgetAdminManager.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/manager/impl/WidgetAdminManager.java Tue Feb 23 23:06:10 2010
@@ -20,34 +20,10 @@
import org.apache.log4j.Logger;
import org.apache.wookie.Messages;
-import org.apache.wookie.beans.AccessRequest;
-import org.apache.wookie.beans.Description;
-import org.apache.wookie.beans.Feature;
-import org.apache.wookie.beans.License;
-import org.apache.wookie.beans.Name;
-import org.apache.wookie.beans.Param;
-import org.apache.wookie.beans.Participant;
-import org.apache.wookie.beans.Preference;
-import org.apache.wookie.beans.PreferenceDefault;
-import org.apache.wookie.beans.SharedData;
-import org.apache.wookie.beans.StartFile;
-import org.apache.wookie.beans.Whitelist;
import org.apache.wookie.beans.Widget;
import org.apache.wookie.beans.WidgetDefault;
-import org.apache.wookie.beans.WidgetIcon;
-import org.apache.wookie.beans.WidgetInstance;
import org.apache.wookie.beans.WidgetType;
import org.apache.wookie.manager.IWidgetAdminManager;
-import org.apache.wookie.manifestmodel.IAccessEntity;
-import org.apache.wookie.manifestmodel.IContentEntity;
-import org.apache.wookie.manifestmodel.IDescriptionEntity;
-import org.apache.wookie.manifestmodel.IFeatureEntity;
-import org.apache.wookie.manifestmodel.IIconEntity;
-import org.apache.wookie.manifestmodel.ILicenseEntity;
-import org.apache.wookie.manifestmodel.IManifestModel;
-import org.apache.wookie.manifestmodel.INameEntity;
-import org.apache.wookie.manifestmodel.IParamEntity;
-import org.apache.wookie.manifestmodel.IPreferenceEntity;
/**
* WidgetAdminManager
@@ -67,142 +43,7 @@
this.localizedMessages = localizedMessages;
}
- public int addNewWidget(IManifestModel model, boolean grantAccessRequests) {
- return addNewWidget(model,null, grantAccessRequests);
- }
-
- public int addNewWidget(IManifestModel model) {
- return addNewWidget(model,null,false);
- }
-
- public int addNewWidget(IManifestModel model,String[] widgetTypes) {
- return addNewWidget(model,widgetTypes,false);
- }
-
- @SuppressWarnings("unchecked")
- public int addNewWidget(IManifestModel model, String[] widgetTypes, boolean grantAccessRequests) {
- // NOTE: we pass the whole model here, so that we can create all the DB hooks more easily.
- int newWidgetIdx = -1;
- Widget widget;
- widget = new Widget();
- widget.setWidgetAuthor(model.getAuthor());
- widget.setWidgetAuthorEmail(model.getAuthorEmail());
- widget.setWidgetAuthorHref(model.getAuthorHref());
- widget.setGuid(model.getIdentifier());
- widget.setHeight(model.getHeight());
- widget.setWidth(model.getWidth());
- widget.setVersion(model.getVersion());
- widget.save();
- WidgetType widgetType;
- if (widgetTypes!=null){
- for(int i=0;i<widgetTypes.length;i++){
- widgetType = new WidgetType();
- widgetType.setWidgetContext(widgetTypes[i]);
- widgetType.setWidget(widget);
- widget.getWidgetTypes().add(widgetType);
- widgetType.save();
- }
- }
- newWidgetIdx = widget.getId();
-
- // Start Files
- for (IContentEntity page:model.getContentList()){
- StartFile start = new StartFile();
- start.setCharset(page.getCharSet());
- start.setLang(page.getLang());
- start.setUrl(page.getSrc());
- start.setWidget(widget);
- start.save();
- }
-
- // Names
- for (INameEntity name:model.getNames()){
- Name widgetName = new Name();
- widgetName.setLang(name.getLang());
- widgetName.setDir(name.getDir());
- widgetName.setName(name.getName());
- widgetName.setShortName(name.getShort());
- widgetName.setWidget(widget);
- widgetName.save();
- }
-
- // Descriptions
- for (IDescriptionEntity desc:model.getDescriptions()){
- Description widgetDesc = new Description();
- widgetDesc.setContent(desc.getDescription());
- widgetDesc.setLang(desc.getLang());
- widgetDesc.setDir(desc.getDir());
- widgetDesc.setWidget(widget);
- widgetDesc.save();
- }
-
- // Icons
- for(IIconEntity icon: model.getIconsList()){
- WidgetIcon widgetIcon = new WidgetIcon(icon.getSrc(),icon.getHeight(),icon.getWidth(),icon.getLang(), widget);
- widgetIcon.save();
- }
-
- // Licenses
- for(ILicenseEntity licenseModel: model.getLicensesList()){
- License license = new License(licenseModel.getLicenseText(),licenseModel.getHref(), licenseModel.getLang(), licenseModel.getDir(), widget);
- license.save();
- }
-
- // Save default preferences
- for(IPreferenceEntity prefEntity : model.getPrefences()){
- PreferenceDefault prefenceDefault = new PreferenceDefault();
- prefenceDefault.setPreference(prefEntity.getName());
- prefenceDefault.setValue(prefEntity.getValue());
- prefenceDefault.setReadOnly(prefEntity.isReadOnly());
- prefenceDefault.setWidget(widget);
- prefenceDefault.save();
- }
-
- // Save Features
- for(IFeatureEntity featureEntity: model.getFeatures()){
- Feature feature = new Feature();
- feature.setFeatureName(featureEntity.getName());
- feature.setRequired(featureEntity.isRequired());
- feature.setWidget(widget);
- feature.save();
- // now attach all parameters to this feature.
- for(IParamEntity paramEntity : featureEntity.getParams()){
- Param param = new Param();
- param.setParameterName(paramEntity.getName());
- param.setParameterValue(paramEntity.getValue());
- param.setParentFeature(feature);
- param.save();
- }
- }
-
- // Save Access Requests
- for(IAccessEntity accessEntity:model.getAccessList()){
- AccessRequest acc = new AccessRequest();
- acc.setOrigin(accessEntity.getOrigin());
- acc.setSubdomains(accessEntity.hasSubDomains());
- acc.setWidget(widget);
- acc.setGranted(grantAccessRequests);
- if (grantAccessRequests){
- _logger.info("access policy granted for "+widget.getWidgetTitle("en")+" to access "+acc.getOrigin());
- }
- acc.save();
- }
-
- return newWidgetIdx;
- }
-
- /* (non-Javadoc)
- * @see org.apache.wookie.manager.IWidgetAdminManager#deleteWidgetDefaultById(int)
- */
- public void deleteWidgetDefaultById(int widgetKey){
- WidgetDefault[] widgetDefault = WidgetDefault.findByValue("widgetId", widgetKey);
- if (widgetDefault.length == 1) widgetDefault[0].delete();
- }
-
- /* (non-Javadoc)
- * @see org.apache.wookie.manager.IWidgetAdminManager#deleteWidgetDefaultByIdAndServiceType(int, java.lang.String)
- */
- public void deleteWidgetDefaultByIdAndServiceType(int widgetKey, String serviceType){
+ private void deleteWidgetDefaultByIdAndServiceType(int widgetKey, String serviceType){
Map<String, Object> map = new HashMap<String, Object>();
map.put("widgetId", widgetKey);
map.put("widgetContext", serviceType);
@@ -211,10 +52,7 @@
WidgetDefault.delete(widgetDefaults);
}
- /* (non-Javadoc)
- * @see org.apache.wookie.manager.IWidgetAdminManager#doesServiceExistForWidget(int, java.lang.String)
- */
- public boolean doesServiceExistForWidget(int dbkey, String serviceType){
+ private boolean doesServiceExistForWidget(int dbkey, String serviceType){
Widget widget = Widget.findById(Integer.valueOf(dbkey));
Map<String, Object> map = new HashMap<String, Object>();
map.put("widget", widget);
@@ -260,49 +98,6 @@
}
/* (non-Javadoc)
- * @see org.apache.wookie.manager.IWidgetAdminManager#removeWidgetAndReferences(int)
- */
- public boolean removeWidgetAndReferences(int widgetId){
- // get the widget
- Widget widget = Widget.findById(Integer.valueOf(widgetId));
- // remove any defaults for this widget
- deleteWidgetDefaultById(widgetId);
-
- if(widget==null) return false;
- // find any widget instances for this widget
- WidgetInstance[] instances = WidgetInstance.findByValue("widget", widget);
- // try to remove prefs, shareddata and then the instances
- for(WidgetInstance inst : instances){
- SharedData.delete(SharedData.findByValue("widgetInstance", inst));
- Preference.delete(Preference.findByValue("widgetInstance", inst));
- Participant.delete(Participant.findByValue("widgetInstance", inst));
- inst.delete();
- }
- // remove any widget types for this widget
- Set<?> types = widget.getWidgetTypes();
- WidgetType[] widgetTypes = types.toArray(new WidgetType[types.size()]);
- for(int j=0;j<widgetTypes.length;++j){
- widgetTypes[j].delete();
- }
-
- //Delete any PreferenceDefaults
- PreferenceDefault.delete(PreferenceDefault.findByValue("widget", widget));
-
- // next do the features & children params
- for(Feature feature :Feature.findByValue("widget", widget)){
- Param.delete(Param.findByValue("parentFeature", feature));
- feature.delete();
- }
-
- // remove the widget itself
- widget.delete();
- return true;
- }
-
-
-
-
- /* (non-Javadoc)
* @see org.apache.wookie.manager.IWidgetAdminManager#setDefaultWidget(int, java.lang.String)
*/
public void setDefaultWidget(int key, String widgetType){
Modified: incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java?rev=915574&r1=915573&r2=915574&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java Tue Feb 23 23:06:10 2010
@@ -28,7 +28,7 @@
import org.apache.wookie.exceptions.BadManifestException;
import org.apache.wookie.exceptions.BadWidgetZipFileException;
import org.apache.wookie.feature.FeatureLoader;
-import org.apache.wookie.manager.impl.WidgetAdminManager;
+import org.apache.wookie.helpers.WidgetFactory;
import org.apache.wookie.manifestmodel.IManifestModel;
import org.apache.wookie.util.WgtWatcher;
import org.apache.wookie.util.WidgetPackageUtils;
@@ -161,9 +161,8 @@
dbManager.beginTransaction();
File upload = WidgetPackageUtils.dealWithDroppedFile(UPLOADFOLDER, f);
IManifestModel model = WidgetPackageUtils.processWidgetPackage(upload, localWidgetFolderPath, WIDGETFOLDER, UPLOADFOLDER, locales);
- WidgetAdminManager manager = new WidgetAdminManager(null);
if(!Widget.exists(model.getIdentifier())) {
- manager.addNewWidget(model, true);
+ WidgetFactory.addNewWidget(model, true);
_logger.info(model.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.19"));
} else {
_logger.info(model.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.20"));