You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2013/10/30 16:43:28 UTC
git commit: fix for JCLOUDS-360
Updated Branches:
refs/heads/1.6.x 1d551e91d -> 265240074
fix for JCLOUDS-360
replace platform-dependent assumption that nanosecond resolution
ticker uses epoch 1970 as origin with guaranteed behaviour at
millisecond-level resolution of System.currentTimeMillis
Contributed by Alex Heneveld
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/commit/26524007
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/tree/26524007
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/diff/26524007
Branch: refs/heads/1.6.x
Commit: 26524007424be02ed129578b24e7d55bfb89ab70
Parents: 1d551e9
Author: Andrew Bayer <an...@gmail.com>
Authored: Wed Oct 30 11:42:27 2013 -0400
Committer: Andrew Bayer <an...@gmail.com>
Committed: Wed Oct 30 11:42:27 2013 -0400
----------------------------------------------------------------------
.../internal/BaseGoogleComputeEngineExpectTest.java | 14 +++++---------
.../oauth/v2/functions/BuildTokenRequest.java | 15 +++++++++------
2 files changed, 14 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/26524007/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
index bb2eec1..1c360f2 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
@@ -53,13 +53,14 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.io.Payload;
import org.jclouds.oauth.v2.OAuthConstants;
+import org.jclouds.oauth.v2.config.OAuthProperties;
import org.jclouds.rest.internal.BaseRestApiExpectTest;
import org.jclouds.ssh.SshKeys;
import org.jclouds.util.Strings2;
import com.google.common.base.Joiner;
import com.google.common.base.Supplier;
-import com.google.common.base.Ticker;
+import com.google.common.base.Suppliers;
import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.TypeLiteral;
@@ -101,13 +102,8 @@ public class BaseGoogleComputeEngineExpectTest<T> extends BaseRestApiExpectTest<
return new Module() {
@Override
public void configure(Binder binder) {
- // predictable time
- binder.bind(Ticker.class).toInstance(new Ticker() {
- @Override
- public long read() {
- return 0;
- }
- });
+ // Predicatable time
+ binder.bind(new TypeLiteral<Supplier<Long>>() {}).toInstance(Suppliers.ofInstance(0L));
try {
KeyFactory keyfactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyfactory.generatePrivate(privateKeySpec(newStringPayload
@@ -149,7 +145,7 @@ public class BaseGoogleComputeEngineExpectTest<T> extends BaseRestApiExpectTest<
protected Properties setupProperties() {
Properties props = super.setupProperties();
// use no sig algorithm for expect tests (means no credential is required either)
- props.put("jclouds.oauth.signature-or-mac-algorithm", OAuthConstants.NO_ALGORITHM);
+ props.put(OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM, OAuthConstants.NO_ALGORITHM);
return props;
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/26524007/oauth/src/main/java/org/jclouds/oauth/v2/functions/BuildTokenRequest.java
----------------------------------------------------------------------
diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/functions/BuildTokenRequest.java b/oauth/src/main/java/org/jclouds/oauth/v2/functions/BuildTokenRequest.java
index d10b9a9..1984028 100644
--- a/oauth/src/main/java/org/jclouds/oauth/v2/functions/BuildTokenRequest.java
+++ b/oauth/src/main/java/org/jclouds/oauth/v2/functions/BuildTokenRequest.java
@@ -23,7 +23,6 @@ import static org.jclouds.oauth.v2.config.OAuthProperties.SCOPES;
import static org.jclouds.oauth.v2.config.OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM;
import java.util.Map;
-import java.util.concurrent.TimeUnit;
import javax.inject.Singleton;
@@ -39,7 +38,6 @@ import org.jclouds.rest.internal.GeneratedHttpRequest;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Supplier;
-import com.google.common.base.Ticker;
import com.google.common.collect.ImmutableMap;
import com.google.common.reflect.Invokable;
import com.google.inject.Inject;
@@ -71,10 +69,15 @@ public class BuildTokenRequest implements Function<GeneratedHttpRequest, TokenRe
@Named(SCOPES)
protected String globalScopes = null;
+ // injectable so expect tests can override with a predictable value
@Inject(optional = true)
- public Ticker ticker = Ticker.systemTicker();
-
-
+ protected Supplier<Long> timeSourceMillisSinceEpoch = new Supplier<Long>() {
+ @Override
+ public Long get() {
+ return System.currentTimeMillis();
+ }
+ };
+
@Inject
public BuildTokenRequest(@Named(AUDIENCE) String assertionTargetDescription,
@Named(SIGNATURE_OR_MAC_ALGORITHM) String signatureAlgorithm,
@@ -89,7 +92,7 @@ public class BuildTokenRequest implements Function<GeneratedHttpRequest, TokenRe
@Override
public TokenRequest apply(GeneratedHttpRequest request) {
- long now = TimeUnit.SECONDS.convert(ticker.read(), TimeUnit.NANOSECONDS);
+ long now = timeSourceMillisSinceEpoch.get() / 1000;
// fetch the token
Header header = new Header.Builder()