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/08/23 11:46:43 UTC

svn commit: r988048 [3/6] - in /incubator/wookie/trunk: ./ WebContent/WEB-INF/ WebContent/admin/ WebContent/deploy/ WebContent/webmenu/ WebContent/wservices/notsupported/ WebContent/wservices/notsupported/locales/ WebContent/wservices/notsupported/loca...

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=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java Mon Aug 23 09:46:30 2010
@@ -28,12 +28,13 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.log4j.Logger;
-import org.apache.wookie.beans.ApiKey;
-import org.apache.wookie.beans.ServerFeature;
-import org.apache.wookie.beans.Whitelist;
-import org.apache.wookie.beans.Widget;
-import org.apache.wookie.beans.WidgetDefault;
-import org.apache.wookie.beans.WidgetService;
+import org.apache.wookie.beans.IApiKey;
+import org.apache.wookie.beans.IWhitelist;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetDefault;
+import org.apache.wookie.beans.IWidgetService;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.controller.WidgetServicesController;
 import org.apache.wookie.exceptions.InvalidParametersException;
 import org.apache.wookie.exceptions.ResourceDuplicationException;
@@ -104,36 +105,36 @@ public class WidgetAdminServlet extends 
 
 	/**
 	 * Add a new service type to the DB
-	 * @param session
 	 * @param request
 	 * @param manager
 	 */
-	private void addNewService(HttpSession session, HttpServletRequest request) {
+	private void addNewService(HttpServletRequest request) {
 		String serviceName = request.getParameter("newservice"); //$NON-NLS-1$
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);	
 		try {
 			WidgetServicesController.create(serviceName);
-			session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.0")); //$NON-NLS-1$ //$NON-NLS-2$
+			request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.0")); //$NON-NLS-1$ //$NON-NLS-2$
 		} catch (ResourceDuplicationException e) {
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.1")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.1")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		} catch (InvalidParametersException e) {
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.1")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.1")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
 	}
 
 	/**
 	 *  Adds a new entry to the whitelist DB
 	 */
-	private void addWhiteListEntry(HttpSession session, HttpServletRequest request) {
+	private void addWhiteListEntry(HttpServletRequest request) {
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		String uri = request.getParameter("newuri"); //$NON-NLS-1$
-		Whitelist list = new Whitelist();
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWhitelist list = persistenceManager.newInstance(IWhitelist.class);
 		list.setfUrl(uri);
-		if(list.save()){
-			session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.2")); //$NON-NLS-1$ //$NON-NLS-2$ 
+		if(persistenceManager.save(list)){
+			request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.2")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
 		else{
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.3")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.3")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
 	}
 
@@ -163,11 +164,7 @@ public class WidgetAdminServlet extends 
 		}
 		Configuration properties = (Configuration) session.getServletContext().getAttribute("properties"); //$NON-NLS-1$
 
-		session.setAttribute("error_value", null); //$NON-NLS-1$
-		session.setAttribute("message_value", null); //$NON-NLS-1$
-		session.setAttribute("widget_defaults", null); //$NON-NLS-1$
-		session.setAttribute("widgets", null); //$NON-NLS-1$
-		session.setAttribute("version", properties.getString("widget.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		request.setAttribute("version", properties.getString("widget.version")); //$NON-NLS-1$ //$NON-NLS-2$
 		String task = request.getParameter("operation"); //$NON-NLS-1$
 		Operation op=null;
 		// sanity check...		
@@ -176,19 +173,19 @@ public class WidgetAdminServlet extends 
 			try {op = Operation.valueOf(task);} 
 			catch (IllegalArgumentException e) {
 				op=null;
-				session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.4")); //$NON-NLS-1$ //$NON-NLS-2$				
+				request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.4")); //$NON-NLS-1$ //$NON-NLS-2$				
 			}
 		}	
 		if(op!=null){
 			switch (op) {
 			case ADDNEWWHITELISTENTRY: {
-				addWhiteListEntry(session, request);					
-				listWhiteListOperation(session);
+				addWhiteListEntry(request);					
+				listWhiteListOperation(request);
 				doForward(request, response, faddToWhiteListPage);
 				break;
 			}
 			case VIEWWHITELIST: {
-				listWhiteListOperation(session);
+				listWhiteListOperation(request);
 				if(request.getParameter("param").equalsIgnoreCase("list")){											 //$NON-NLS-1$ //$NON-NLS-2$
 					doForward(request, response, fViewWhiteListPage);
 				}
@@ -201,40 +198,40 @@ public class WidgetAdminServlet extends 
 				break;
 			}
 			case REMOVEWIDGET: {
-				removeWidget(session, request, properties, manager);										
-				listOperation(session, false);					
+				removeWidget(request, properties, manager);										
+				listOperation(request, false);					
 				doForward(request, response, fListWidgetsForDeletePage);					
 				break;
 			}
 			case REVISETYPES: {
-				reviseTypes(session, request, manager);					
+				reviseTypes(request, manager);					
 				doForward(request, response, fUpLoadResultsPage);
 				break;
 			}
 			case ADDNEWSERVICE: {
-				addNewService(session, request);	
-				retrieveServices(session);
+				addNewService(request);	
+				retrieveServices(request);
 				doForward(request, response, fAddNewServicesPage);
 				break;
 			}
 			case UPLOADWIDGET: {
-				uploadOperation(request, properties, manager, session);						
+				uploadOperation(request, properties, manager);						
 				doForward(request, response, fUpLoadResultsPage);
 				break;
 			}
 			case LISTWIDGETS: {
 				if(request.getParameter("param").equalsIgnoreCase("remove")){ //$NON-NLS-1$ //$NON-NLS-2$
-					listOperation(session, false);					
+					listOperation(request, false);					
 					doForward(request, response, fListWidgetsForDeletePage);
 				}
 				else{
-					listOperation(session, true);					
+					listOperation(request, true);					
 					doForward(request, response, fListWidgetsPage);						
 				}
 				break;
 			}
 			case LISTSERVICES: {
-				retrieveServices(session);
+				retrieveServices(request);
 				if(request.getParameter("param").equalsIgnoreCase("list")){											 //$NON-NLS-1$ //$NON-NLS-2$
 					doForward(request, response, fListServicesPage);
 				}
@@ -247,51 +244,51 @@ public class WidgetAdminServlet extends 
 				break;
 			}
 			case SETWIDGETTYPES: {
-				updateWidgetTypes(session, request, manager);
-				listOperation(session, true);											
+				updateWidgetTypes(request, manager);
+				listOperation(request, true);											
 				doForward(request, response, fListWidgetsPage);
 				break;
 			}				
 			case REMOVESERVICE:{
-				removeServiceOperation(session, request);
+				removeServiceOperation(request);
 				doForward(request, response, fRemoveServicesPage);
 				break;
 			}
 			case REMOVEWHITELISTENTRY: {
-				removeWhiteListEntry(session, request);										
-				listWhiteListOperation(session);
+				removeWhiteListEntry(request);										
+				listWhiteListOperation(request);
 				doForward(request, response, fremoveWhiteListPage);
 				break;
 			}
 			case REMOVESINGLEWIDGETTYPE:{
-				removeSingleWidgetTypeOperation(session, request, manager);
-				listOperation(session, true);
+				removeSingleWidgetTypeOperation(request, manager);
+				listOperation(request, true);
 				doForward(request, response, fListWidgetsPage);
 				break;
 			}
 			case SETDEFAULTWIDGET:{
-				setDefaultWidgetOperation(session, request, manager);
+				setDefaultWidgetOperation(request, manager);
 				doForward(request, response, fListWidgetsPage);
 				break;
 			}
 			case REGISTERGADGET:{
-				registerOperation(request, properties, session);
+				registerOperation(request, properties);
 				doForward(request, response,fMainPage);
 				break;
 			}
 			case LISTAPIKEYS:{
-				listAPIKeysOperation(session, request);
+				listAPIKeysOperation(request);
 				doForward(request, response, fListAPIKeysPage);
 				break;
 			}
 			case REVOKEAPIKEY:{
-				revokeAPIKeyOperation(session, request);
+				revokeAPIKeyOperation(request);
 				doForward(request, response, fListAPIKeysPage);
 				break;
 			}
 
 			default: {
-				session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.5"));// need to i18n this //$NON-NLS-1$ //$NON-NLS-2$ 
+				request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.5"));// need to i18n this //$NON-NLS-1$ //$NON-NLS-2$ 
 				doForward(request, response, fMainPage);
 			}
 			}						
@@ -312,107 +309,112 @@ public class WidgetAdminServlet extends 
 		doGet(request, response);
 	}
 
-	private void listOperation(HttpSession session, boolean getDefaults){
-		retrieveWidgets(session);	
+	private void listOperation(HttpServletRequest request, boolean getDefaults){
+		retrieveWidgets(request);	
 		if(getDefaults){
-			Hashtable<String, Integer> defaultHash = new Hashtable<String, Integer>();
-			WidgetDefault[] wds = WidgetDefault.findAll();
+			Hashtable<String, Object> defaultHash = new Hashtable<String, Object>();
+	        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+			IWidgetDefault[] wds = persistenceManager.findAll(IWidgetDefault.class);
 			if (wds != null){
-				for(WidgetDefault defaultWidget : wds){
-					defaultHash.put(defaultWidget.getWidgetContext(), defaultWidget.getWidgetId());				
+				for(IWidgetDefault defaultWidget : wds){
+					defaultHash.put(defaultWidget.getWidgetContext(), defaultWidget.getWidget().getId());				
 				}	
 			}
-			session.setAttribute("widget_defaults", defaultHash); //$NON-NLS-1$
+			request.setAttribute("widget_defaults", defaultHash); //$NON-NLS-1$
 		}
 	}
 
-	private void listWhiteListOperation(HttpSession session) {
-		session.setAttribute("whitelist", Whitelist.findAll()); //$NON-NLS-1$
+	private void listWhiteListOperation(HttpServletRequest request) {
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		request.setAttribute("whitelist", persistenceManager.findAll(IWhitelist.class)); //$NON-NLS-1$
 	}  	
 
-	private void removeServiceOperation(HttpSession session, HttpServletRequest request) {
+	private void removeServiceOperation(HttpServletRequest request) {
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		String serviceId = request.getParameter("serviceId"); //$NON-NLS-1$
 		try {
 			WidgetServicesController.remove(serviceId);
-			session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.6")); 				 //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.6")); 				 //$NON-NLS-1$ //$NON-NLS-2$ 
 		} catch (ResourceNotFoundException e) {
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.7")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.7")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
-		retrieveServices(session);
+		retrieveServices(request);
 	}
 
-	private void removeSingleWidgetTypeOperation(HttpSession session,
-			HttpServletRequest request, IWidgetAdminManager manager) {
+	private void removeSingleWidgetTypeOperation(HttpServletRequest request, IWidgetAdminManager manager) {
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		String widgetId = request.getParameter("widgetId"); //$NON-NLS-1$
 		String widgetType = request.getParameter("widgetType");	 //$NON-NLS-1$
-		if(manager.removeSingleWidgetType(Integer.parseInt(widgetId), widgetType)){
-			session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.8")); 				 //$NON-NLS-1$ //$NON-NLS-2$ 
+		if(manager.removeSingleWidgetType(widgetId, widgetType)){
+			request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.8")); 				 //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
 		else{
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.9")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.9")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}	
-		session.setAttribute("widgets", null);						 //$NON-NLS-1$
+		request.setAttribute("widgets", null);						 //$NON-NLS-1$
 	}
 
-	private void removeWhiteListEntry(HttpSession session, HttpServletRequest request) {
+	private void removeWhiteListEntry(HttpServletRequest request) {
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		String entryId = request.getParameter("entryId"); //$NON-NLS-1$
-		Whitelist entry = Whitelist.findById(Integer.valueOf(entryId));
-		if(entry.delete()){
-			session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.10")); 				 //$NON-NLS-1$ //$NON-NLS-2$ 
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWhitelist entry = persistenceManager.findById(IWhitelist.class, entryId);
+		if(persistenceManager.delete(entry)){
+			request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.10")); 				 //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
 		else{
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.11")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.11")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}				
 	}
 
-	private void removeWidget(HttpSession session, HttpServletRequest request, Configuration properties, IWidgetAdminManager manager) {
-		final String WIDGETFOLDER = request.getSession().getServletContext().getRealPath(properties.getString("widget.widgetfolder"));//$NON-NLS-1$
+	private void removeWidget(HttpServletRequest request, Configuration properties, IWidgetAdminManager manager) {
+		final String WIDGETFOLDER = getServletContext().getRealPath(properties.getString("widget.widgetfolder"));//$NON-NLS-1$
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		String widgetId = request.getParameter("widgetId"); //$NON-NLS-1$
-		Widget widget = Widget.findById(Integer.parseInt(widgetId));
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidget widget = persistenceManager.findById(IWidget.class, widgetId);
 		String guid = widget.getGuid();
-		if(WidgetFactory.destroy(Integer.parseInt(widgetId))){
+		if(WidgetFactory.destroy(widgetId)){
 			if(WidgetFileUtils.removeWidgetResources(WIDGETFOLDER, guid)){			
-				session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.12"));			 //$NON-NLS-1$ //$NON-NLS-2$ 
+				request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.12"));			 //$NON-NLS-1$ //$NON-NLS-2$ 
 			}
 			else{
-				session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.13")); //$NON-NLS-1$ //$NON-NLS-2$ 
+				request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.13")); //$NON-NLS-1$ //$NON-NLS-2$ 
 			}
 		}
 		else{
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.14")); //$NON-NLS-1$ //$NON-NLS-2$ 
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.14")); //$NON-NLS-1$ //$NON-NLS-2$ 
 		}
 	}		
 
-	private void retrieveServices(HttpSession session){						
-		session.setAttribute("services", WidgetService.findAll());						 //$NON-NLS-1$
+	private void retrieveServices(HttpServletRequest request){						
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		request.setAttribute("services", persistenceManager.findAll(IWidgetService.class));						 //$NON-NLS-1$
 	}
 
-	private void retrieveWidgets(HttpSession session){
-		session.setAttribute("widgets", Widget.findAll()); //$NON-NLS-1$
+	private void retrieveWidgets(HttpServletRequest request){
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		request.setAttribute("widgets", persistenceManager.findAll(IWidget.class)); //$NON-NLS-1$
 	}
 
 
 
-	private void reviseTypes(HttpSession session, HttpServletRequest request, IWidgetAdminManager manager) {
-		retrieveServices(session);
-		session.setAttribute("hasValidated", Boolean.valueOf(true)); //$NON-NLS-1$
-		session.setAttribute("closeWindow", Boolean.valueOf(false)); //$NON-NLS-1$
+	private void reviseTypes(HttpServletRequest request, IWidgetAdminManager manager) {
+		retrieveServices(request);
+		request.setAttribute("hasValidated", Boolean.valueOf(true)); //$NON-NLS-1$
+		request.setAttribute("closeWindow", Boolean.valueOf(false)); //$NON-NLS-1$
 		String dbkey = request.getParameter("dbkey"); //$NON-NLS-1$
-		session.setAttribute("dbkey", Integer.parseInt(dbkey)); //$NON-NLS-1$
+		request.setAttribute("dbkey", Integer.parseInt(dbkey)); //$NON-NLS-1$
 	}
 
-	private void setDefaultWidgetOperation(HttpSession session, HttpServletRequest request, IWidgetAdminManager manager){
+	private void setDefaultWidgetOperation(HttpServletRequest request, IWidgetAdminManager manager){
 		String widgetId = request.getParameter("widgetId"); //$NON-NLS-1$
 		String widgetType = request.getParameter("widgetType");		 //$NON-NLS-1$
-		manager.setDefaultWidget(Integer.parseInt(widgetId), widgetType);
-		listOperation(session, true);
+		manager.setDefaultWidget(widgetId, widgetType);
+		listOperation(request, true);
 	}
 
-	private void updateWidgetTypes(HttpSession session, HttpServletRequest request, IWidgetAdminManager manager) throws IOException{
+	private void updateWidgetTypes(HttpServletRequest request, IWidgetAdminManager manager) throws IOException{
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		boolean canMax = false;
 
@@ -420,110 +422,113 @@ public class WidgetAdminServlet extends 
 		if(maximize!=null){
 			canMax = Boolean.valueOf(maximize);
 		}
-		int dbKey = Integer.parseInt(request.getParameter("dbkey")); //$NON-NLS-1$
+		String dbKey = request.getParameter("dbkey"); //$NON-NLS-1$
 		String[] widgetTypes = request.getParameterValues("widgetTypes"); //$NON-NLS-1$
 		manager.setWidgetTypesForWidget(dbKey, widgetTypes, canMax);
-		session.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.15")); 		 //$NON-NLS-1$ //$NON-NLS-2$ 
+		request.setAttribute("message_value", localizedMessages.getString("WidgetAdminServlet.15")); 		 //$NON-NLS-1$ //$NON-NLS-2$ 
 	}  
 
-	private void registerOperation(HttpServletRequest request, Configuration properties, HttpSession session){
+	private void registerOperation(HttpServletRequest request, Configuration properties){
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		try {
 			W3CWidget widgetModel = GadgetUtils.createWidget(request);
-			if(!Widget.exists(widgetModel.getIdentifier())){
+	        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+			if(persistenceManager.findWidgetByGuid(widgetModel.getIdentifier()) == null){
 				WidgetFactory.addNewWidget(widgetModel);
-				session.setAttribute("message_value", widgetModel.getLocalName("en")+": "+localizedMessages.getString("WidgetAdminServlet.16")); //$NON-NLS-1$ //$NON-NLS-2$
+				request.setAttribute("message_value", widgetModel.getLocalName("en")+": "+localizedMessages.getString("WidgetAdminServlet.16")); //$NON-NLS-1$ //$NON-NLS-2$
 			} else {
-				session.setAttribute("message_value", widgetModel.getLocalName("en")+": "+localizedMessages.getString("WidgetAdminServlet.17")); //$NON-NLS-1$ //$NON-NLS-2$				
+				request.setAttribute("message_value", widgetModel.getLocalName("en")+": "+localizedMessages.getString("WidgetAdminServlet.17")); //$NON-NLS-1$ //$NON-NLS-2$				
 			}
 		} catch (Exception e1) {
 			e1.printStackTrace();
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.18")); //$NON-NLS-1$ //$NON-NLS-2$
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.18")); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
-	private void listAPIKeysOperation(HttpSession session, HttpServletRequest request){
-		session.setAttribute("keys", ApiKey.findAll());
+	private void listAPIKeysOperation(HttpServletRequest request){
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		request.setAttribute("keys", persistenceManager.findAll(IApiKey.class));
 	}
 
-	private void revokeAPIKeyOperation(HttpSession session, HttpServletRequest request){
+	private void revokeAPIKeyOperation(HttpServletRequest request){
 		String value = request.getParameter("key");
 		if (WidgetKeyManager.revokeKey(value)){
-			session.setAttribute("message_value", "Key revoked");
+			request.setAttribute("message_value", "Key revoked");
 		} else {
-			session.setAttribute("error_value", "Key could not be revoked");
+			request.setAttribute("error_value", "Key could not be revoked");
 		}
 	}
 
-	private void uploadOperation(HttpServletRequest request, Configuration properties, IWidgetAdminManager manager, HttpSession session) {
+	private void uploadOperation(HttpServletRequest request, Configuration properties, IWidgetAdminManager manager) {
 
-		final String WIDGETFOLDER = request.getSession().getServletContext().getRealPath(properties.getString("widget.widgetfolder"));//$NON-NLS-1$
-		final String UPLOADFOLDER = request.getSession().getServletContext().getRealPath(properties.getString("widget.useruploadfolder"));//$NON-NLS-1$
+		final String WIDGETFOLDER = getServletContext().getRealPath(properties.getString("widget.widgetfolder"));//$NON-NLS-1$
+		final String UPLOADFOLDER = getServletContext().getRealPath(properties.getString("widget.useruploadfolder"));//$NON-NLS-1$
 		
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		session.setAttribute("hasValidated", Boolean.valueOf(false)); //$NON-NLS-1$
-		session.setAttribute("closeWindow", Boolean.valueOf(true)); //$NON-NLS-1$
+		request.setAttribute("hasValidated", Boolean.valueOf(false)); //$NON-NLS-1$
+		request.setAttribute("closeWindow", Boolean.valueOf(true)); //$NON-NLS-1$
 		File zipFile;
 		try {
 			zipFile = WidgetFileUtils.upload(UPLOADFOLDER, request);
 		} 
 		catch (Exception ex) {
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.28") + "\n" + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.28") + "\n" + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			return;
 		}
 
 		try {	
 			if(zipFile.exists()){
+                IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
 				final String[] locales = properties.getStringArray("widget.locales");
 				W3CWidgetFactory fac = new W3CWidgetFactory();
 				fac.setLocales(locales);
-				fac.setLocalPath(session.getServletContext().getContextPath()+properties.getString("widget.widgetfolder"));
+				fac.setLocalPath(getServletContext().getContextPath()+properties.getString("widget.widgetfolder"));
 				fac.setOutputDirectory(WIDGETFOLDER);
-				fac.setFeatures(ServerFeature.getFeatureNames());
+				fac.setFeatures(persistenceManager.findServerFeatureNames());
 				fac.setStartPageProcessor(new StartPageProcessor());
 				W3CWidget widgetModel = fac.parse(zipFile);
-				if(!Widget.exists(widgetModel.getIdentifier())){	
+	            if(persistenceManager.findWidgetByGuid(widgetModel.getIdentifier()) == null){
 					// ADD
-					Widget widget = WidgetFactory.addNewWidget(widgetModel);
-					int dbkey = widget.getId();
+					IWidget widget = WidgetFactory.addNewWidget(widgetModel);
+					Object 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);
-					session.setAttribute("hasValidated", Boolean.valueOf(true));																	 //$NON-NLS-1$
-					session.setAttribute("dbkey", dbkey); //$NON-NLS-1$
+					request.setAttribute("message_value", "'"+ widgetModel.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.19")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+					retrieveServices(request);
+					request.setAttribute("hasValidated", Boolean.valueOf(true));																	 //$NON-NLS-1$
+					request.setAttribute("dbkey", dbkey); //$NON-NLS-1$
 				}	
 				else{
 					// UPDATE
 					// TODO - call the manager to update required resources
 					// widget updated
-					session.setAttribute("message_value", "'"+ widgetModel.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.20")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+					request.setAttribute("message_value", "'"+ widgetModel.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.20")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 				}					
 			}
 			else{
 				// no file found to be uploaded - shouldn't happen
-				session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.24")); //$NON-NLS-1$ //$NON-NLS-2$
+				request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.24")); //$NON-NLS-1$ //$NON-NLS-2$
 			}						
 		} 		 
 		catch (InvalidStartFileException ex){
 			_logger.error(ex);
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.27") + "\n" + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$			
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.27") + "\n" + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$			
 		}
 		catch (BadManifestException ex) {
 			_logger.error(ex);		
 			String message = ex.getMessage();
 			if (ex.getMessage() == null || ex.getMessage().equals("")) message = localizedMessages.getString("WidgetAdminServlet.28"); //$NON-NLS-1$
 			if (ex instanceof InvalidContentTypeException) message = localizedMessages.getString("WidgetAdminServlet.30");//$NON-NLS-1$
-			session.setAttribute("error_value", message); //$NON-NLS-1$
+			request.setAttribute("error_value", message); //$NON-NLS-1$
 		}
 		catch (BadWidgetZipFileException ex) {
 			_logger.error(ex);	
 			String message = ex.getMessage();
 			if (ex.getMessage() == null || ex.getMessage().equals("")) message = localizedMessages.getString("WidgetAdminServlet.29"); //$NON-NLS-1$
-			session.setAttribute("error_value", message); //$NON-NLS-1$
+			request.setAttribute("error_value", message); //$NON-NLS-1$
 		}
 		catch (Exception ex) {
 			_logger.error(ex);			
-			session.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.25") + "\n" + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			request.setAttribute("error_value", localizedMessages.getString("WidgetAdminServlet.25") + "\n" + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 
 

Modified: incubator/wookie/trunk/src/org/apache/wookie/WidgetWebMenuServlet.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/WidgetWebMenuServlet.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/WidgetWebMenuServlet.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/WidgetWebMenuServlet.java Mon Aug 23 09:46:30 2010
@@ -27,8 +27,10 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.log4j.Logger;
-import org.apache.wookie.beans.Widget;
-import org.apache.wookie.beans.WidgetInstance;
+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.connector.framework.AbstractWookieConnectorService;
 import org.apache.wookie.connector.framework.WookieConnectorException;
 import org.apache.wookie.connector.framework.WookieConnectorService;
@@ -76,11 +78,7 @@ public class WidgetWebMenuServlet extend
 		}
 		Configuration properties = (Configuration) request.getSession().getServletContext().getAttribute("properties"); //$NON-NLS-1$
 
-		session.setAttribute("error_value", null); //$NON-NLS-1$
-		session.setAttribute("message_value", null); //$NON-NLS-1$
-		session.setAttribute("widget_defaults", null); //$NON-NLS-1$
-		session.setAttribute("widgets", null); //$NON-NLS-1$
-		session.setAttribute("version", properties.getString("widget.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		request.setAttribute("version", properties.getString("widget.version")); //$NON-NLS-1$ //$NON-NLS-2$
 		String task = request.getParameter("operation"); //$NON-NLS-1$
 		Operation op=null;
 		// sanity check...
@@ -89,7 +87,7 @@ public class WidgetWebMenuServlet extend
 			try {op = Operation.valueOf(task);}
 			catch (IllegalArgumentException e) {
 				op=null;
-				session.setAttribute("error_value", localizedMessages.getString("WidgetWebMenuServlet.0")); //$NON-NLS-1$ //$NON-NLS-2$				
+				request.setAttribute("error_value", localizedMessages.getString("WidgetWebMenuServlet.0")); //$NON-NLS-1$ //$NON-NLS-2$				
 			}
 		}
 		if(op!=null){
@@ -106,7 +104,8 @@ public class WidgetWebMenuServlet extend
 				case DEMO_WIDGET:{
           String idKey = request.getParameter("idkey");
           try {
-            String guid = WidgetInstance.findByIdKey(idKey).getWidget().getGuid();
+            IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+            String guid = persistenceManager.findWidgetInstanceByIdKey(idKey).getWidget().getGuid();
             AbstractWookieConnectorService conn = getConnectorService(request);
             conn.setCurrentUser("testuser");
             org.apache.wookie.connector.framework.WidgetInstance instanceOne = conn.getOrCreateInstance(guid);
@@ -126,17 +125,17 @@ public class WidgetWebMenuServlet extend
 					break;
 				}
 				case INSTANTIATE: {
-					instantiateOperation(session, manager);
+					instantiateOperation(request, manager);
 					doForward(request, response, fInstantiateWidgetsPage);
 					break;
 				}
 				case REQUESTAPIKEY:{
-					requestApiKeyOperation(request,properties,manager,session);
+					requestApiKeyOperation(request,properties,manager);
 					doForward(request, response, fMainPage);
 					break;
 				}
 				default: {
-					session.setAttribute("error_value", localizedMessages.getString("WidgetWebMenuServlet.2"));//$NON-NLS-1$ //$NON-NLS-2$
+					request.setAttribute("error_value", localizedMessages.getString("WidgetWebMenuServlet.2"));//$NON-NLS-1$ //$NON-NLS-2$
 					doForward(request, response, fMainPage);
 				}
 			}
@@ -176,31 +175,34 @@ public class WidgetWebMenuServlet extend
 		doGet(request, response);
 	}
 
-	private void instantiateOperation(HttpSession session, IWidgetAdminManager manager){
-		Widget[] widgets = Widget.findAll();
-		session.setAttribute("widgets", widgets); //$NON-NLS-1$
+	private void instantiateOperation(HttpServletRequest request, IWidgetAdminManager manager){
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidget[] widgets = persistenceManager.findAll(IWidget.class);
+		request.setAttribute("widgets", widgets); //$NON-NLS-1$
 	}
 	/**
 	 * Creates a table, looks for widget definitions with a string (the name of 
 	 * the widget) and an instance of the widget which references the actual widget 
 	 * object and its putting widgets in widgets_hash" 
-	 * Results are returned in the session.
+	 * Results are returned in the request.
 	 * 
 	 * @param request
 	 * @param session
 	 * @param manager
 	 */
 	private void listOperation(HttpServletRequest request, HttpSession session, IWidgetAdminManager manager){
-		Hashtable<String, Widget> widgetsHash = new Hashtable<String, Widget>();
+		Hashtable<String, IWidget> widgetsHash = new Hashtable<String, IWidget>();
 
-		for(Widget widget:Widget.findAll()){
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidget[] widgets = persistenceManager.findAll(IWidget.class);
+		for(IWidget widget : widgets){
 			
 			// Create an instance of the widget so that we can display it as the demo widget
 			// An instance of a widget refers to a widget that has data stored on
 			// to it and is going to be deployed on different platforms. In this 
 			// case its windows.  
 			
-			WidgetInstance instance = null;
+			IWidgetInstance instance = null;
 			String apiKey = "TEST"; //$NON-NLS-1$
 			String userId = "testuser"; //$NON-NLS-1$
 			String sharedDataKey = "myshareddata"; //$NON-NLS-1$
@@ -216,30 +218,29 @@ public class WidgetWebMenuServlet extend
 		//for(WidgetDefault defaultWidget : manager.getAllDefaultWidgets()){
 		//	widgetsHash.put(defaultWidget.getWidgetContext(), manager.getWidget(defaultWidget.getWidgetId()));
 		//}
-		session.setAttribute("widgetsHash", widgetsHash); //$NON-NLS-1$
+		request.setAttribute("widgetsHash", widgetsHash); //$NON-NLS-1$
 	}
 
-	private void requestApiKeyOperation(HttpServletRequest request, Configuration properties, IWidgetAdminManager manager, HttpSession session){
+	private void requestApiKeyOperation(HttpServletRequest request, Configuration properties, IWidgetAdminManager manager){
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		session.setAttribute("message_value", null); //$NON-NLS-1$
 		try {
 			String email = request.getParameter("email"); //$NON-NLS-1$
 			if (email == null) {
-				session.setAttribute("message_value", localizedMessages.getString("WidgetWebMenuServlet.1")); //$NON-NLS-1$ //$NON-NLS-2$
+				request.setAttribute("message_value", localizedMessages.getString("WidgetWebMenuServlet.1")); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 			else {
 				if (email.trim().equals("")){ //$NON-NLS-1$
-					session.setAttribute("message_value", localizedMessages.getString("WidgetWebMenuServlet.1"));					 //$NON-NLS-1$ //$NON-NLS-2$
+					request.setAttribute("message_value", localizedMessages.getString("WidgetWebMenuServlet.1"));					 //$NON-NLS-1$ //$NON-NLS-2$
 				}
 				else {
 					// Otherwise, good to go
 					WidgetKeyManager.createKey(request, email, localizedMessages);
-					session.setAttribute("message_value", localizedMessages.getString("WidgetWebMenuServlet.3")); //$NON-NLS-1$ //$NON-NLS-2$
+					request.setAttribute("message_value", localizedMessages.getString("WidgetWebMenuServlet.3")); //$NON-NLS-1$ //$NON-NLS-2$
 				}
 			}
 		}
 		catch (Exception ex) {
-			session.setAttribute("error_value", localizedMessages.getString("WidgetWebMenuServlet.4")); //$NON-NLS-1$ //$NON-NLS-2$
+			request.setAttribute("error_value", localizedMessages.getString("WidgetWebMenuServlet.4")); //$NON-NLS-1$ //$NON-NLS-2$
 			_logger.error(localizedMessages.getString("WidgetWebMenuServlet.4"), ex); //$NON-NLS-1$
 		}
 

Modified: incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/IWidgetAPI.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/IWidgetAPI.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/IWidgetAPI.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/IWidgetAPI.java Mon Aug 23 09:46:30 2010
@@ -17,7 +17,7 @@ package org.apache.wookie.ajaxmodel;
 import java.util.Map;
 import java.util.List;
 
-import org.apache.wookie.beans.Preference;
+import org.apache.wookie.beans.IPreference;
 
 
 /**
@@ -73,7 +73,7 @@ public interface IWidgetAPI {	
 	 * @param id_key
 	 * @return
 	 */
-	public List<Preference> preferences(String id_key);
+	public List<IPreference> preferences(String id_key);
 	
 	/**
 	 * Returns the widget metadata

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=988048&r1=988047&r2=988048&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 Mon Aug 23 09:46:30 2010
@@ -24,10 +24,12 @@ 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.beans.Preference;
-import org.apache.wookie.beans.SharedData;
-import org.apache.wookie.beans.Widget;
-import org.apache.wookie.beans.WidgetInstance;
+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.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.controller.PropertiesController;
 import org.apache.wookie.controller.WidgetInstancesController;
 import org.apache.wookie.helpers.Notifier;
@@ -65,14 +67,15 @@ public class WidgetAPIImpl implements IW
 	/* (non-Javadoc)
 	 * @see org.apache.wookie.ajaxmodel.IWidgetAPI#preferences2(java.lang.String)
 	 */
-	public List<Preference> preferences(String id_key) {
-		ArrayList<Preference> prefs = new ArrayList<Preference>();
+	public List<IPreference> preferences(String id_key) {
+		ArrayList<IPreference> prefs = new ArrayList<IPreference>();
 		if(id_key == null) return prefs;
 		// check if instance is valid
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if(widgetInstance==null) return prefs;
-		for(Preference preference : Preference.findPreferencesForInstance(widgetInstance)){
-			prefs.add(preference);
+		for(IPreference preference : widgetInstance.getPreferences()){
+			prefs.add(new PreferenceDelegate(preference));
 		}
 		return prefs;
 	}
@@ -85,10 +88,11 @@ public class WidgetAPIImpl implements IW
 		if(id_key == null) return map;
 	
 		// check if instance is valid
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if(widgetInstance==null) return map;
 		// Add in metadata
-		Widget widget = widgetInstance.getWidget();
+		IWidget widget = widgetInstance.getWidget();
 		map.put("id", String.valueOf(widget.getGuid()));	//$NON-NLS-1$
 		map.put("author", String.valueOf(widget.getWidgetAuthor()));	//$NON-NLS-1$
 		map.put("authorEmail", String.valueOf(widget.getWidgetAuthorEmail()));//$NON-NLS-1$
@@ -112,10 +116,11 @@ public class WidgetAPIImpl implements IW
 		if(id_key == null) return localizedMessages.getString("WidgetAPIImpl.0");
 		if(key == null)return localizedMessages.getString("WidgetAPIImpl.1");
 		// check if instance is valid
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if (widgetInstance == null) return localizedMessages.getString("WidgetAPIImpl.0");
 		//
-		Preference preference = Preference.findPreferenceForInstance(widgetInstance, key);
+		IPreference preference = widgetInstance.getPreference(key);
 		if (preference == null) return localizedMessages.getString("WidgetAPIImpl.1");
 		return preference.getDvalue();
 	}
@@ -129,11 +134,12 @@ public class WidgetAPIImpl implements IW
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
 		if(id_key==null) return localizedMessages.getString("WidgetAPIImpl.0");
 		if(key==null) return localizedMessages.getString("WidgetAPIImpl.1");
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if (widgetInstance == null) return localizedMessages.getString("WidgetAPIImpl.0");
-		SharedData data = SharedData.findSharedDataForInstance(widgetInstance, key);
+		ISharedData data = widgetInstance.getSharedData(key);
 		if (data == null) return localizedMessages.getString("WidgetAPIImpl.1");
-		return SharedData.findSharedDataForInstance(widgetInstance, key).getDvalue();
+		return data.getDvalue();
 	}
 
 	/*
@@ -143,7 +149,8 @@ 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);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if (widgetInstance == null) return localizedMessages.getString("WidgetAPIImpl.0");
 		//
 		PropertiesController.updatePreference(widgetInstance, key, value);
@@ -157,7 +164,8 @@ public class WidgetAPIImpl implements IW
 	public String setSharedDataForKey(String id_key, String key, String value) {
 		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        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");
 		//
@@ -173,7 +181,8 @@ public class WidgetAPIImpl implements IW
 	public String appendSharedDataForKey(String id_key, String key, String value) {
 		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        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");
 		//
@@ -189,7 +198,8 @@ public class WidgetAPIImpl implements IW
 	public String lock(String id_key) {
 		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if(widgetInstance == null) return localizedMessages.getString("WidgetAPIImpl.0");
 		//
 		String sharedDataKey = widgetInstance.getSharedDataKey();
@@ -205,7 +215,8 @@ public class WidgetAPIImpl implements IW
 	public String unlock(String id_key) {
 		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if(widgetInstance==null) return localizedMessages.getString("WidgetAPIImpl.0");
 		//
 		String sharedDataKey = widgetInstance.getSharedDataKey();
@@ -221,7 +232,8 @@ public class WidgetAPIImpl implements IW
 	public String hide(String id_key){
 		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if (widgetInstance == null) return localizedMessages.getString("WidgetAPIImpl.0");
 		//
 		Notifier.callSiblings(widgetInstance,"window.onHide()");//$NON-NLS-1$
@@ -235,7 +247,8 @@ public class WidgetAPIImpl implements IW
 	public String show(String id_key){
 		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance widgetInstance = WidgetInstance.findByIdKey(id_key);
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 		if(widgetInstance==null) return localizedMessages.getString("WidgetAPIImpl.0");
 		Notifier.callSiblings(widgetInstance,"window.onShow()"); //$NON-NLS-1$
 	    return "okay"; //$NON-NLS-1$

Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java Mon Aug 23 09:46:30 2010
@@ -24,8 +24,10 @@ import javax.servlet.http.HttpServletRes
 import javax.servlet.http.HttpSession;
 
 import org.apache.log4j.Logger;
-import org.apache.wookie.beans.Participant;
-import org.apache.wookie.beans.WidgetInstance;
+import org.apache.wookie.beans.IParticipant;
+import org.apache.wookie.beans.IWidgetInstance;
+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;
@@ -72,9 +74,10 @@ public class ParticipantsController exte
 	@Override
 	public void show(String resourceId,HttpServletRequest request, HttpServletResponse response) throws UnauthorizedAccessException,ResourceNotFoundException, IOException{
 		if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if (instance == null) throw new ResourceNotFoundException();
-		Participant[] participants = Participant.getParticipants(instance);
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IParticipant[] participants = persistenceManager.findParticipants(instance);
 		returnXml(ParticipantHelper.createXMLParticipantsDocument(participants), response);
 	}
 
@@ -84,7 +87,7 @@ public class ParticipantsController exte
 			UnauthorizedAccessException {
 		return create(request);
 	}
-	
+		
 	/**
 	 * Add a participant to a widget.
 	 * 
@@ -99,23 +102,23 @@ public class ParticipantsController exte
 			UnauthorizedAccessException {
 		if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
 
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if (instance == null) throw new InvalidParametersException();
 		
 		HttpSession session = request.getSession(true);						
-		String participant_id = request.getParameter("participant_id"); //$NON-NLS-1$
-		String participant_display_name = request.getParameter("participant_display_name"); //$NON-NLS-1$
-		String participant_thumbnail_url = request.getParameter("participant_thumbnail_url"); //$NON-NLS-1$
+		String participantId = request.getParameter("participant_id"); //$NON-NLS-1$
+		String participantDisplayName = request.getParameter("participant_display_name"); //$NON-NLS-1$
+		String participantThumbnailUrl = request.getParameter("participant_thumbnail_url"); //$NON-NLS-1$
 		
 		// Check required params
-		if (participant_id == null || participant_id.trim().equals("")) {
-		  _logger.error("participant_id parameter cannot be null");
-		  throw new InvalidParametersException();
+		if (participantId == null || participantId.trim().equals("")) {
+			_logger.error("participant_id parameter cannot be null");
+			throw new InvalidParametersException();
 		}
 
-		if (addParticipantToWidgetInstance(instance, participant_id, participant_display_name, participant_thumbnail_url)){
+		if (addParticipantToWidgetInstance(instance, participantId, participantDisplayName, participantThumbnailUrl)){
 			Notifier.notifyWidgets(session, instance, Notifier.PARTICIPANTS_UPDATED);
-			_logger.debug("added user to widget instance: " + participant_id);
+			_logger.debug("added user to widget instance: " + participantId);
 			return true;
 		} else {
 			// No need to create a new participant, it already existed
@@ -133,11 +136,11 @@ public class ParticipantsController exte
 			throws ResourceNotFoundException, UnauthorizedAccessException,
 			InvalidParametersException {
 		if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if (instance == null) throw new InvalidParametersException();
 		HttpSession session = request.getSession(true);						
-		String participant_id = request.getParameter("participant_id"); //$NON-NLS-1$
-		if(removeParticipantFromWidgetInstance(instance, participant_id)){
+		String participantId = request.getParameter("participant_id"); //$NON-NLS-1$
+		if(removeParticipantFromWidgetInstance(instance, participantId)){
 			Notifier.notifyWidgets(session, instance, Notifier.PARTICIPANTS_UPDATED);
 			return true;
 		}else{
@@ -153,25 +156,26 @@ public class ParticipantsController exte
 	 * @param participantThumbnailUrl the thumbnail url property of the participant to add
 	 * @return true if the participant was successfully added, otherwise false
 	 */
-	public static boolean addParticipantToWidgetInstance(WidgetInstance instance,
+	public static boolean addParticipantToWidgetInstance(IWidgetInstance instance,
 			String participantId, String participantDisplayName,
 			String participantThumbnailUrl) {
 
 		// Does participant already exist?
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("sharedDataKey", instance.getSharedDataKey());//$NON-NLS-1$
-		map.put("widgetGuid", instance.getWidget().getGuid());//$NON-NLS-1$
-		map.put("participant_id", participantId);//$NON-NLS-1$
-		if (Participant.findByValues(map).length != 0) return false;		
+		map.put("widget", instance.getWidget());//$NON-NLS-1$
+		map.put("participantId", participantId);//$NON-NLS-1$
+		if (persistenceManager.findByValues(IParticipant.class, map).length != 0) return false;		
 
 		// Add participant
-		Participant participant = new Participant();
-		participant.setParticipant_id(participantId);
-		participant.setParticipant_display_name(participantDisplayName);
-		participant.setParticipant_thumbnail_url(participantThumbnailUrl);
+		IParticipant participant = persistenceManager.newInstance(IParticipant.class);
+		participant.setParticipantId(participantId);
+		participant.setParticipantDisplayName(participantDisplayName);
+		participant.setParticipantThumbnailUrl(participantThumbnailUrl);
 		participant.setSharedDataKey(instance.getSharedDataKey());
-		participant.setWidgetGuid(instance.getWidget().getGuid());
-		participant.save();
+		participant.setWidget(instance.getWidget());
+		persistenceManager.save(participant);
 		return true;
 	}
 
@@ -181,18 +185,19 @@ public class ParticipantsController exte
 	 * @param participantId the id property of the participant
 	 * @return true if the participant is successfully removed, otherwise false
 	 */
-	private static boolean removeParticipantFromWidgetInstance(WidgetInstance instance,
+	private static boolean removeParticipantFromWidgetInstance(IWidgetInstance instance,
 			String participantId) {
-		Participant[] participants;
+		IParticipant[] participants;
 		// Does participant exist?
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("sharedDataKey", instance.getSharedDataKey());//$NON-NLS-1$
-		map.put("widgetGuid", instance.getWidget().getGuid());//$NON-NLS-1$
-		map.put("participant_id", participantId);//$NON-NLS-1$
-		participants = Participant.findByValues(map);
+		map.put("widget", instance.getWidget());//$NON-NLS-1$
+		map.put("participantId", participantId);//$NON-NLS-1$
+		participants = persistenceManager.findByValues(IParticipant.class, map);
 		if (participants.length != 1) return false;	
 		// Remove participant
-		Participant.delete(participants[0]);
+		persistenceManager.delete(participants[0]);
 		return true;
 	}
 }
\ No newline at end of file

Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java Mon Aug 23 09:46:30 2010
@@ -22,9 +22,12 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.log4j.Logger;
-import org.apache.wookie.beans.Preference;
-import org.apache.wookie.beans.SharedData;
-import org.apache.wookie.beans.WidgetInstance;
+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.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;
@@ -79,16 +82,16 @@ public class PropertiesController extend
 			HttpServletResponse response) throws ResourceNotFoundException,
 			UnauthorizedAccessException, IOException {
 		if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if (instance == null) throw new ResourceNotFoundException();
 		String name = request.getParameter("propertyname"); //$NON-NLS-1$
 		if (name == null || name.trim().equals("")) throw new ResourceNotFoundException();
 		String value = null;
 		// Note that preferences and shared data keys may be the same!
 		// We let the shared data values override.
-		Preference pref = Preference.findPreferenceForInstance(instance, name);
+		IPreference pref = instance.getPreference(name);
 		if (pref != null) value = pref.getDvalue();
-		SharedData data = SharedData.findSharedDataForInstance(instance, name);
+		ISharedData data = instance.getSharedData(name);
 		if (data != null) value = data.getDvalue();
 		if (value == null) throw new ResourceNotFoundException();
 		PrintWriter out = response.getWriter();
@@ -101,7 +104,7 @@ public class PropertiesController extend
 		if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
 		if (request.getParameter("value") != null) throw new InvalidParametersException();//$NON-NLS-1$
 		String name = request.getParameter("propertyname"); //$NON-NLS-1$
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if (instance == null) throw new InvalidParametersException();
 		if (name == null || name.trim().equals("")) throw new InvalidParametersException();
 		
@@ -142,7 +145,7 @@ public class PropertiesController extend
 		if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
 		String name = request.getParameter("propertyname"); //$NON-NLS-1$
 		String value = request.getParameter("propertyvalue"); //$NON-NLS-1$
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if (instance == null) throw new InvalidParametersException();
 		if (name == null || name.trim().equals("")) throw new InvalidParametersException();
 		
@@ -160,30 +163,29 @@ public class PropertiesController extend
 	 * @param name
 	 * @param value
 	 */
-	public static boolean updatePreference(WidgetInstance widgetInstance, String name, String value){
+	public static boolean updatePreference(IWidgetInstance widgetInstance, String name, String value){
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
         boolean found=false;
-        for (Preference preference : Preference.findPreferencesForInstance(widgetInstance)){
-        	if(preference.getDkey().equals(name)){
-        		// if the value is null we need to remove the tuple
-        		if(value==null || value.equalsIgnoreCase("null")){  
-        			preference.delete();     			
-        		}
-        		else{    
-        			preference.setDvalue(value);
-        			preference.save();
-        		}
-        		found=true;
-        	}
+        IPreference preference = widgetInstance.getPreference(name);
+        if (preference != null)
+        {
+            if(value==null || value.equalsIgnoreCase("null")){  
+                widgetInstance.getPreferences().remove(preference);
+            }
+            else{    
+                preference.setDvalue(value);
+            }
+            found=true;
         }
         if(!found){  
         	if (value != null){
-        		Preference pref = new Preference();
-        		pref.setWidgetInstance(widgetInstance);
-        		pref.setDkey(name);
-        		pref.setDvalue(value);	
-        		pref.save();
+                preference = persistenceManager.newInstance(IPreference.class);
+        		preference.setDkey(name);
+        		preference.setDvalue(value);
+        		widgetInstance.getPreferences().add(preference);
         	}
         }  
+        persistenceManager.save(widgetInstance);
         return found;
 	}
 	
@@ -195,38 +197,38 @@ public class PropertiesController extend
 	 * @param append
 	 * @return
 	 */
-	public synchronized static boolean updateSharedDataEntry(WidgetInstance widgetInstance, String name, String value, boolean append){
-		boolean found=false;
-		for (SharedData sharedData : SharedData.findSharedDataForInstance(widgetInstance)){
-			if(sharedData.getDkey().equals(name)){
-				// if the value is null we need to remove the tuple
-				if(value==null || value.equalsIgnoreCase("null")){   
-					sharedData.delete();
-				}
-				else{    
-					if(append){
-						sharedData.setDvalue(sharedData.getDvalue() + value);
-					}
-					else{
-						sharedData.setDvalue(value);
-					}
-					sharedData.save();
-				}
-				found=true;
-			}       	
-		}
+	public synchronized static boolean updateSharedDataEntry(IWidgetInstance widgetInstance, String name, String value, boolean append){
+		IWidget widget = widgetInstance.getWidget();
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        boolean found=false;
+        ISharedData sharedData = widget.getSharedData(widgetInstance.getSharedDataKey(), name);
+        if (sharedData != null)
+        {
+            if(value==null || value.equalsIgnoreCase("null")){   
+                widget.getSharedData().remove(sharedData);
+            }
+            else{    
+                if(append){
+                    sharedData.setDvalue(sharedData.getDvalue() + value);
+                }
+                else{
+                    sharedData.setDvalue(value);
+                }
+            }
+            found=true;
+        }
 		if(!found){     
 			if(value!=null){
 				String sharedDataKey = widgetInstance.getSharedDataKey();		
-				SharedData sharedData= new SharedData();
-				sharedData.setWidgetGuid(widgetInstance.getWidget().getGuid());
+				sharedData = persistenceManager.newInstance(ISharedData.class);
 				sharedData.setSharedDataKey(sharedDataKey);
 				sharedData.setDkey(name);
 				sharedData.setDvalue(value);
-				sharedData.save();
+				widget.getSharedData().add(sharedData);
 			}
 		}
-		return found;
+        persistenceManager.save(widget);
+        return found;
 	}
 
 	/// Utilities

Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java Mon Aug 23 09:46:30 2010
@@ -19,8 +19,10 @@ import java.net.URI;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.wookie.beans.AccessRequest;
-import org.apache.wookie.beans.Widget;
+import org.apache.wookie.beans.IAccessRequest;
+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;
@@ -40,16 +42,17 @@ public class WidgetAccessRequestPolicyCo
 			HttpServletResponse response) throws UnauthorizedAccessException,
 			IOException {
 
-		AccessRequest[] accessRequests = null;
+		IAccessRequest[] accessRequests = null;
 		
 		String widgetId = request.getParameter("widgetId");
-		if (widgetId == null){
-			accessRequests = AccessRequest.findAll();
-		}
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        if (widgetId == null){
+            accessRequests = persistenceManager.findAll(IAccessRequest.class);
+        }
 		if (widgetId != null && widgetId.trim().length()>0){
 			// Filter by widgetId
-			Widget widget = Widget.findById(widgetId);
-			if (widget != null) accessRequests = AccessRequest.findByValue("widget",widget);
+			IWidget widget = persistenceManager.findById(IWidget.class, widgetId);
+            if (widget != null) accessRequests = persistenceManager.findByValue(IAccessRequest.class, "widget", widget);
 		}
 		
 		switch (format(request)) {
@@ -62,12 +65,13 @@ public class WidgetAccessRequestPolicyCo
 	protected void show(String resourceId, HttpServletRequest request,
 			HttpServletResponse response) throws ResourceNotFoundException,
 			UnauthorizedAccessException, IOException {
-		AccessRequest ar = AccessRequest.findById(Integer.valueOf(resourceId));
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IAccessRequest ar = persistenceManager.findById(IAccessRequest.class, resourceId);
 		if (ar == null) throw new ResourceNotFoundException();
 		
 		switch (format(request)) {
-			case XML: returnXml(AccessRequestHelper.createXMLAccessRequestDocument(new AccessRequest[]{ar}),response);break;
-			case HTML: returnHtml(AccessRequestHelper.createAccessRequestHTMLTable(new AccessRequest[]{ar}),response);break;
+			case XML: returnXml(AccessRequestHelper.createXMLAccessRequestDocument(new IAccessRequest[]{ar}),response);break;
+			case HTML: returnHtml(AccessRequestHelper.createAccessRequestHTMLTable(new IAccessRequest[]{ar}),response);break;
 		}
 	}
 
@@ -75,13 +79,14 @@ public class WidgetAccessRequestPolicyCo
 	protected void update(String resourceId, HttpServletRequest request)
 			throws ResourceNotFoundException, InvalidParametersException,
 			UnauthorizedAccessException {
-		AccessRequest ar = AccessRequest.findById(Integer.valueOf(resourceId));
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IAccessRequest ar = persistenceManager.findById(IAccessRequest.class, resourceId);
 		if (ar == null) throw new ResourceNotFoundException();
 		String granted = request.getParameter("granted");
 		if (granted == null) throw new InvalidParametersException();
 		if (!granted.equals("true") && !granted.equals("false")) throw new InvalidParametersException();
-		if (granted.equals("true")) grantAccess(ar);
-		if (granted.equals("false")) revokeAccess(ar);
+		if (granted.equals("true")) grantAccess(persistenceManager, ar);
+		if (granted.equals("false")) revokeAccess(persistenceManager, ar);
 	}
 	
 	@Override
@@ -101,34 +106,36 @@ public class WidgetAccessRequestPolicyCo
 		String subdomains = request.getParameter("subdomains");
 		
 		String widgetId = request.getParameter("widgetId");
-		Widget widget = Widget.findById(Integer.valueOf(widgetId));
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidget widget = persistenceManager.findById(IWidget.class, widgetId);
 		if (widget == null) throw new InvalidParametersException();
 		
-		AccessRequest ar = new AccessRequest();
+		IAccessRequest ar = persistenceManager.newInstance(IAccessRequest.class);
 		ar.setOrigin(origin);
 		if (subdomains.equals("true")) ar.setSubdomains(true);
 		ar.setGranted(false);
 		ar.setWidget(widget);
-		return ar.save();
+		return persistenceManager.save(ar);
 	}
 
 	@Override
 	protected boolean remove(String resourceId, HttpServletRequest request)
 			throws ResourceNotFoundException, UnauthorizedAccessException,
 			InvalidParametersException {
-		AccessRequest ar = AccessRequest.findById(Integer.valueOf(resourceId));
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        IAccessRequest ar = persistenceManager.findById(IAccessRequest.class, resourceId);
 		if (ar == null) throw new ResourceNotFoundException();
-		return ar.delete();
+		return persistenceManager.delete(ar);
 	}
 
-	private void grantAccess(AccessRequest ar){
+	private void grantAccess(IPersistenceManager persistenceManager, IAccessRequest ar){
 		ar.setGranted(true);
-		ar.save();
+        persistenceManager.save(ar);
 	}
 	
-	private void revokeAccess(AccessRequest ar){
+	private void revokeAccess(IPersistenceManager persistenceManager, IAccessRequest ar){
 		ar.setGranted(false);
-		ar.save();
+		persistenceManager.save(ar);
 	}
 	
 	/**

Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java Mon Aug 23 09:46:30 2010
@@ -29,9 +29,12 @@ import javax.servlet.http.HttpSession;
 import org.apache.commons.configuration.Configuration;
 import org.apache.log4j.Logger;
 import org.apache.wookie.Messages;
-import org.apache.wookie.beans.SharedData;
-import org.apache.wookie.beans.StartFile;
-import org.apache.wookie.beans.WidgetInstance;
+import org.apache.wookie.beans.ISharedData;
+import org.apache.wookie.beans.IStartFile;
+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.exceptions.InvalidWidgetCallException;
 import org.apache.wookie.helpers.Notifier;
 import org.apache.wookie.helpers.WidgetInstanceFactory;
@@ -156,7 +159,7 @@ public class WidgetInstancesController e
 
 	public static void doStopWidget(HttpServletRequest request, HttpServletResponse response) throws IOException{				
 		Messages localizedMessages = LocaleHandler.localizeMessages(request);
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);	
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);	
 		if(instance!=null){
 			lockWidgetInstance(instance);
 			Notifier.notifyWidgets(request.getSession(), instance, Notifier.STATE_UPDATED);
@@ -168,7 +171,7 @@ public class WidgetInstancesController e
 
 	public static void doResumeWidget(HttpServletRequest request, HttpServletResponse response) throws IOException{					
 		Messages localizedMessages = LocaleHandler.localizeMessages(request); 
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		if(instance!=null){
 			unlockWidgetInstance(instance);
 			Notifier.notifyWidgets(request.getSession(), instance, Notifier.STATE_UPDATED);
@@ -198,7 +201,7 @@ public class WidgetInstancesController e
 		
 		checkProxy(request);
 		
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
 		String locale = request.getParameter("locale");//$NON-NLS-1$
 		
 		// Widget exists
@@ -214,8 +217,9 @@ public class WidgetInstancesController e
 					(locale != null && instance.getLang()==null) || 					
 					(locale != null && !instance.getLang().equals(locale))
 			){
+			        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
 					instance.setLang(locale);
-					instance.save();
+					persistenceManager.save(instance);
 			}
 			response.setStatus(HttpServletResponse.SC_OK);			
 		}
@@ -233,7 +237,7 @@ public class WidgetInstancesController e
 	}  
 	
 	public static void cloneSharedData(HttpServletRequest request, HttpServletResponse response){
-		WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);	
+		IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);	
 		if (instance == null){
 			response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
 			return;			
@@ -245,7 +249,17 @@ public class WidgetInstancesController e
 			return;
 		}
 		String cloneKey = String.valueOf((request.getParameter("apikey")+":"+cloneSharedDataKey).hashCode());//$NON-NLS-1$ 
-		boolean ok = SharedData.clone(sharedDataKey, instance.getWidget().getGuid(), cloneKey);
+        IWidget widget = instance.getWidget();
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		for (ISharedData sharedData : widget.getSharedData(sharedDataKey))
+		{
+		    ISharedData clone = persistenceManager.newInstance(ISharedData.class);
+            clone.setDkey(sharedData.getDkey());
+            clone.setDvalue(sharedData.getDvalue());
+            clone.setSharedDataKey(cloneKey);
+            widget.getSharedData().add(clone);
+		}
+		boolean ok = persistenceManager.save(widget);
 		if (ok){
 			response.setStatus(HttpServletResponse.SC_OK);
 		} else {
@@ -253,18 +267,20 @@ public class WidgetInstancesController e
 		}
 	}
 	
-	public synchronized static void lockWidgetInstance(WidgetInstance instance){
+	public synchronized static void lockWidgetInstance(IWidgetInstance instance){
 		//doLock(instance, true);
 		PropertiesController.updateSharedDataEntry(instance, "isLocked", "true", false);//$NON-NLS-1$ //$NON-NLS-2$
 		instance.setLocked(true);
-		instance.save();
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        persistenceManager.save(instance);
 	}
 
-	public synchronized static void unlockWidgetInstance(WidgetInstance instance){
+	public synchronized static void unlockWidgetInstance(IWidgetInstance instance){
 		//doLock(instance, false);
 		PropertiesController.updateSharedDataEntry(instance, "isLocked", "false", false);//$NON-NLS-1$ //$NON-NLS-2$
 		instance.setLocked(false);
-		instance.save();
+        IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+        persistenceManager.save(instance);
 	}
 	
 	// Utility methods
@@ -286,12 +302,13 @@ public class WidgetInstancesController e
 	 * @return the absolute URL
 	 * @throws IOException
 	 */
-	protected static String getUrl(HttpServletRequest request, WidgetInstance instance) throws IOException{
+	protected static String getUrl(HttpServletRequest request, IWidgetInstance instance) throws IOException{
 		String url = "";
-		
-		StartFile sf = (StartFile) LocalizationUtils.getLocalizedElement(StartFile.findByValue("widget", instance.getWidget()), new String[]{instance.getLang()});
+
+		IStartFile[] startFiles = instance.getWidget().getStartFiles().toArray(new IStartFile[instance.getWidget().getStartFiles().size()]);
+        IStartFile sf = (IStartFile) LocalizationUtils.getLocalizedElement(startFiles, new String[]{instance.getLang()});
 		// Try default locale if no appropriate localization found
-		if (sf == null) sf = (StartFile) LocalizationUtils.getLocalizedElement(StartFile.findByValue("widget", instance.getWidget()), null);
+		if (sf == null) sf = (IStartFile) LocalizationUtils.getLocalizedElement(startFiles, null);
 		// No start file found, so throw an exception
 		if (sf == null) throw new IOException("No start file located for widget "+instance.getWidget().getGuid());
 		
@@ -317,36 +334,37 @@ public class WidgetInstancesController e
 	 * @param request
 	 * @return
 	 */
-	public static WidgetInstance findWidgetInstance(HttpServletRequest request){
-		WidgetInstance instance;
-		
+	public static IWidgetInstance findWidgetInstance(HttpServletRequest request){
+		IWidgetInstance instance;
+
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
 		String id_key = request.getParameter("id_key"); //$NON-NLS-1$
 		if (id_key != null & id_key != ""){
-			instance = WidgetInstance.findByIdKey(id_key);
+			instance = persistenceManager.findWidgetInstanceByIdKey(id_key);
 			return instance;
 		}
 
-    try {
-  		String apiKey = URLDecoder.decode(request.getParameter("api_key"), "UTF-8"); //$NON-NLS-1$
-  		String userId = URLDecoder.decode(request.getParameter("userid"), "UTF-8"); //$NON-NLS-1$
-  		String sharedDataKey = WidgetInstancesController.getSharedDataKey(request);
-  		String widgetId = request.getParameter("widgetid");
-      if (widgetId != null){
-        widgetId = URLDecoder.decode(widgetId, "UTF-8"); //$NON-NLS-1$
-        _logger.debug("Looking for widget instance with widgetid of " + widgetId);
-        instance = WidgetInstance.getWidgetInstanceById(apiKey, userId, sharedDataKey, widgetId);
-      } else {
-        String serviceType = URLDecoder.decode(request.getParameter("servicetype"), "UTF-8"); //$NON-NLS-1$
-        _logger.debug("Looking for widget instance of service type " + serviceType);
-        instance = WidgetInstance.getWidgetInstance(apiKey, userId, sharedDataKey, serviceType);
-      }
-      if (instance == null) {
-        _logger.error("No widget instance for found");
-      }
-      return instance;
-    } catch (UnsupportedEncodingException e) {
-      throw new RuntimeException("Server must support UTF-8 encoding", e);
-    } //$NON-NLS-1$
-		
+		try {
+			String apiKey = URLDecoder.decode(request.getParameter("api_key"), "UTF-8"); //$NON-NLS-1$
+			String userId = URLDecoder.decode(request.getParameter("userid"), "UTF-8"); //$NON-NLS-1$
+			String sharedDataKey = WidgetInstancesController.getSharedDataKey(request);
+			String widgetId = request.getParameter("widgetid");
+			if (widgetId != null){
+				widgetId = URLDecoder.decode(widgetId, "UTF-8"); //$NON-NLS-1$
+				_logger.debug("Looking for widget instance with widgetid of " + widgetId);
+				instance = persistenceManager.findWidgetInstanceByGuid(apiKey, userId, sharedDataKey, widgetId);
+			} else {
+				String serviceType = URLDecoder.decode(request.getParameter("servicetype"), "UTF-8"); //$NON-NLS-1$
+				_logger.debug("Looking for widget instance of service type " + serviceType);
+				instance = persistenceManager.findWidgetInstance(apiKey, userId, sharedDataKey, serviceType);
+			}
+			if (instance == null) {
+				_logger.debug("No widget instance found for APIkey= "+apiKey+" userId="+userId+" widgetId="+widgetId);
+			}
+			return instance;
+		} catch (UnsupportedEncodingException e) {
+			throw new RuntimeException("Server must support UTF-8 encoding", e);
+		} //$NON-NLS-1$
+
 	}
 }
\ No newline at end of file

Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetServicesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetServicesController.java?rev=988048&r1=988047&r2=988048&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetServicesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetServicesController.java Mon Aug 23 09:46:30 2010
@@ -15,15 +15,17 @@
 package org.apache.wookie.controller;
 
 import java.io.IOException;
-import java.util.Set;
+import java.util.Iterator;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.wookie.beans.Widget;
-import org.apache.wookie.beans.WidgetDefault;
-import org.apache.wookie.beans.WidgetService;
-import org.apache.wookie.beans.WidgetType;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetDefault;
+import org.apache.wookie.beans.IWidgetService;
+import org.apache.wookie.beans.IWidgetType;
+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;
@@ -55,7 +57,7 @@ public class WidgetServicesController ex
 	 * @see org.apache.wookie.controller.Controller#show(java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
 	 */
 	protected void show(String resourceId, HttpServletRequest request, HttpServletResponse response) throws ResourceNotFoundException, IOException{
-		WidgetService ws = getWidgetService(resourceId);
+		IWidgetService ws = getWidgetService(resourceId);
 		returnXml(WidgetServiceHelper.createXMLWidgetServiceDocument(ws, getLocalPath(request),getLocales(request)), response);
 	}
 
@@ -63,7 +65,8 @@ public class WidgetServicesController ex
 	 * @see org.apache.wookie.controller.Controller#index(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
 	 */
 	protected void index(HttpServletRequest request, HttpServletResponse response) throws IOException{
-		WidgetService[] ws = WidgetService.findAll();
+	    IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidgetService[] ws = persistenceManager.findAll(IWidgetService.class);
 		boolean defaults = (request.getParameter("defaults") != null);
 		returnXml(WidgetServiceHelper.createXMLWidgetServicesDocument(ws, getLocalPath(request),defaults, getLocales(request)), response);
 	}
@@ -84,14 +87,15 @@ public class WidgetServicesController ex
 	 */
 	public static boolean create(String resourceId) throws ResourceDuplicationException,InvalidParametersException{
 		if (resourceId == null || resourceId.trim().equals("")) throw new InvalidParametersException();
-		WidgetService ws;
+		IWidgetService ws;
 		try {
 			ws = getWidgetService(resourceId);
 			throw new ResourceDuplicationException();
 		} catch (ResourceNotFoundException e) {
-			ws = new WidgetService();
+		    IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+			ws = persistenceManager.newInstance(IWidgetService.class);
 			ws.setServiceName(resourceId);
-			return ws.save();
+			return persistenceManager.save(ws);
 		}
 	}
 
@@ -111,28 +115,30 @@ public class WidgetServicesController ex
 	 * @throws ResourceNotFoundException
 	 */
 	public static boolean remove(String resourceId) throws ResourceNotFoundException {
-		WidgetService service = getWidgetService(resourceId);
+		IWidgetService service = getWidgetService(resourceId);
 		if (service == null) throw new ResourceNotFoundException();
 		String serviceName = service.getServiceName();
 		
 		// if exists, remove from widget default table
-		WidgetDefault[] widgetDefaults = WidgetDefault.findByValue("widgetContext", serviceName);
-		WidgetDefault.delete(widgetDefaults);
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidgetDefault[] widgetDefaults = persistenceManager.findByValue(IWidgetDefault.class, "widgetContext", serviceName);
+		persistenceManager.delete(widgetDefaults);
 		
 		// delete from the widget service table
-		service.delete();	
+		persistenceManager.delete(service);	
 		// remove any widgetTypes for each widget that match
-		Widget[] widgets = Widget.findByType(serviceName);
+		IWidget[] widgets = persistenceManager.findWidgetsByType(serviceName);
 		if (widgets == null||widgets.length==0) return true;
-		for(Widget widget : widgets){
+		for(IWidget widget : widgets){
 			// 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){	
-		    	if(serviceName.equalsIgnoreCase(widgetTypes[j].getWidgetContext())){
-		    		widgetTypes[j].delete();
-		    	}
-			}
+		    Iterator<IWidgetType> typesIter = widget.getWidgetTypes().iterator();
+		    while(typesIter.hasNext()) {
+		        IWidgetType widgetType = typesIter.next();
+                if(serviceName.equalsIgnoreCase(widgetType.getWidgetContext())){
+                    typesIter.remove();
+                }
+		    }
+		    persistenceManager.save(widget);
 		}					
 		return true;
 	}
@@ -145,10 +151,11 @@ public class WidgetServicesController ex
 			throws ResourceNotFoundException,InvalidParametersException {
 		String name = request.getParameter("name");
 		if (name == null || name.trim().equals("")) throw new InvalidParametersException();
-		WidgetService ws = getWidgetService(resourceId);
+		IWidgetService ws = getWidgetService(resourceId);
 		if (ws == null) throw new ResourceNotFoundException();
 		ws.setServiceName(name);
-		ws.save();
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		persistenceManager.save(ws);
 	}
 	
 	// Utilities
@@ -159,13 +166,12 @@ public class WidgetServicesController ex
 	 * @param resourceId
 	 * @return
 	 */
-	private static WidgetService getWidgetService(String resourceId) throws ResourceNotFoundException{
+	private static IWidgetService getWidgetService(String resourceId) throws ResourceNotFoundException{
 		if (resourceId == null) throw new ResourceNotFoundException();
-		WidgetService ws = null;
-		if (isAnInteger(resourceId)){
-			ws = WidgetService.findById(Integer.valueOf(resourceId));
-		} else {
-			WidgetService[] wsa = WidgetService.findByValue("serviceName", resourceId);
+		IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+		IWidgetService ws = persistenceManager.findById(IWidgetService.class, resourceId);
+		if (ws == null) {
+			IWidgetService[] wsa = persistenceManager.findByValue(IWidgetService.class, "serviceName", resourceId);
 			if (wsa != null && wsa.length == 1) ws = wsa[0];
 		}
 		if (ws == null) throw new ResourceNotFoundException();