Author: matthieu
Date: Fri Dec 11 10:08:45 2015
New Revision: 1719323

URL: http://svn.apache.org/viewvc?rev=1719323&view=rev
Log:
JAMES-1644 Add guice injection in JMAP module

Added:
    
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/
    
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPCommonModule.java
Modified:
    james/project/trunk/server/container/cassandra-guice/pom.xml
    
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessTokenRepository.java
    
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepository.java
    
james/project/trunk/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
    james/project/trunk/server/pom.xml
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationFilter.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/AccessTokenManagerImpl.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignatureHandler.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignedContinuationTokenManager.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/AccessTokenRequest.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/DefaultZonedDateTimeProvider.java
    
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/ZonedDateTimeProvider.java
    
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
    
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/AccessTokenManagerImplTest.java
    
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java

Modified: james/project/trunk/server/container/cassandra-guice/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- james/project/trunk/server/container/cassandra-guice/pom.xml (original)
+++ james/project/trunk/server/container/cassandra-guice/pom.xml Fri Dec 11 
10:08:45 2015
@@ -267,6 +267,10 @@
                 </dependency>
                 <dependency>
                     <groupId>${project.groupId}</groupId>
+                    <artifactId>james-server-jmap</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>${project.groupId}</groupId>
                     <artifactId>james-server-lifecycle-api</artifactId>
                 </dependency>
                 <dependency>

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPCommonModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPCommonModule.java?rev=1719323&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPCommonModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPCommonModule.java
 Fri Dec 11 10:08:45 2015
@@ -0,0 +1,52 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.jmap;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.james.jmap.api.AccessTokenManager;
+import org.apache.james.jmap.api.ContinuationTokenManager;
+import org.apache.james.jmap.api.access.AccessTokenRepository;
+import org.apache.james.jmap.crypto.AccessTokenManagerImpl;
+import org.apache.james.jmap.crypto.JamesSignatureHandler;
+import org.apache.james.jmap.crypto.SignatureHandler;
+import org.apache.james.jmap.crypto.SignedContinuationTokenManager;
+import org.apache.james.jmap.memory.access.MemoryAccessTokenRepository;
+import org.apache.james.jmap.utils.DefaultZonedDateTimeProvider;
+import org.apache.james.jmap.utils.ZonedDateTimeProvider;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.name.Names;
+
+public class JMAPCommonModule extends AbstractModule {
+    
+    private static final long DEFAULT_TOKEN_EXPIRATION_IN_MS = 
TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);
+
+    @Override
+    protected void configure() {
+        bind(SignatureHandler.class).to(JamesSignatureHandler.class);
+        
bind(ZonedDateTimeProvider.class).to(DefaultZonedDateTimeProvider.class);
+        
bind(ContinuationTokenManager.class).to(SignedContinuationTokenManager.class);
+
+        
bindConstant().annotatedWith(Names.named(AccessTokenRepository.TOKEN_EXPIRATION_IN_MS)).to(DEFAULT_TOKEN_EXPIRATION_IN_MS);
+        
bind(AccessTokenRepository.class).to(MemoryAccessTokenRepository.class);
+        bind(AccessTokenManager.class).to(AccessTokenManagerImpl.class);
+    }
+
+}

Modified: 
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessTokenRepository.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessTokenRepository.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessTokenRepository.java
 (original)
+++ 
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessTokenRepository.java
 Fri Dec 11 10:08:45 2015
@@ -24,6 +24,8 @@ import org.apache.james.jmap.api.access.
 
 public interface AccessTokenRepository {
 
+    String TOKEN_EXPIRATION_IN_MS = "tokenExpirationInMs";
+    
     void addToken(String username, AccessToken accessToken) throws 
AccessTokenAlreadyStored;
 
     void removeToken(AccessToken accessToken);

Modified: 
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepository.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepository.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepository.java
 (original)
+++ 
james/project/trunk/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepository.java
 Fri Dec 11 10:08:45 2015
@@ -22,6 +22,7 @@ package org.apache.james.jmap.memory.acc
 import java.util.Optional;
 
 import javax.inject.Inject;
+import javax.inject.Named;
 import javax.inject.Singleton;
 
 import org.apache.commons.collections4.map.PassiveExpiringMap;
@@ -38,7 +39,7 @@ public class MemoryAccessTokenRepository
     private final PassiveExpiringMap<AccessToken, String> 
tokensExpirationDates;
 
     @Inject
-    public MemoryAccessTokenRepository(long durationInMilliseconds) {
+    public MemoryAccessTokenRepository(@Named(TOKEN_EXPIRATION_IN_MS) long 
durationInMilliseconds) {
         tokensExpirationDates = new 
PassiveExpiringMap<>(durationInMilliseconds);
     }
 

Modified: 
james/project/trunk/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
 (original)
+++ 
james/project/trunk/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
 Fri Dec 11 10:08:45 2015
@@ -32,7 +32,7 @@ public class MemoryAccessTokenRepository
 
     private static final AccessToken TOKEN = AccessToken.generate();
     private static final String USERNAME = "username";
-    private static final int TTL_IN_MS = 100;
+    private static final long TTL_IN_MS = 100;
 
     private MemoryAccessTokenRepository accessTokenRepository;
 

Modified: james/project/trunk/server/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/pom.xml?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- james/project/trunk/server/pom.xml (original)
+++ james/project/trunk/server/pom.xml Fri Dec 11 10:08:45 2015
@@ -538,6 +538,11 @@
                 <type>test-jar</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>james-server-jmap</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.james.protocols</groupId>
                 <artifactId>protocols-smtp</artifactId>
                 <version>${protocols.version}</version>

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationFilter.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationFilter.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationFilter.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationFilter.java
 Fri Dec 11 10:08:45 2015
@@ -21,6 +21,7 @@ package org.apache.james.jmap;
 import java.io.IOException;
 import java.util.Optional;
 
+import javax.inject.Inject;
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
@@ -37,6 +38,7 @@ public class AuthenticationFilter implem
     
     private AccessTokenManager accessTokenManager;
 
+    @Inject
     public AuthenticationFilter(AccessTokenManager accessTokenManager) {
         this.accessTokenManager = accessTokenManager;
     }

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
 Fri Dec 11 10:08:45 2015
@@ -21,6 +21,7 @@ package org.apache.james.jmap;
 import java.io.IOException;
 
 import javax.inject.Inject;
+import javax.inject.Singleton;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -45,6 +46,7 @@ import org.slf4j.LoggerFactory;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.annotations.VisibleForTesting;
 
+@Singleton
 public class AuthenticationServlet extends HttpServlet {
 
     public static final String JSON_CONTENT_TYPE = "application/json";

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/AccessTokenManagerImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/AccessTokenManagerImpl.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/AccessTokenManagerImpl.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/AccessTokenManagerImpl.java
 Fri Dec 11 10:08:45 2015
@@ -19,6 +19,9 @@
 
 package org.apache.james.jmap.crypto;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 import org.apache.james.jmap.api.AccessTokenManager;
 import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.api.access.AccessTokenRepository;
@@ -26,10 +29,12 @@ import org.apache.james.jmap.api.access.
 
 import com.google.common.base.Preconditions;
 
+@Singleton
 public class AccessTokenManagerImpl implements AccessTokenManager {
 
     private final AccessTokenRepository accessTokenRepository;
 
+    @Inject
     public AccessTokenManagerImpl(AccessTokenRepository accessTokenRepository) 
{
         this.accessTokenRepository = accessTokenRepository;
     }

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
 Fri Dec 11 10:08:45 2015
@@ -29,6 +29,9 @@ import java.security.PublicKey;
 import java.security.Signature;
 import java.security.SignatureException;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -37,9 +40,11 @@ import org.apache.james.lifecycle.api.Co
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Throwables;
 
+@Singleton
 public class JamesSignatureHandler implements SignatureHandler, Configurable {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(JamesSignatureHandler.class);
@@ -54,7 +59,8 @@ public class JamesSignatureHandler imple
     private PrivateKey privateKey;
     private PublicKey publicKey;
 
-    public JamesSignatureHandler(FileSystem fileSystem) {
+    @Inject
+    @VisibleForTesting JamesSignatureHandler(FileSystem fileSystem) {
         this.fileSystem = fileSystem;
     }
 
@@ -63,6 +69,7 @@ public class JamesSignatureHandler imple
         secret = configuration.getString("tls.secret", "");
     }
 
+    @Override
     public void init() throws Exception {
         KeyStore keystore = KeyStore.getInstance(JKS);
         InputStream fis = fileSystem.getResource(keystoreURL);

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignatureHandler.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignatureHandler.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignatureHandler.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignatureHandler.java
 Fri Dec 11 10:08:45 2015
@@ -20,6 +20,8 @@
 package org.apache.james.jmap.crypto;
 
 public interface SignatureHandler {
+    
+    void init() throws Exception;
 
     String sign(String source);
 

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignedContinuationTokenManager.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignedContinuationTokenManager.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignedContinuationTokenManager.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/SignedContinuationTokenManager.java
 Fri Dec 11 10:08:45 2015
@@ -22,17 +22,22 @@ package org.apache.james.jmap.crypto;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 import org.apache.james.jmap.api.ContinuationTokenManager;
 import org.apache.james.jmap.model.ContinuationToken;
 import org.apache.james.jmap.utils.ZonedDateTimeProvider;
 
 import com.google.common.base.Preconditions;
 
+@Singleton
 public class SignedContinuationTokenManager implements 
ContinuationTokenManager {
 
     private final SignatureHandler signatureHandler;
     private final ZonedDateTimeProvider zonedDateTimeProvider;
 
+    @Inject
     public SignedContinuationTokenManager(SignatureHandler signatureHandler, 
ZonedDateTimeProvider zonedDateTimeProvider) {
         this.signatureHandler = signatureHandler;
         this.zonedDateTimeProvider = zonedDateTimeProvider;
@@ -41,7 +46,7 @@ public class SignedContinuationTokenMana
     @Override
     public ContinuationToken generateToken(String username) {
         Preconditions.checkNotNull(username);
-        ZonedDateTime expirationTime = 
zonedDateTimeProvider.provide().plusMinutes(15);
+        ZonedDateTime expirationTime = 
zonedDateTimeProvider.get().plusMinutes(15);
         return new ContinuationToken(username,
             expirationTime,
             signatureHandler.sign(username + ContinuationToken.SEPARATOR + 
DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(expirationTime)));
@@ -70,6 +75,6 @@ public class SignedContinuationTokenMana
     }
 
     private boolean isExpired(ContinuationToken token) {
-        return 
token.getExpirationDate().isBefore(zonedDateTimeProvider.provide());
+        return token.getExpirationDate().isBefore(zonedDateTimeProvider.get());
     }
 }

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/AccessTokenRequest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/AccessTokenRequest.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/AccessTokenRequest.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/AccessTokenRequest.java
 Fri Dec 11 10:08:45 2015
@@ -18,11 +18,12 @@
  ****************************************************************/
 package org.apache.james.jmap.model;
 
+import org.apache.james.jmap.exceptions.MalformedContinuationTokenException;
+
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
-import org.apache.james.jmap.exceptions.MalformedContinuationTokenException;
 
-@JsonDeserialize(builder=AccessTokenRequest.Builder.class)
+@JsonDeserialize(builder = AccessTokenRequest.Builder.class)
 public class AccessTokenRequest {
 
     public static final String UNIQUE_JSON_PATH = "/token";

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/DefaultZonedDateTimeProvider.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/DefaultZonedDateTimeProvider.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/DefaultZonedDateTimeProvider.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/DefaultZonedDateTimeProvider.java
 Fri Dec 11 10:08:45 2015
@@ -25,7 +25,7 @@ import java.time.ZonedDateTime;
 public class DefaultZonedDateTimeProvider implements ZonedDateTimeProvider {
 
     @Override
-    public ZonedDateTime provide() {
+    public ZonedDateTime get() {
         return ZonedDateTime.now(ZoneOffset.UTC);
     }
 }

Modified: 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/ZonedDateTimeProvider.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/ZonedDateTimeProvider.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/ZonedDateTimeProvider.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/ZonedDateTimeProvider.java
 Fri Dec 11 10:08:45 2015
@@ -21,8 +21,8 @@ package org.apache.james.jmap.utils;
 
 import java.time.ZonedDateTime;
 
-public interface ZonedDateTimeProvider {
+import javax.inject.Provider;
 
-    ZonedDateTime provide();
+public interface ZonedDateTimeProvider extends Provider<ZonedDateTime> {
 
 }

Modified: 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
 Fri Dec 11 10:08:45 2015
@@ -18,11 +18,11 @@
  ****************************************************************/
 package org.apache.james.jmap;
 
-import static org.assertj.core.api.Assertions.assertThat;
 import static com.jayway.restassured.RestAssured.given;
 import static com.jayway.restassured.RestAssured.with;
 import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.Matchers.isA;
 import static org.mockito.Mockito.mock;
@@ -38,7 +38,6 @@ import javax.servlet.Filter;
 import org.apache.james.http.jetty.Configuration;
 import org.apache.james.http.jetty.JettyHttpServer;
 import org.apache.james.jmap.api.AccessTokenManager;
-import org.apache.james.jmap.api.ContinuationTokenManager;
 import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.crypto.AccessTokenManagerImpl;
 import org.apache.james.jmap.crypto.JamesSignatureHandlerProvider;
@@ -65,9 +64,9 @@ public class JMAPAuthenticationTest {
     private JettyHttpServer server;
 
     private UsersRepository mockedUsersRepository;
-    private ContinuationTokenManager continuationTokenManager;
     private ZonedDateTimeProvider mockedZonedDateTimeProvider;
     private AccessTokenManager accessTokenManager;
+    private SignedContinuationTokenManager continuationTokenManager;
 
     @Before
     public void setup() throws Exception {
@@ -96,7 +95,7 @@ public class JMAPAuthenticationTest {
         RestAssured.port = server.getPort();
         RestAssured.config = 
newConfig().encoderConfig(encoderConfig().defaultContentCharset(Charsets.UTF_8));
     }
-
+    
     @After
     public void teardown() throws Exception {
         server.stop();
@@ -180,7 +179,7 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void mustReturnJsonResponse() throws Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         given()
@@ -196,7 +195,7 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void methodShouldContainPasswordWhenValidResquest() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         given()
@@ -212,7 +211,7 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void mustReturnContinuationTokenWhenValidResquest() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         given()
@@ -228,7 +227,7 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void mustReturnAuthenticationFailedWhenBadPassword() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
@@ -249,7 +248,7 @@ public class JMAPAuthenticationTest {
         
         when(mockedUsersRepository.test("[email protected]", "password"))
             .thenReturn(true);
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         given()
@@ -264,14 +263,14 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void 
mustReturnRestartAuthenticationWhenContinuationTokenIsExpired() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
         
         when(mockedUsersRepository.test("[email protected]", "password"))
             .thenReturn(true);
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(afterExpirationDate);
 
         given()
@@ -286,7 +285,7 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void mustReturnAuthenticationFailedWhenUsersRepositoryException() 
throws Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
@@ -306,14 +305,14 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void mustReturnCreatedWhenGoodPassword() throws Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
 
         when(mockedUsersRepository.test("[email protected]", "password"))
             .thenReturn(true);
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(newDate);
 
         given()
@@ -328,14 +327,14 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void mustSendJsonContainingAccessTokenWhenGoodPassword() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
 
         when(mockedUsersRepository.test("[email protected]", "password"))
             .thenReturn(true);
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(newDate);
 
         given()
@@ -381,14 +380,14 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void getMustReturnEndpointsWhenCorrectAuthentication() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
     
         when(mockedUsersRepository.test("[email protected]", "password"))
             .thenReturn(true);
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(newDate);
     
         String accessToken = fromGoodAccessTokenRequest(continuationToken);
@@ -443,14 +442,14 @@ public class JMAPAuthenticationTest {
 
     @Test
     public void deleteMustInvalidAuthorizationOnCorrectAuthorization() throws 
Exception {
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(oldDate);
 
         String continuationToken = fromGoodContinuationTokenRequest();
     
         when(mockedUsersRepository.test("[email protected]", "password"))
             .thenReturn(true);
-        when(mockedZonedDateTimeProvider.provide())
+        when(mockedZonedDateTimeProvider.get())
             .thenReturn(newDate);
     
         String accessToken = fromGoodAccessTokenRequest(continuationToken);

Modified: 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/AccessTokenManagerImplTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/AccessTokenManagerImplTest.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/AccessTokenManagerImplTest.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/AccessTokenManagerImplTest.java
 Fri Dec 11 10:08:45 2015
@@ -38,7 +38,7 @@ public class AccessTokenManagerImplTest
         accessTokenRepository = new MemoryAccessTokenRepository(100);
         accessTokenManager = new AccessTokenManagerImpl(accessTokenRepository);
     }
-    
+
     @Test(expected=NullPointerException.class)
     public void grantShouldThrowOnNullUsername() throws Exception {
         accessTokenManager.grantAccessToken(null);

Modified: 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java?rev=1719323&r1=1719322&r2=1719323&view=diff
==============================================================================
--- 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
 (original)
+++ 
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
 Fri Dec 11 10:08:45 2015
@@ -19,10 +19,12 @@
 
 package org.apache.james.jmap.crypto;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import static org.assertj.core.api.Assertions.assertThat;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
 
 import 
org.apache.james.jmap.api.ContinuationTokenManager.ContinuationTokenStatus;
 import org.apache.james.jmap.model.ContinuationToken;
@@ -30,9 +32,6 @@ import org.apache.james.jmap.utils.Zoned
 import org.junit.Before;
 import org.junit.Test;
 
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-
 public class SignedContinuationTokenManagerTest {
 
     private static final String EXPIRATION_DATE_STRING = 
"2011-12-03T10:15:30+01:00";
@@ -56,7 +55,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void isValidShouldRecognizeValidTokens() throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         assertThat(
             toKenManager.isValid(
                 toKenManager.generateToken("user")))
@@ -65,7 +64,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void isValidShouldRecognizeTokenWhereUsernameIsModified() throws 
Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
         ContinuationToken pirateContinuationToken = new 
ContinuationToken("pirate",
             continuationToken.getExpirationDate(),
@@ -75,7 +74,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void isValidShouldRecognizeTokenWhereExpirationDateIsModified() 
throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
         ContinuationToken pirateContinuationToken = new 
ContinuationToken(continuationToken.getUsername(),
             continuationToken.getExpirationDate().plusHours(1),
@@ -85,7 +84,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void isValidShouldRecognizeTokenWhereSignatureIsModified() throws 
Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
         ContinuationToken pirateContinuationToken = new 
ContinuationToken(continuationToken.getUsername(),
             continuationToken.getExpirationDate(),
@@ -95,15 +94,15 @@ public class SignedContinuationTokenMana
 
     @Test
     public void isValidShouldReturnFalseWhenTokenIsOutdated() throws Exception 
{
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE.plusHours(1));
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> 
DATE.plusHours(1));
         assertThat(toKenManager.isValid(continuationToken)).isFalse();
     }
 
     @Test
     public void isValidShouldReturnFalseOnNonValidSignatures() throws 
Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken pirateContinuationToken = new 
ContinuationToken("user", DATE.plusMinutes(15), "fake");
         assertThat(toKenManager.isValid(pirateContinuationToken)).isFalse();
     }
@@ -115,7 +114,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void getValidityShouldRecognizeValidTokens() throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         assertThat(
             toKenManager.getValidity(
                 toKenManager.generateToken("user")))
@@ -124,7 +123,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void getValidityShouldRecognizeTokenWhereUsernameIsModified() 
throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
         ContinuationToken pirateContinuationToken = new 
ContinuationToken("pirate",
             continuationToken.getExpirationDate(),
@@ -134,7 +133,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void getValidityhouldRecognizeTokenWhereExpirationDateIsModified() 
throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
         ContinuationToken pirateContinuationToken = new 
ContinuationToken(continuationToken.getUsername(),
             continuationToken.getExpirationDate().plusHours(1),
@@ -144,7 +143,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void getValidityShouldRecognizeTokenWhereSignatureIsModified() 
throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
         ContinuationToken pirateContinuationToken = new 
ContinuationToken(continuationToken.getUsername(),
             continuationToken.getExpirationDate(),
@@ -154,15 +153,15 @@ public class SignedContinuationTokenMana
 
     @Test
     public void getValidityShouldReturnFalseWhenTokenIsOutdated() throws 
Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken continuationToken = 
toKenManager.generateToken("user");
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE.plusHours(1));
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> 
DATE.plusHours(1));
         
assertThat(toKenManager.getValidity(continuationToken)).isEqualTo(ContinuationTokenStatus.EXPIRED);
     }
 
     @Test
     public void getValidityShouldReturnFalseOnNonValidSignatures() throws 
Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         ContinuationToken pirateContinuationToken = new 
ContinuationToken("user", DATE.plusMinutes(15), "fake");
         
assertThat(toKenManager.getValidity(pirateContinuationToken)).isEqualTo(ContinuationTokenStatus.INVALID);
     }
@@ -174,7 +173,7 @@ public class SignedContinuationTokenMana
 
     @Test
     public void generateTokenShouldHaveTheRightOutPut() throws Exception {
-        when(zonedDateTimeProvider.provide()).thenAnswer(invocationOnMock -> 
DATE);
+        when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
         assertThat(toKenManager.generateToken("user").serialize())
             
.isEqualTo("user_2011-12-03T10:30:30+01:00_eOvOqTmV3dPrhIkbuQSj2sno3YJMxWl6J1sH1JhwYcaNgMX9twm98/WSF9uyDkvJgvBxFokDr53AbxQ3DsJysB2dAzCC0tUM4u8ZMvl/hQrFXhVCdpVMyHRvixKCxnHsVXAr9g3WMn2vbIVq5i3HPgA6/p9FB1+N4WA06B8ueoCrdxT2w1ITEm8p+QZvje3n1F344SgrqgIYqvt0yUvzxnB24f3ccjAKidlBj4wZkcXgUTMbZ7MdnCbDGbp10+tgJqxiv1S0rXZMeJLJ+vBt5TyqEhsJUmUQ84qctlB4yR5FS+ncbAOyZAxs2dWsHqiQjedb3IR77N7CASzqO2mmVw==");
     }




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to