Author: psharples
Date: Thu Mar 24 12:07:16 2011
New Revision: 1084926
URL: http://svn.apache.org/viewvc?rev=1084926&view=rev
Log:
Refactored to allow use of queues for persistence. See WOOKIE-145 for original
problem.
Modified:
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java?rev=1084926&r1=1084925&r2=1084926&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
Thu Mar 24 12:07:16 2011
@@ -33,6 +33,8 @@ import org.apache.wookie.beans.util.Pers
import org.apache.wookie.controller.PropertiesController;
import org.apache.wookie.controller.WidgetInstancesController;
import org.apache.wookie.helpers.Notifier;
+import org.apache.wookie.queues.QueueManager;
+import org.apache.wookie.server.ContextListener;
import org.apache.wookie.server.LocaleHandler;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.WebContext;
@@ -146,14 +148,19 @@ public class WidgetAPIImpl implements IW
* (non-Javadoc)
* @see
org.apache.wookie.ajaxmodel.IWidgetAPI#setPreferenceForKey(java.lang.String,
java.lang.String, java.lang.String)
*/
+ @SuppressWarnings("static-access")
public String setPreferenceForKey(String id_key, String key, String
value) {
HttpServletRequest request =
WebContextFactory.get().getHttpServletRequest();
- Messages localizedMessages =
LocaleHandler.localizeMessages(request);
- IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
+ Messages localizedMessages =
LocaleHandler.localizeMessages(request);
+ IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
+ IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
if (widgetInstance == null) return
localizedMessages.getString("WidgetAPIImpl.0");
- //
- PropertiesController.updatePreference(widgetInstance, key,
value);
+ if(ContextListener.usePreferenceInstanceQueues){
+
QueueManager.getInstance().queueSetPreferenceRequest(id_key, key, value);
+ }
+ else{
+ PropertiesController.updatePreference(widgetInstance,
key, value);
+ }
return "okay"; //$NON-NLS-1$
}
@@ -161,15 +168,21 @@ public class WidgetAPIImpl implements IW
* (non-Javadoc)
* @see
org.apache.wookie.ajaxmodel.IWidgetAPI#setSharedDataForKey(java.lang.String,
java.lang.String, java.lang.String)
*/
+ @SuppressWarnings("static-access")
public String setSharedDataForKey(String id_key, String key, String
value) {
HttpServletRequest request =
WebContextFactory.get().getHttpServletRequest();
Messages localizedMessages =
LocaleHandler.localizeMessages(request);
- IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
+ IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
+ IWidgetInstance widgetInstance;//
+ widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
if(widgetInstance == null) return
localizedMessages.getString("WidgetAPIImpl.0");
if(widgetInstance.isLocked()) return
localizedMessages.getString("WidgetAPIImpl.2");
- //
- PropertiesController.updateSharedDataEntry(widgetInstance, key,
value, false);
+ if(ContextListener.useSharedDataInstanceQueues){//
+
QueueManager.getInstance().queueSetSharedDataRequest(id_key,
widgetInstance.getSharedDataKey(), key, value, false);
+ }
+ else{
+
PropertiesController.updateSharedDataEntry(widgetInstance, key, value, false);
+ }
Notifier.notifySiblings(widgetInstance);
return "okay"; //$NON-NLS-1$
}
@@ -178,15 +191,20 @@ public class WidgetAPIImpl implements IW
* (non-Javadoc)
* @see
org.apache.wookie.ajaxmodel.IWidgetAPI#appendSharedDataForKey(java.lang.String,
java.lang.String, java.lang.String)
*/
+ @SuppressWarnings("static-access")
public String appendSharedDataForKey(String id_key, String key, String
value) {
HttpServletRequest request =
WebContextFactory.get().getHttpServletRequest();
- Messages localizedMessages =
LocaleHandler.localizeMessages(request);
- IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
+ Messages localizedMessages =
LocaleHandler.localizeMessages(request);
+ IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
+ IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
if(widgetInstance == null) return
localizedMessages.getString("WidgetAPIImpl.0");
if(widgetInstance.isLocked()) return
localizedMessages.getString("WidgetAPIImpl.2");
- //
- PropertiesController.updateSharedDataEntry(widgetInstance, key,
value, true);
+ if(ContextListener.useSharedDataInstanceQueues){//
+
QueueManager.getInstance().queueSetSharedDataRequest(id_key,
widgetInstance.getSharedDataKey(), key, value, true);
+ }
+ else{
+
PropertiesController.updateSharedDataEntry(widgetInstance, key, value, true);
+ }
Notifier.notifySiblings(widgetInstance);
return "okay"; //$NON-NLS-1$
}
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=1084926&r1=1084925&r2=1084926&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
Thu Mar 24 12:07:16 2011
@@ -28,6 +28,7 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.log4j.Logger;
import org.apache.wookie.Messages;
+import org.apache.wookie.ajaxmodel.IWidgetRuntimeHelper;
import org.apache.wookie.beans.util.IPersistenceManager;
import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.feature.FeatureLoader;
@@ -60,6 +61,8 @@ public class ContextListener implements
* '/webappname/WEB-INF/classes' ...at runtime.
*/
static Logger _logger =
Logger.getLogger(ContextListener.class.getName());
+ public static Boolean usePreferenceInstanceQueues;
+ public static Boolean useSharedDataInstanceQueues;
public void contextInitialized(ServletContextEvent event) {
try {
@@ -81,7 +84,9 @@ public class ContextListener implements
_logger.info("Using default widget server
properties, configure your local server using: " + localPropsFile.toString());
}
context.setAttribute("properties", (Configuration)
configuration);
-
+ // load these up now so we don't have to do it on every
request(i.e. filter) in the future
+ usePreferenceInstanceQueues =
configuration.getBoolean(IWidgetRuntimeHelper.USE_PREFERENCE_INSTANCE_QUEUES);
+ useSharedDataInstanceQueues =
configuration.getBoolean(IWidgetRuntimeHelper.USE_SHAREDDATA_INSTANCE_QUEUES);
/*
* Merge in system properties overrides
*/