Author: scottbw
Date: Sat Feb 8 17:16:49 2014
New Revision: 1566057
URL: http://svn.apache.org/r1566057
Log:
Use SPIs instead of persistence manager for Ajax API.
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java?rev=1566057&r1=1566056&r2=1566057&view=diff
==============================================================================
---
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
(original)
+++
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
Sat Feb 8 17:16:49 2014
@@ -24,17 +24,16 @@ import javax.servlet.http.HttpServletReq
import org.apache.log4j.Logger;
import org.apache.wookie.Messages;
import org.apache.wookie.ajaxmodel.IWidgetAPI;
+import org.apache.wookie.auth.AuthToken;
+import org.apache.wookie.auth.AuthTokenUtils;
+import org.apache.wookie.auth.InvalidAuthTokenException;
import org.apache.wookie.w3c.IDescription;
import org.apache.wookie.w3c.IName;
import org.apache.wookie.beans.IPreference;
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.controller.PropertiesController;
-import org.apache.wookie.queues.QueueManager;
-import org.apache.wookie.server.ContextListener;
import org.apache.wookie.server.LocaleHandler;
+import org.apache.wookie.services.PreferencesService;
+import org.apache.wookie.services.WidgetMetadataService;
import org.apache.wookie.util.WidgetFormattingUtils;
import org.apache.wookie.w3c.util.LocalizationUtils;
import org.directwebremoting.WebContextFactory;
@@ -54,17 +53,18 @@ public class WidgetAPIImpl implements IW
* @see
org.apache.wookie.ajaxmodel.IWidgetAPI#preferences(java.lang.String)
*/
public List<IPreference> preferences(String id_key) {
- ArrayList<IPreference> prefs = new ArrayList<IPreference>();
- if(id_key == null) return prefs;
- // check if instance is valid
- IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
- if(widgetInstance==null) return prefs;
-
- for (IPreference pref: widgetInstance.getPreferences()){
- prefs.add(new PreferenceDelegate(pref));
- }
- return prefs;
+ ArrayList<IPreference> prefs = new ArrayList<IPreference>();
+
+ try {
+ AuthToken authToken =
AuthTokenUtils.decryptAuthToken(id_key);
+ for (IPreference pref:
PreferencesService.Factory.getInstance().getPreferences(authToken.toString())){
+ prefs.add(new PreferenceDelegate(pref));
+ }
+ return prefs;
+ } catch (InvalidAuthTokenException e) {
+ return prefs;
+ }
+
}
/* (non-Javadoc)
@@ -72,60 +72,62 @@ public class WidgetAPIImpl implements IW
*/
public Map<String, String> metadata(String id_key) {
Map<String, String> map = new HashMap<String, String>();
- if(id_key == null) return map;
-
- // check if instance is valid
- IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
- if(widgetInstance==null) return map;
-
- // Get i18n-enabled metadata for the Widget's locale and encode
it using unicode control characters.
+ AuthToken authToken = null;
- String locales[] = {widgetInstance.getLang()};
- IWidget widget = widgetInstance.getWidget();
+ try {
+ authToken = AuthTokenUtils.decryptAuthToken(id_key);
+ // Get i18n-enabled metadata for the Widget's locale
and encode it using unicode control characters.
- String author = "";
- String email = "";
- String href = "";
- if (widget.getAuthor() != null){
- if (widget.getAuthor().getAuthorName() != null) author =
WidgetFormattingUtils.getEncoded(widget.getAuthor().getDir(),
widget.getAuthor().getAuthorName());
- if (widget.getAuthor().getEmail() != null) email =
widget.getAuthor().getEmail();
- if (widget.getAuthor().getHref() != null) href =
widget.getAuthor().getHref();
- }
+ String locales[] = {authToken.getLang()};
+ IWidget widget =
WidgetMetadataService.Factory.getInstance().getWidget(authToken.getWidgetId());
+
+ String author = "";
+ String email = "";
+ String href = "";
+ if (widget.getAuthor() != null){
+ if (widget.getAuthor().getAuthorName() != null) author =
WidgetFormattingUtils.getEncoded(widget.getAuthor().getDir(),
widget.getAuthor().getAuthorName());
+ if (widget.getAuthor().getEmail() != null) email =
widget.getAuthor().getEmail();
+ if (widget.getAuthor().getHref() != null) href =
widget.getAuthor().getHref();
+ }
+
+ String name = "";
+ IName iname =
(IName)LocalizationUtils.getLocalizedElement(widget.getNames().toArray(new
IName[widget.getNames().size()]), locales, widget.getDefaultLocale());
+ if (iname != null && iname.getName() != null) name =
WidgetFormattingUtils.getEncoded(iname.getDir(), iname.getName());
+ String shortName = "";
+ if (iname != null && iname.getShort() != null)
shortName = WidgetFormattingUtils.getEncoded(iname.getDir(), iname.getShort());
+
+ String description = "";
+ IDescription idescription =
(IDescription)LocalizationUtils.getLocalizedElement(widget.getDescriptions().toArray(new
IDescription[widget.getDescriptions().size()]), locales,
widget.getDefaultLocale());
+ if (idescription != null &&
idescription.getDescription() != null) description =
WidgetFormattingUtils.getEncoded(idescription.getDir(),
idescription.getDescription());
+
+ String version = "";
+ if (widget.getVersion() != null) version =
WidgetFormattingUtils.getEncoded(widget.getDir(), widget.getVersion());
+
+ String width = "0";
+ if (widget.getWidth() != null) width =
String.valueOf(widget.getWidth());
+
+ String height = "0";
+ if (widget.getHeight() != null) height =
String.valueOf(widget.getHeight());
+
+ // Add in metadata
- String name = "";
- IName iname =
(IName)LocalizationUtils.getLocalizedElement(widget.getNames().toArray(new
IName[widget.getNames().size()]), locales, widget.getDefaultLocale());
- if (iname != null && iname.getName() != null) name =
WidgetFormattingUtils.getEncoded(iname.getDir(), iname.getName());
- String shortName = "";
- if (iname != null && iname.getShort() != null) shortName =
WidgetFormattingUtils.getEncoded(iname.getDir(), iname.getShort());
-
- String description = "";
- IDescription idescription =
(IDescription)LocalizationUtils.getLocalizedElement(widget.getDescriptions().toArray(new
IDescription[widget.getDescriptions().size()]), locales,
widget.getDefaultLocale());
- if (idescription != null && idescription.getDescription() !=
null) description = WidgetFormattingUtils.getEncoded(idescription.getDir(),
idescription.getDescription());
-
- String version = "";
- if (widget.getVersion() != null) version =
WidgetFormattingUtils.getEncoded(widget.getDir(), widget.getVersion());
-
- String width = "0";
- if (widget.getWidth() != null) width =
String.valueOf(widget.getWidth());
-
- String height = "0";
- if (widget.getHeight() != null) height =
String.valueOf(widget.getHeight());
+ map.put("id", String.valueOf(widget.getIdentifier()));
//$NON-NLS-1$
+ map.put("author", author); //$NON-NLS-1$
+ map.put("authorEmail", email);//$NON-NLS-1$
+ map.put("authorHref", href);//$NON-NLS-1$
+ map.put("name", name);//$NON-NLS-1$
+ map.put("description", description);//$NON-NLS-1$
+ map.put("shortName", shortName); //$NON-NLS-1$
+ map.put("version",version);//$NON-NLS-1$
+ map.put("width", width);//$NON-NLS-1$
+ map.put("height", height);//$NON-NLS-1$
+
+ return map;
+ } catch (InvalidAuthTokenException e) {
+ return map;
+ }
- // Add in metadata
-
- map.put("id", String.valueOf(widget.getIdentifier()));
//$NON-NLS-1$
- map.put("author", author); //$NON-NLS-1$
- map.put("authorEmail", email);//$NON-NLS-1$
- map.put("authorHref", href);//$NON-NLS-1$
- map.put("name", name);//$NON-NLS-1$
- map.put("description", description);//$NON-NLS-1$
- map.put("shortName", shortName); //$NON-NLS-1$
- map.put("version",version);//$NON-NLS-1$
- map.put("width", width);//$NON-NLS-1$
- map.put("height", height);//$NON-NLS-1$
- return map;
}
/*
@@ -141,16 +143,14 @@ public class WidgetAPIImpl implements IW
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);
- if (widgetInstance == null) return
localizedMessages.getString("WidgetAPIImpl.0");
- if(ContextListener.usePreferenceInstanceQueues){
- QueueManager.getInstance().queueSetPreferenceRequest(id_key, key,
value);
- }
- else{
- PropertiesController.updatePreference(widgetInstance, key, value);
- }
- return "okay"; //$NON-NLS-1$
+
+ try {
+ AuthToken authToken = AuthTokenUtils.decryptAuthToken(id_key);
+
PreferencesService.Factory.getInstance().setPreference(authToken.toString(),
key, value);
+ return "okay"; //$NON-NLS-1$
+ } catch (InvalidAuthTokenException e) {
+ return localizedMessages.getString("WidgetAPIImpl.0");
+ }
}