diff --git a/.project b/.project
index 66d8c31..316d756 100644
--- a/.project
+++ b/.project
@@ -16,12 +16,12 @@
- org.eclipse.m2e.core.maven2Builder
+ org.eclipse.wst.validation.validationbuilder
- org.eclipse.wst.validation.validationbuilder
+ org.eclipse.m2e.core.maven2Builder
diff --git a/src/main/java/org/gcube/common/storagehub/client/MyInputStreamProvider.java b/src/main/java/org/gcube/common/storagehub/client/MyInputStreamProvider.java
new file mode 100644
index 0000000..4124452
--- /dev/null
+++ b/src/main/java/org/gcube/common/storagehub/client/MyInputStreamProvider.java
@@ -0,0 +1,75 @@
+package org.gcube.common.storagehub.client;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.inject.Singleton;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+
+import org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider;
+import org.glassfish.jersey.message.internal.ReaderInterceptorExecutor;
+
+@Produces({"application/octet-stream", "*/*"})
+@Consumes({"application/octet-stream", "*/*"})
+@Singleton
+public final class MyInputStreamProvider extends AbstractMessageReaderWriterProvider {
+
+
+
+
+ @Override
+ public boolean isReadable(Class> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
+ return InputStream.class == type;
+ }
+
+ @Override
+ public InputStream readFrom(
+ Class type,
+ Type genericType,
+ Annotation annotations[],
+ MediaType mediaType,
+ MultivaluedMap httpHeaders,
+ InputStream entityStream) throws IOException {
+ return ReaderInterceptorExecutor.closeableInputStream(entityStream);
+ }
+
+ @Override
+ public boolean isWriteable(Class> type, Type genericType, Annotation annotations[], MediaType mediaType) {
+ return InputStream.class.isAssignableFrom(type);
+ }
+
+ @Override
+ public long getSize(InputStream t, Class> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
+ if (t instanceof ByteArrayInputStream) {
+ return ((ByteArrayInputStream) t).available();
+ } else {
+ return -1;
+ }
+ }
+
+ @Override
+ public void writeTo(
+ InputStream t,
+ Class> type,
+ Type genericType,
+ Annotation annotations[],
+ MediaType mediaType,
+ MultivaluedMap httpHeaders,
+ OutputStream entityStream) throws IOException {
+ try {
+ writeTo(t, entityStream);
+ }catch (IOException e) {
+
+ } finally {
+ t.close();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/common/storagehub/client/plugins/ItemManagerPlugin.java b/src/main/java/org/gcube/common/storagehub/client/plugins/ItemManagerPlugin.java
index 940d16e..708bfa2 100644
--- a/src/main/java/org/gcube/common/storagehub/client/plugins/ItemManagerPlugin.java
+++ b/src/main/java/org/gcube/common/storagehub/client/plugins/ItemManagerPlugin.java
@@ -10,6 +10,7 @@ import org.gcube.common.clients.delegates.ProxyDelegate;
import org.gcube.common.gxrest.request.GXWebTargetAdapterRequest;
import org.gcube.common.gxrest.response.entity.SerializableErrorEntityTextReader;
import org.gcube.common.storagehub.client.Constants;
+import org.gcube.common.storagehub.client.MyInputStreamProvider;
import org.gcube.common.storagehub.client.proxies.DefaultItemManager;
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
import org.w3c.dom.Node;
@@ -42,6 +43,7 @@ public class ItemManagerPlugin extends AbstractPlugin entity = Entity.entity(multipart, MediaType.MULTIPART_FORM_DATA);
+
+ response = myManager.post(entity);
+
if (response.isErrorResponse()) {
- if (response.hasException())
+ if (response.hasException()) {
+ System.out.println(response.getException().getStackTrace());
throw response.getException();
- else
+ }else
throw new BackendGenericError();
}