Understood: here is the ticket:
https://issues.apache.org/jira/browse/JCLOUDS-836. Hope that someone will
put his/her eyes shortly, because jclouds would really save us much code ;)
Regards, Édouard

2015-03-04 9:08 GMT+01:00 Ignasi Barrera <[email protected]>:

> 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