jclouds-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Édouard sur Smart&Soft <edou...@smartnsoft.com>
Subject Re: Any support for running jclouds on the Google App Engine?
Date Wed, 04 Mar 2015 06:58:52 GMT
Thank you Ignassi for your detailed answer.

I'm pretty sure that if jclouds is supported on GAE, you will have many
newcomers. Sure, I will open a JIRA ticket, but can you confirm that this
requires me to create an account, first ?

Thank you for your support. Regards,
Édouard

2015-03-03 23:05 GMT+01:00 Ignasi Barrera <nacx@apache.org>:

> Hi Édouard,
>
> We have the GAE driver that used to work, but that was more about
> configuring a single-threaded executor and some other http related stuff.
>
> As far as I know, the GAE support has been untested for several releases,
> as I believe the community is not using it, but it is good to have a real
> use case!
>
> I haven't seen reflection restrictions before, but I'm not a GAE user, so
> I don't know the details and its limitations. Looking at the stacktrace,
> it seems that the failure happens when trying to build the deserialization
> context. jclouds uses Gson to deserialize the API responses, and it uses
> reflection to make sure it will be able to build the corresponding Java
> object, by making all the constructors accessible.
>
> This seems to be not allowed in GAE, and we could try to configure the GAE
> module to "disable" that reflection, and use only the visible constructor.
> However, this has been out there since 2013 and I'm not sure if working
> only with the visible constructors would be compatible with the current
> domain model of all providers.
>
> In any case, it is worth giving it a try. Mind opening a JIRA [1] issue so
> we can properly track this?
>
> Thanks!
>
> I.
>
> [1] https://issues.apache.org/jira/browse/jclouds
>
> On 2 March 2015 at 22:16, Édouard Mercier sur Gmail <
> the.edouard.mercier@gmail.com> wrote:
>
>> Hello.
>>
>> I've been digging a long time, both using the v1.8.1 and the
>> v2.0.0-SNAPSHOT, and found no way to jclouds BlobStore to work on the
>> current GAE Java flavor v1.9.18.
>>
>> When attempting to use the "BlobStore.putBlob()" method, I get this
>>
>> """
>> java.lang.SecurityException: java.lang.IllegalAccessException:
>> Reflection is not allowed on java.lang.String(int,int,char[])
>> at com.google.appengine.runtime.Request.process-
>> 6c82fef5146f94d9(Request.java)
>> at java.lang.reflect.Constructor.setAccessible(Constructor.java:40)
>> at org.jclouds.reflect.Reflection2$1.load(Reflection2.java:156)
>> at org.jclouds.reflect.Reflection2$1.load(Reflection2.java:152)
>> at com.google.common.cache.LocalCache$LoadingValueReference.
>> loadFuture(LocalCache.java:3527)
>> at com.google.common.cache.LocalCache$Segment.loadSync(
>> LocalCache.java:2319)
>> at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.
>> java:2282)
>> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
>> at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
>> at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
>> at com.google.common.cache.LocalCache$LocalLoadingCache.
>> get(LocalCache.java:4824)
>> at org.jclouds.reflect.Reflection2.get(Reflection2.java:345)
>> at org.jclouds.reflect.Reflection2.constructors(Reflection2.java:99)
>> at org.jclouds.json.internal.NamingStrategies$
>> AnnotationConstructorNamingStrategy.getDeserializer(
>> NamingStrategies.java:248)
>> at org.jclouds.json.internal.DeserializationConstructorAndR
>> eflectiveTypeAdapterFactory.create(DeserializationConstructorAndR
>> eflectiveTypeAdapterFactory.java:122)
>> at com.google.gson.Gson.getAdapter(Gson.java:358)
>> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.
>> getFieldAdapter(ReflectiveTypeAdapterFactory.java:109)
>> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access$100(
>> ReflectiveTypeAdapterFactory.java:46)
>> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(
>> ReflectiveTypeAdapterFactory.java:84)
>> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.
>> createBoundField(ReflectiveTypeAdapterFactory.java:83)
>> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.
>> getBoundFields(ReflectiveTypeAdapterFactory.java:129)
>> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(
>> ReflectiveTypeAdapterFactory.java:75)
>> at com.google.gson.Gson.getAdapter(Gson.java:358)
>> at com.google.gson.Gson.toJson(Gson.java:587)
>> at com.google.gson.Gson.toJson(Gson.java:574)
>> at com.google.gson.Gson.toJson(Gson.java:529)
>> at com.google.gson.Gson.toJson(Gson.java:509)
>> at org.jclouds.json.internal.GsonWrapper.toJson(GsonWrapper.java:52)
>> at org.jclouds.googlecloudstorage.binders.MultipartUploadBinder.
>> bindToRequest(MultipartUploadBinder.java:53)
>> at org.jclouds.rest.internal.RestAnnotationProcessor.apply(
>> RestAnnotationProcessor.java:324)
>> at org.jclouds.rest.internal.RestAnnotationProcessor.apply(
>> RestAnnotationProcessor.java:129)
>> at org.jclouds.rest.internal.InvokeHttpMethod.toCommand(
>> InvokeHttpMethod.java:188)
>> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(
>> InvokeHttpMethod.java:84)
>> at org.jclouds.rest.internal.InvokeHttpMethod.apply(
>> InvokeHttpMethod.java:73)
>> at org.jclouds.rest.internal.InvokeHttpMethod.apply(
>> InvokeHttpMethod.java:44)
>> at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.
>> handleInvocation(FunctionalReflection.java:117)
>> at com.google.common.reflect.AbstractInvocationHandler.invoke(
>> AbstractInvocationHandler.java:87)
>> at com.sun.proxy.$Proxy62.multipartUpload(Unknown Source)
>> at org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore.
>> putBlob(GoogleCloudStorageBlobStore.java:224)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(
>> NativeMethodAccessorImpl.java:57)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:45)
>> at com.google.inject.internal.DelegatingInvocationHandler.invoke(
>> DelegatingInvocationHandler.java:37)
>> at com.sun.proxy.$Proxy60.putBlob(Unknown Source)
>> """
>>
>> exception (this one was caused using jclouds v2.0.0-SNAPSHOT).
>>
>> I've seen that there has been initiatives to have jclouds working on the
>> GAE in the past, but would like to know if this is still on the roadmap.
>> Any help which shows how to have jclouds BlobStore working on GAE is
>> very welcome.
>>
>> Thank you for your support. Regards,
>> Édouard
>>
>
>

Mime
View raw message