jclouds-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ignasi Barrera <n...@apache.org>
Subject Re: Any support for running jclouds on the Google App Engine?
Date Wed, 04 Mar 2015 08:08:51 GMT
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" <edouard@smartnsoft.com>
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 <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