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 2014/02/14 16:08:03 UTC

svn commit: r1568334 - in /wookie/trunk/wookie-services: wookie-redis/src/main/java/org/apache/wookie/services/redis/ wookie-spi/src/main/java/org/apache/wookie/services/impl/

Author: scottbw
Date: Fri Feb 14 15:08:03 2014
New Revision: 1568334

URL: http://svn.apache.org/r1568334
Log:
Applied fixes to SPI implementations to make sure they pass all the unit tests; this mostly involved adding null and empty string guards

Modified:
    wookie/trunk/wookie-services/wookie-redis/src/main/java/org/apache/wookie/services/redis/RedisSharedContextService.java
    wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultPreferencesService.java
    wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultSharedContextService.java

Modified: wookie/trunk/wookie-services/wookie-redis/src/main/java/org/apache/wookie/services/redis/RedisSharedContextService.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-services/wookie-redis/src/main/java/org/apache/wookie/services/redis/RedisSharedContextService.java?rev=1568334&r1=1568333&r2=1568334&view=diff
==============================================================================
--- wookie/trunk/wookie-services/wookie-redis/src/main/java/org/apache/wookie/services/redis/RedisSharedContextService.java (original)
+++ wookie/trunk/wookie-services/wookie-redis/src/main/java/org/apache/wookie/services/redis/RedisSharedContextService.java Fri Feb 14 15:08:03 2014
@@ -331,10 +331,14 @@ public class RedisSharedContextService i
 		String key = getParticipantKey(apiKey, widgetId, contextId, participant.getParticipantId());
 		
 		//
-		// If there is no existing tuple, add the key to the list of keys for this token
+		// If there is no existing tuple, add the key to the list of keys for this token, otherwise
+		// we return false as there is no overwriting of participants
 		//
 		if (this.getParticipant(apiKey, widgetId, contextId, participant.getParticipantId()) == null){
 			jedis.lpush(this.getContextKey(apiKey, widgetId, contextId), key);			
+		} else {
+			pool.returnResource(jedis);
+			return false;
 		}
 
 		//

Modified: wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultPreferencesService.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultPreferencesService.java?rev=1568334&r1=1568333&r2=1568334&view=diff
==============================================================================
--- wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultPreferencesService.java (original)
+++ wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultPreferencesService.java Fri Feb 14 15:08:03 2014
@@ -51,12 +51,14 @@ public class DefaultPreferencesService i
 
 	@Override
 	public void setPreference(String token, IPreference preference) {
-		HashMap<String, IPreference> widgetpreferences = preferences.get(token);
-		if (widgetpreferences == null){
-			widgetpreferences = new HashMap<String, IPreference>();
-			this.preferences.put(token, widgetpreferences);
+		if (preference != null){
+			HashMap<String, IPreference> widgetpreferences = preferences.get(token);
+			if (widgetpreferences == null){
+				widgetpreferences = new HashMap<String, IPreference>();
+				this.preferences.put(token, widgetpreferences);
+			}
+			widgetpreferences.put(preference.getName(), preference);
 		}
-		widgetpreferences.put(preference.getName(), preference);
 	}
 
 	@Override
@@ -77,11 +79,18 @@ public class DefaultPreferencesService i
 
 	@Override
 	public void setPreferences(String token, Collection<IPreference> preferences) {
-		HashMap<String, IPreference> widgetpreferences = new HashMap<String, IPreference>();
-		for (IPreference preference: preferences){
-			widgetpreferences.put(preference.getName(), preference);
-		}
-		this.preferences.put(token, widgetpreferences);
+		//
+		// Setting to null is the same as clearing the preferences
+		//
+		if (preferences == null){
+			this.removePreferences(token);
+		} else {
+			HashMap<String, IPreference> widgetpreferences = new HashMap<String, IPreference>();
+			for (IPreference preference: preferences){
+				widgetpreferences.put(preference.getName(), preference);
+			}
+			this.preferences.put(token, widgetpreferences);
+		} 
 	}
 
 	@Override

Modified: wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultSharedContextService.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultSharedContextService.java?rev=1568334&r1=1568333&r2=1568334&view=diff
==============================================================================
--- wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultSharedContextService.java (original)
+++ wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultSharedContextService.java Fri Feb 14 15:08:03 2014
@@ -127,10 +127,25 @@ public class DefaultSharedContextService
 			String contextId, String key, String value, boolean append) {	
 		HashMap<String, ISharedData> sharedData = getSharedContextFromTree(apiKey,contextId, widgetId).getSharedData();
 		boolean existing = true;
+		
+		
+		//
+		// If the value is null, and we're not set to append, this is 
+		// actually the same as "remove"
+		//
+		if (value == null){
+			return this.removeSharedData(apiKey, widgetId, contextId, key);
+		}
+		
 		if (!sharedData.containsKey(key)) existing = false;
+		
+		//
+		// if it already exists, and the instruction is to append, prepend the 
+		// existing value to the new value to set
+		//
 		if (append && existing) value = sharedData.get(key).getDvalue() + value;
 		sharedData.put(key, new DefaultSharedDataImpl(key,value));
-		return existing;
+		return true;
 	}
 
 	@Override
@@ -154,7 +169,16 @@ public class DefaultSharedContextService
 			String role) {
 		HashMap<String, IParticipant> participants = getSharedContextFromTree(apiKey,contextId, widgetId).getParticipants();
 		
+		//
+		// Already exists
+		//
 		if (participants.containsKey(participantId)) return false;
+		
+		//
+		// No id
+		//
+		if (participantId == null || participantId.trim().length() == 0) return false;
+		
 		participants.put(participantId, new DefaultParticipantImpl(participantId,participantDisplayName, participantThumbnailUrl, role));
 		return true;
 	}
@@ -162,8 +186,10 @@ public class DefaultSharedContextService
 	@Override
 	public void removeParticipant(String apiKey, String widgetId,
 			String contextId, IParticipant participant) {
-		HashMap<String, IParticipant> participants = getSharedContextFromTree(apiKey,contextId, widgetId).getParticipants();
-		participants.remove(participant.getParticipantId());
+		if (participant != null){
+			HashMap<String, IParticipant> participants = getSharedContextFromTree(apiKey,contextId, widgetId).getParticipants();
+			participants.remove(participant.getParticipantId());
+		}
 	}
 
 	@Override