Author: yurize
Date: Sat Apr 21 20:14:04 2012
New Revision: 1328732

URL: http://svn.apache.org/viewvc?rev=1328732&view=rev
Log:
Updates GravatarProfilesFetcher to use HTTPS only if needed.
https://reviews.apache.org/r/4836/

Modified:
    
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java
    
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
    
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
    
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
    
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java

Modified: 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
--- 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java 
(original)
+++ 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java 
Sat Apr 21 20:14:04 2012
@@ -20,6 +20,7 @@ package org.waveprotocol.box.server.robo
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
+import com.google.inject.Injector;
 import com.google.inject.Provides;
 import com.google.inject.Singleton;
 import com.google.inject.name.Named;
@@ -39,8 +40,8 @@ import org.waveprotocol.box.server.CoreS
 import 
org.waveprotocol.box.server.robots.active.ActiveApiOperationServiceRegistry;
 import org.waveprotocol.box.server.robots.dataapi.DataApiOAuthServlet;
 import 
org.waveprotocol.box.server.robots.dataapi.DataApiOperationServiceRegistry;
-import org.waveprotocol.box.server.robots.operations.NotifyOperationService;
-import org.waveprotocol.box.server.robots.operations.SearchService;
+import 
org.waveprotocol.box.server.robots.operations.FetchProfilesService.ProfilesFetcher;
+import org.waveprotocol.box.server.robots.operations.GravatarProfilesFetcher;
 import org.waveprotocol.box.server.robots.passive.RobotConnector;
 
 import java.util.concurrent.Executor;
@@ -71,6 +72,7 @@ public class RobotApiModule extends Abst
         REQUEST_TOKEN_PATH);
     
bind(String.class).annotatedWith(Names.named("access_token_path")).toInstance(
         ACCESS_TOKEN_PATH);
+    
bind(ProfilesFetcher.class).to(GravatarProfilesFetcher.class).in(Singleton.class);
   }
 
   @Provides
@@ -105,16 +107,16 @@ public class RobotApiModule extends Abst
   @Singleton
   @Inject
   @Named("ActiveApiRegistry")
-  protected OperationServiceRegistry 
provideActiveApiRegistry(NotifyOperationService notifyOpService) {
-    return new ActiveApiOperationServiceRegistry(notifyOpService);
+  protected OperationServiceRegistry provideActiveApiRegistry(Injector 
injector) {
+    return new ActiveApiOperationServiceRegistry(injector);
   }
 
   @Provides
   @Singleton
   @Inject
   @Named("DataApiRegistry")
-  protected OperationServiceRegistry provideDataApiRegistry(SearchService 
searchService) {
-    return new DataApiOperationServiceRegistry(searchService);
+  protected OperationServiceRegistry provideDataApiRegistry(Injector injector) 
{
+    return new DataApiOperationServiceRegistry(injector);
   }
 
   @Provides

Modified: 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
--- 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
 (original)
+++ 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
 Sat Apr 21 20:14:04 2012
@@ -18,6 +18,7 @@
 package org.waveprotocol.box.server.robots.active;
 
 import com.google.inject.Inject;
+import com.google.inject.Injector;
 import com.google.wave.api.OperationType;
 
 import org.waveprotocol.box.server.robots.AbstractOperationServiceRegistry;
@@ -43,9 +44,9 @@ public final class ActiveApiOperationSer
   // the default client libraries
   @SuppressWarnings("deprecation")
   @Inject
-  public ActiveApiOperationServiceRegistry(NotifyOperationService 
notifyOpService) {
+  public ActiveApiOperationServiceRegistry(Injector injector) {
     super();
-
+    NotifyOperationService notifyOpService = 
injector.getInstance(NotifyOperationService.class);
     // Register all the OperationProviders
     register(OperationType.ROBOT_NOTIFY, notifyOpService);
     register(OperationType.ROBOT_NOTIFY_CAPABILITIES_HASH, notifyOpService);
@@ -58,13 +59,13 @@ public final class ActiveApiOperationSer
     register(OperationType.DOCUMENT_APPEND_INLINE_BLIP, 
BlipOperationServices.create());
     register(OperationType.DOCUMENT_APPEND_MARKUP, 
BlipOperationServices.create());
     register(OperationType.DOCUMENT_INSERT_INLINE_BLIP, 
BlipOperationServices.create());
-    register(
-        OperationType.DOCUMENT_INSERT_INLINE_BLIP_AFTER_ELEMENT, 
BlipOperationServices.create());
+    register(OperationType.DOCUMENT_INSERT_INLINE_BLIP_AFTER_ELEMENT,
+        BlipOperationServices.create());
     register(OperationType.ROBOT_CREATE_WAVELET, 
CreateWaveletService.create());
     register(OperationType.ROBOT_FETCH_WAVE, FetchWaveService.create());
     register(OperationType.DOCUMENT_MODIFY, DocumentModifyService.create());
     register(OperationType.WAVELET_SET_TITLE, WaveletSetTitleService.create());
     register(OperationType.ROBOT_FOLDER_ACTION, FolderActionService.create());
-    register(OperationType.ROBOT_FETCH_PROFILES, 
FetchProfilesService.create());
+    register(OperationType.ROBOT_FETCH_PROFILES, 
injector.getInstance(FetchProfilesService.class));
   }
 }

Modified: 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
--- 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
 (original)
+++ 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
 Sat Apr 21 20:14:04 2012
@@ -18,6 +18,7 @@
 package org.waveprotocol.box.server.robots.dataapi;
 
 import com.google.inject.Inject;
+import com.google.inject.Injector;
 import com.google.wave.api.OperationType;
 
 import org.waveprotocol.box.server.robots.AbstractOperationServiceRegistry;
@@ -43,7 +44,7 @@ public final class DataApiOperationServi
   // the default client libraries
   @SuppressWarnings("deprecation")
   @Inject
-  public DataApiOperationServiceRegistry(SearchService searchService) {
+  public DataApiOperationServiceRegistry(Injector injector) {
     super();
 
     // Register all the OperationProviders
@@ -63,9 +64,9 @@ public final class DataApiOperationServi
     register(OperationType.ROBOT_CREATE_WAVELET, 
CreateWaveletService.create());
     register(OperationType.ROBOT_FETCH_WAVE, FetchWaveService.create());
     register(OperationType.DOCUMENT_MODIFY, DocumentModifyService.create());
-    register(OperationType.ROBOT_SEARCH, searchService);
+    register(OperationType.ROBOT_SEARCH, 
injector.getInstance(SearchService.class));
     register(OperationType.WAVELET_SET_TITLE, WaveletSetTitleService.create());
     register(OperationType.ROBOT_FOLDER_ACTION, FolderActionService.create());
-    register(OperationType.ROBOT_FETCH_PROFILES, 
FetchProfilesService.create());
+    register(OperationType.ROBOT_FETCH_PROFILES, 
injector.getInstance(FetchProfilesService.class));
   }
 }

Modified: 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
--- 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
 (original)
+++ 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
 Sat Apr 21 20:14:04 2012
@@ -20,6 +20,7 @@ package org.waveprotocol.box.server.robo
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
+import com.google.inject.Inject;
 import com.google.wave.api.FetchProfilesRequest;
 import com.google.wave.api.FetchProfilesResult;
 import com.google.wave.api.InvalidRequestException;
@@ -36,13 +37,13 @@ import java.util.Map;
 
 /**
  * {@link OperationService} for the "fetchProfiles" operation.
- * 
+ *
  * @author [email protected] (Yuri Zelikov)
  */
 public class FetchProfilesService implements OperationService {
 
   public interface ProfilesFetcher {
-    
+
     public static final String UNKNOWN_IMAGE = "/static/images/unknown.jpg";
     public static final String UNKNOWN_PROFILE = "";
 
@@ -93,11 +94,8 @@ public class FetchProfilesService implem
 
   private final ProfilesFetcher profilesFetcher;
 
-  public static FetchProfilesService create() {
-    return new FetchProfilesService(GravatarProfilesFetcher.create());
-  }
-
-  FetchProfilesService(ProfilesFetcher profilesFetcher) {
+  @Inject
+  public FetchProfilesService(ProfilesFetcher profilesFetcher) {
     this.profilesFetcher = profilesFetcher;
   }
 

Modified: 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
--- 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
 (original)
+++ 
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
 Sat Apr 21 20:14:04 2012
@@ -17,9 +17,12 @@
 
 package org.waveprotocol.box.server.robots.operations;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
 import com.google.wave.api.ParticipantProfile;
 
 import org.apache.commons.codec.digest.DigestUtils;
+import org.waveprotocol.box.server.CoreSettings;
 import 
org.waveprotocol.box.server.robots.operations.FetchProfilesService.ProfilesFetcher;
 
 /**
@@ -33,14 +36,18 @@ import org.waveprotocol.box.server.robot
  */
 public class GravatarProfilesFetcher implements ProfilesFetcher {
 
-  private static final String GRAVATAR_URL = 
"https://secure.gravatar.com/avatar/";;
+  private final String SECURE_GRAVATAR_URL = 
"https://secure.gravatar.com/avatar/";;
+  private final String NON_SECURE_GRAVATAR_URL = "http://gravatar.com/avatar/";;
 
-  public static GravatarProfilesFetcher create() {
-    return new GravatarProfilesFetcher();
-  }
-
-  private GravatarProfilesFetcher() {
+  private final String gravatarUrl;
 
+  @Inject
+  public GravatarProfilesFetcher(@Named(CoreSettings.ENABLE_SSL) boolean 
enableSsl) {
+    if (enableSsl) {
+      gravatarUrl = SECURE_GRAVATAR_URL;
+    } else {
+      gravatarUrl = NON_SECURE_GRAVATAR_URL;
+    }
   }
 
   /**
@@ -50,7 +57,7 @@ public class GravatarProfilesFetcher imp
     // Hexadecimal MD5 hash of the requested user's lowercased email address
     // with all whitespace trimmed.
     String emailHash = DigestUtils.md5Hex(email.toLowerCase().trim());
-    return GRAVATAR_URL + emailHash + ".jpg?s=100&d=identicon";
+    return gravatarUrl + emailHash + ".jpg?s=100&d=identicon";
   }
 
   @Override


Reply via email to