Author: psharples
Date: Mon Dec 6 09:58:28 2010
New Revision: 1042557
URL: http://svn.apache.org/viewvc?rev=1042557&view=rev
Log:
Fix to allow wookie admin to delete instantiated widgets. See WOOKIE-168.
Modified:
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/PreferenceDelegate.java
incubator/wookie/trunk/src/org/apache/wookie/beans/IPreference.java
incubator/wookie/trunk/src/org/apache/wookie/beans/ISharedData.java
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/PreferenceImpl.java
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/SharedDataImpl.java
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAPersistenceManager.java
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/PreferenceImpl.java
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/SharedDataImpl.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/PreferenceDelegate.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/PreferenceDelegate.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/PreferenceDelegate.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/PreferenceDelegate.java
Mon Dec 6 09:58:28 2010
@@ -57,4 +57,9 @@ public class PreferenceDelegate implemen
this.readOnly = readOnly;
}
+ public Object getId() {
+ // TODO
+ return null;
+ }
+
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/IPreference.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/IPreference.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/IPreference.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/IPreference.java Mon Dec
6 09:58:28 2010
@@ -21,7 +21,7 @@ package org.apache.wookie.beans;
* @author <a href="mailto:[email protected]">Randy Watler</a>
* @version $Id$
*/
-public interface IPreference
+public interface IPreference extends IBean
{
/**
* Get widget instance preference value key.
Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/ISharedData.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/ISharedData.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/ISharedData.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/ISharedData.java Mon Dec
6 09:58:28 2010
@@ -21,7 +21,7 @@ package org.apache.wookie.beans;
* @author <a href="mailto:[email protected]">Randy Watler</a>
* @version $Id$
*/
-public interface ISharedData
+public interface ISharedData extends IBean
{
/**
* Get widget shared data value key.
Modified:
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/PreferenceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/PreferenceImpl.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/PreferenceImpl.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/PreferenceImpl.java
Mon Dec 6 09:58:28 2010
@@ -104,4 +104,9 @@ public class PreferenceImpl implements I
{
this.readOnly = (readOnly ? Boolean.TRUE : Boolean.FALSE);
}
+
+ public Object getId() {
+ // TODO is this correct - all the other elements use int field
+ return elementId;
+ }
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/SharedDataImpl.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/SharedDataImpl.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/SharedDataImpl.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/SharedDataImpl.java
Mon Dec 6 09:58:28 2010
@@ -104,4 +104,9 @@ public class SharedDataImpl implements I
{
this.sharedDataKey = sharedDataKey;
}
+
+ public Object getId() {
+ // TODO is this correct - all the other elements use int field
+ return elementId;
+ }
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAPersistenceManager.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAPersistenceManager.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAPersistenceManager.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAPersistenceManager.java
Mon Dec 6 09:58:28 2010
@@ -142,7 +142,9 @@ public class JPAPersistenceManager imple
BEAN_INTERFACE_TO_CLASS_MAP.put(IAccessRequest.class,
AccessRequestImpl.class);
BEAN_INTERFACE_TO_CLASS_MAP.put(IApiKey.class, ApiKeyImpl.class);
BEAN_INTERFACE_TO_CLASS_MAP.put(IParticipant.class,
ParticipantImpl.class);
+ BEAN_INTERFACE_TO_CLASS_MAP.put(IPreference.class,
PreferenceImpl.class);
BEAN_INTERFACE_TO_CLASS_MAP.put(IServerFeature.class,
ServerFeatureImpl.class);
+ BEAN_INTERFACE_TO_CLASS_MAP.put(ISharedData.class,
SharedDataImpl.class);
BEAN_INTERFACE_TO_CLASS_MAP.put(IWhitelist.class, WhitelistImpl.class);
BEAN_INTERFACE_TO_CLASS_MAP.put(IWidget.class, WidgetImpl.class);
BEAN_INTERFACE_TO_CLASS_MAP.put(IWidgetDefault.class,
WidgetDefaultImpl.class);
Modified:
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/PreferenceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/PreferenceImpl.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/PreferenceImpl.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/PreferenceImpl.java
Mon Dec 6 09:58:28 2010
@@ -127,4 +127,12 @@ public class PreferenceImpl implements I
{
this.readOnly = (readOnly ? Boolean.TRUE : Boolean.FALSE);
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.wookie.beans.IBean#getId()
+ */
+ public Object getId() {
+ return id;
+ }
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/SharedDataImpl.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/SharedDataImpl.java?rev=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/SharedDataImpl.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/SharedDataImpl.java
Mon Dec 6 09:58:28 2010
@@ -122,4 +122,12 @@ public class SharedDataImpl implements I
{
this.sharedDataKey = sharedDataKey;
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.wookie.beans.IBean#getId()
+ */
+ public Object getId() {
+ return id;
+ }
}
Modified:
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=1042557&r1=1042556&r2=1042557&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java Mon
Dec 6 09:58:28 2010
@@ -21,7 +21,9 @@ import org.apache.wookie.beans.ILicense;
import org.apache.wookie.beans.IName;
import org.apache.wookie.beans.IParam;
import org.apache.wookie.beans.IParticipant;
+import org.apache.wookie.beans.IPreference;
import org.apache.wookie.beans.IPreferenceDefault;
+import org.apache.wookie.beans.ISharedData;
import org.apache.wookie.beans.IStartFile;
import org.apache.wookie.beans.IWidget;
import org.apache.wookie.beans.IWidgetDefault;
@@ -247,7 +249,7 @@ public class WidgetFactory {
// remove any widget instances for this widget
IWidgetInstance[] instances =
persistenceManager.findByValue(IWidgetInstance.class, "widget", widget);
for(IWidgetInstance instance : instances){
- WidgetInstanceFactory.destroy(instance);
+
// Delete all participants associated with any instances
//
// Note that we don't call this within
WidgetInstanceFactory.destroy() as
@@ -257,17 +259,28 @@ public class WidgetFactory {
//
// 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 =
persistenceManager.findParticipants(instance);
for (IParticipant participant:participants){
persistenceManager.delete(participant);
}
+
+ // remove any preferences
+ IPreference[] preferences =
persistenceManager.findByValue(IPreference.class, "widgetInstance", instance);
+ persistenceManager.delete(preferences);
+
+ // remove the instance
+ WidgetInstanceFactory.destroy(instance);
}
// remove any AccessRequests
IAccessRequest[] accessRequests =
persistenceManager.findByValue(IAccessRequest.class, "widget", widget);
persistenceManager.delete(accessRequests);
-
+
+ //remove SharedDataEntries
+ ISharedData[] sharedData =
persistenceManager.findByValue(ISharedData.class, "widget", widget);
+ persistenceManager.delete(sharedData);
+
// remove the widget itself
persistenceManager.delete(widget);
return true;