Yes, an account is required. I'd open the issue myself but if you don't
mind creating an account you'll be able to describe it better and provide
better context.

Thanks!
El 04/03/2015 07:59, "Édouard sur Smart&Soft" <[email protected]>
escribió:

> 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 <[email protected]>:
>
>> 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 <
>> [email protected]> 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
>>>
>>
>>
>

Reply via email to