mirror of
https://github.com/apache/jclouds.git
synced 2025-02-06 10:09:35 +00:00
JCLOUDS-750 At the cost of fiddling with type hierarchy adapters, remove lots of junk with google auto.
This commit is contained in:
parent
a2dd4532c5
commit
ac07295bb6
@ -31,8 +31,8 @@ import org.jclouds.blobstore.BlobStoreContext;
|
||||
import org.jclouds.googlecloudstorage.blobstore.config.GCSBlobStoreContextModule;
|
||||
import org.jclouds.googlecloudstorage.config.GoogleCloudStorageHttpApiModule;
|
||||
import org.jclouds.googlecloudstorage.config.GoogleCloudStorageParserModule;
|
||||
import org.jclouds.googlecloudstorage.config.OAuthModuleWithoutTypeAdapters;
|
||||
import org.jclouds.oauth.v2.config.OAuthAuthenticationModule;
|
||||
import org.jclouds.oauth.v2.config.OAuthModule;
|
||||
import org.jclouds.rest.internal.BaseHttpApiMetadata;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
@ -77,8 +77,8 @@ public class GoogleCloudStorageApiMetadata extends BaseHttpApiMetadata<GoogleClo
|
||||
.view(typeToken(BlobStoreContext.class))
|
||||
.defaultModules(
|
||||
ImmutableSet.<Class<? extends Module>> of(GoogleCloudStorageParserModule.class,
|
||||
OAuthAuthenticationModule.class, OAuthModuleWithoutTypeAdapters.class,
|
||||
GoogleCloudStorageHttpApiModule.class, GCSBlobStoreContextModule.class));
|
||||
OAuthAuthenticationModule.class, OAuthModule.class,
|
||||
GoogleCloudStorageHttpApiModule.class, GCSBlobStoreContextModule.class));
|
||||
|
||||
}
|
||||
|
||||
|
@ -18,42 +18,39 @@ package org.jclouds.googlecloudstorage.config;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
|
||||
import org.jclouds.json.config.GsonModule.DateAdapter;
|
||||
import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
|
||||
import org.jclouds.oauth.v2.domain.ClaimSet;
|
||||
import org.jclouds.oauth.v2.domain.Header;
|
||||
import org.jclouds.oauth.v2.json.ClaimSetTypeAdapter;
|
||||
import org.jclouds.oauth.v2.json.HeaderTypeAdapter;
|
||||
import org.jclouds.json.config.GsonModule;
|
||||
import org.jclouds.oauth.v2.config.OAuthParserModule;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import com.google.gson.TypeAdapterFactory;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Provides;
|
||||
|
||||
public class GoogleCloudStorageParserModule extends AbstractModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(DateAdapter.class).to(Iso8601DateAdapter.class);
|
||||
@Override protected void configure() {
|
||||
bind(GsonModule.DateAdapter.class).to(GsonModule.Iso8601DateAdapter.class);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
public Map<Type, Object> provideCustomAdapterBindings() {
|
||||
return new ImmutableMap.Builder<Type, Object>().put(Header.class, new HeaderTypeAdapter())
|
||||
.put(ClaimSet.class, new ClaimSetTypeAdapter())
|
||||
@Provides @Singleton public Set<TypeAdapterFactory> typeAdapterFactories() {
|
||||
return new OAuthParserModule().typeAdapterFactories();
|
||||
}
|
||||
|
||||
@Provides @Singleton public Map<Type, Object> typeAdapters() {
|
||||
return new ImmutableMap.Builder<Type, Object>()
|
||||
.put(BucketTemplate.class, new BucketTemplateTypeAdapter())
|
||||
.build();
|
||||
}
|
||||
|
||||
@Singleton
|
||||
private static class BucketTemplateTypeAdapter implements JsonSerializer<BucketTemplate> {
|
||||
|
||||
@Override
|
||||
@ -87,7 +84,5 @@ public class GoogleCloudStorageParserModule extends AbstractModule {
|
||||
.storageClass(template.getStorageClass());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
* 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.jclouds.googlecloudstorage.config;
|
||||
|
||||
import org.jclouds.oauth.v2.config.CredentialType;
|
||||
import org.jclouds.oauth.v2.config.OAuthModule;
|
||||
import org.jclouds.oauth.v2.domain.OAuthCredentials;
|
||||
import org.jclouds.oauth.v2.domain.Token;
|
||||
import org.jclouds.oauth.v2.domain.TokenRequest;
|
||||
import org.jclouds.oauth.v2.functions.BuildTokenRequest;
|
||||
import org.jclouds.oauth.v2.functions.FetchToken;
|
||||
import org.jclouds.oauth.v2.functions.OAuthCredentialsSupplier;
|
||||
import org.jclouds.oauth.v2.functions.SignOrProduceMacForToken;
|
||||
import org.jclouds.rest.internal.GeneratedHttpRequest;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.inject.TypeLiteral;
|
||||
|
||||
/**
|
||||
* Overrides OAuthModule leaving TypeAdapters bindings out.
|
||||
*/
|
||||
public class OAuthModuleWithoutTypeAdapters extends OAuthModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(new TypeLiteral<Function<byte[], byte[]>>() {
|
||||
}).to(SignOrProduceMacForToken.class);
|
||||
bind(new TypeLiteral<Supplier<OAuthCredentials>>() {
|
||||
}).to(OAuthCredentialsSupplier.class);
|
||||
bind(new TypeLiteral<Function<GeneratedHttpRequest, TokenRequest>>() {
|
||||
}).to(BuildTokenRequest.class);
|
||||
bind(new TypeLiteral<Function<TokenRequest, Token>>() {
|
||||
}).to(FetchToken.class);
|
||||
bind(CredentialType.class).toProvider(OAuthModule.CredentialTypeFromPropertyOrDefault.class);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user