olingo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From m...@apache.org
Subject [14/39] olingo-odata4 git commit: [OLINGO-832] Removed actual not supported/wanted methods
Date Fri, 04 Mar 2016 20:36:57 GMT
[OLINGO-832] Removed actual not supported/wanted methods


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/5174f708
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/5174f708
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/5174f708

Branch: refs/heads/OLINGO-856_ODataHandlerInAPI
Commit: 5174f708973e9c296db3867d03ea7f731f0a93d7
Parents: dc2c972
Author: Michael Bolz <michael.bolz@sap.com>
Authored: Wed Feb 10 06:29:38 2016 +0100
Committer: Michael Bolz <michael.bolz@sap.com>
Committed: Wed Feb 10 06:38:25 2016 +0100

----------------------------------------------------------------------
 .../olingo/commons/api/data/EntityIterator.java | 10 ++--
 .../api/ex/ODataNotSupportedException.java      | 56 +++++++++++++++++++
 .../apache/olingo/server/api/ODataContent.java  |  7 +--
 .../EntityCollectionSerializerOptions.java      | 26 +++++++++
 .../server/api/serializer/SerializerResult.java |  6 --
 .../api/serializer/SerializerStreamResult.java  |  1 +
 .../olingo/server/core/ODataBasicContent.java   | 59 --------------------
 .../server/core/ODataHttpHandlerImpl.java       |  6 +-
 .../server/core/ODataWritableContent.java       | 32 ++++-------
 .../core/serializer/SerializerResultImpl.java   | 24 +-------
 .../processor/TechnicalEntityProcessor.java     |  9 ++-
 11 files changed, 113 insertions(+), 123 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java
index 697676e..8afd1fe 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java
@@ -18,6 +18,7 @@
  */
 package org.apache.olingo.commons.api.data;
 
+import org.apache.olingo.commons.api.ex.ODataNotSupportedException;
 import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
@@ -35,7 +36,7 @@ public abstract class EntityIterator extends AbstractEntityCollection implements
   @Override
   public void remove() {
     //"Remove is not supported for iteration over Entities."
-    throw new NotImplementedException();
+    throw new ODataNotSupportedException("Entity Iterator does not support remove()");
   }
 
   @Override
@@ -44,15 +45,14 @@ public abstract class EntityIterator extends AbstractEntityCollection
implements
   }
 
   public Integer getCount() {
-    throw new ODataRuntimeException("getCount() not supported for " + getClass().getSimpleName());
+    throw new ODataNotSupportedException("Entity Iterator does not support getCount()");
   }
 
   public URI getNext() {
-    throw new ODataRuntimeException("getNext() not supported for " + getClass().getSimpleName());
-
+    throw new ODataNotSupportedException("Entity Iterator does not support getNext()");
   }
 
   public URI getDeltaLink() {
-    throw new ODataRuntimeException("getDeltaLink() not supported for " + getClass().getSimpleName());
+    throw new ODataNotSupportedException("Entity Iterator does not support getDeltaLink()");
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ex/ODataNotSupportedException.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ex/ODataNotSupportedException.java
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ex/ODataNotSupportedException.java
new file mode 100644
index 0000000..714c523
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ex/ODataNotSupportedException.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.ex;
+
+/**
+ * Core runtime exception for OData.
+ */
+public class ODataNotSupportedException extends ODataRuntimeException {
+
+  private static final long serialVersionUID = 42L;
+
+  /**
+   * Create with <code>message</code>.
+   *
+   * @param msg message text for exception
+   */
+  public ODataNotSupportedException(final String msg) {
+    super(msg);
+  }
+
+  /**
+   * Create with <code>message</code> for and <code>cause</code>
of exception.
+   *
+   * @param msg message text for exception
+   * @param cause cause of exception
+   */
+  public ODataNotSupportedException(final String msg, final Exception cause) {
+    super(msg, cause);
+  }
+
+  /**
+   * Create with <code>cause</code> of exception.
+   *
+   * @param cause cause of exception
+   */
+  public ODataNotSupportedException(final Exception cause) {
+    super(cause);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataContent.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataContent.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataContent.java
index a3147f6..d7e7ec3 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataContent.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataContent.java
@@ -18,15 +18,12 @@
  */
 package org.apache.olingo.server.api;
 
+import java.io.OutputStream;
 import java.nio.channels.ReadableByteChannel;
 import java.nio.channels.WritableByteChannel;
 
 public interface ODataContent {
-  ReadableByteChannel getChannel();
-
   void write(WritableByteChannel channel);
 
-  void write(WritableByteChannel channel, WriteContentErrorCallback callback);
-
-  boolean isWriteSupported();
+  void write(OutputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
index 611485f..6f4ed2d 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
@@ -19,6 +19,7 @@
 package org.apache.olingo.server.api.serializer;
 
 import org.apache.olingo.commons.api.data.ContextURL;
+import org.apache.olingo.server.api.WriteContentErrorCallback;
 import org.apache.olingo.server.api.uri.queryoption.CountOption;
 import org.apache.olingo.server.api.uri.queryoption.ExpandOption;
 import org.apache.olingo.server.api.uri.queryoption.SelectOption;
@@ -32,6 +33,7 @@ public class EntityCollectionSerializerOptions {
   private SelectOption select;
   private boolean writeOnlyReferences;
   private String id;
+  private WriteContentErrorCallback writeContentErrorCallback;
 
   /** Gets the {@link ContextURL}. */
   public ContextURL getContextURL() {
@@ -63,6 +65,18 @@ public class EntityCollectionSerializerOptions {
     return id;
   }
 
+  /**
+   * Gets the callback which is used in case of an exception during
+   * write of the content (in case the content will be written/streamed
+   * in the future)
+   * @return callback which is used in case of an exception during
+   * write of the content
+   *
+   */
+  public WriteContentErrorCallback getWriteContentErrorCallback() {
+    return writeContentErrorCallback;
+  }
+
   /** Initializes the options builder. */
   public static Builder with() {
     return new Builder();
@@ -113,6 +127,18 @@ public class EntityCollectionSerializerOptions {
       return this;
     }
 
+    /**
+     * Set the callback which is used in case of an exception during
+     * write of the content.
+     *
+     * @param writeContentErrorCallback the callback
+     * @return the builder
+     */
+    public Builder writeContentErrorCallback(WriteContentErrorCallback writeContentErrorCallback)
{
+      options.writeContentErrorCallback = writeContentErrorCallback;
+      return this;
+    }
+
     /** Builds the OData serializer options. */
     public EntityCollectionSerializerOptions build() {
       return options;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerResult.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerResult.java
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerResult.java
index c3206d6..85c625d 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerResult.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerResult.java
@@ -18,11 +18,7 @@
  */
 package org.apache.olingo.server.api.serializer;
 
-import org.apache.olingo.server.api.ODataContent;
-
 import java.io.InputStream;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
 
 /**
  * Result type for {@link ODataSerializer} methods
@@ -33,6 +29,4 @@ public interface SerializerResult {
    * @return serialized content
    */
   InputStream getContent();
-
-  ODataContent getODataContent();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerStreamResult.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerStreamResult.java
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerStreamResult.java
index c0dbafa..c19c270 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerStreamResult.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerStreamResult.java
@@ -22,6 +22,7 @@ import org.apache.olingo.server.api.ODataContent;
 
 /**
  * Result type for {@link ODataSerializer} methods
+ * which supports stream/write in the future
  */
 public interface SerializerStreamResult {
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataBasicContent.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataBasicContent.java
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataBasicContent.java
deleted file mode 100644
index 03328f4..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataBasicContent.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.core;
-
-import org.apache.olingo.server.api.ODataContent;
-import org.apache.olingo.server.api.WriteContentErrorCallback;
-
-import java.io.InputStream;
-import java.nio.channels.Channels;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
-
-public class ODataBasicContent implements ODataContent {
-  private final ReadableByteChannel channel;
-
-  public ODataBasicContent(ReadableByteChannel channel) {
-    this.channel = channel;
-  }
-
-  public ODataBasicContent(InputStream stream) {
-    this(Channels.newChannel(stream));
-  }
-
-  @Override
-  public ReadableByteChannel getChannel() {
-    return channel;
-  }
-
-  @Override
-  public void write(WritableByteChannel channel) {
-
-  }
-
-  @Override
-  public void write(WritableByteChannel channel, WriteContentErrorCallback callback) {
-
-  }
-
-  @Override
-  public boolean isWriteSupported() {
-    return false;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index dfd4a75..1e8947a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -161,11 +161,7 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
   static void writeContent(final ODataResponse odataResponse, final HttpServletResponse servletResponse)
{
     try {
       ODataContent res = odataResponse.getODataContent();
-      if(res.isWriteSupported()) {
-        res.write(Channels.newChannel(servletResponse.getOutputStream()));
-      } else {
-        copyContent(res.getChannel(), servletResponse);
-      }
+      res.write(Channels.newChannel(servletResponse.getOutputStream()));
     } catch (IOException e) {
       throw new ODataRuntimeException("Error on reading request content", e);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataWritableContent.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataWritableContent.java
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataWritableContent.java
index fc45639..ba7025c 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataWritableContent.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataWritableContent.java
@@ -18,15 +18,20 @@
  */
 package org.apache.olingo.server.core;
 
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.WritableByteChannel;
+import java.nio.charset.Charset;
+
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityIterator;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.server.api.ODataContent;
 import org.apache.olingo.server.api.ServiceMetadata;
-import org.apache.olingo.server.api.WriteContentErrorCallback;
 import org.apache.olingo.server.api.serializer.EntitySerializerOptions;
 import org.apache.olingo.server.api.serializer.SerializerException;
 import org.apache.olingo.server.api.serializer.SerializerStreamResult;
@@ -34,13 +39,8 @@ import org.apache.olingo.server.core.serializer.SerializerStreamResultImpl;
 import org.apache.olingo.server.core.serializer.json.ODataJsonSerializer;
 import org.apache.olingo.server.core.serializer.utils.CircleStreamBuffer;
 
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.nio.channels.Channels;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
-import java.nio.charset.Charset;
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonGenerator;
 
 public class ODataWritableContent implements ODataContent {
   private StreamChannel channel;
@@ -184,17 +184,10 @@ public class ODataWritableContent implements ODataContent {
     }
   }
 
-//  @Override
-//  public InputStream getContent() {
-//    return Channels.newInputStream(this.channel);
-//  }
-
-  @Override
   public ReadableByteChannel getChannel() {
     return this.channel;
   }
 
-  @Override
   public boolean isWriteSupported() {
     return true;
   }
@@ -212,9 +205,8 @@ public class ODataWritableContent implements ODataContent {
   }
 
   @Override
-  public void write(WritableByteChannel channel, WriteContentErrorCallback callback) {
-    // TODO: implement error handling
-    throw new ODataRuntimeException("error handling not yet supported");
+  public void write(OutputStream stream) {
+    write(Channels.newChannel(stream));
   }
 
   private ODataWritableContent(StreamChannel channel) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java
index 8c69f18..7c7de2f 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java
@@ -18,34 +18,19 @@
  */
 package org.apache.olingo.server.core.serializer;
 
+import java.io.InputStream;
+
 import org.apache.olingo.server.api.ODataContent;
 import org.apache.olingo.server.api.serializer.SerializerResult;
-import org.apache.olingo.server.api.serializer.SerializerStreamResult;
-import org.apache.olingo.server.core.ODataBasicContent;
-import org.apache.olingo.server.core.serializer.utils.ResultHelper;
-
-import java.io.InputStream;
-import java.nio.channels.Channels;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
 
 public class SerializerResultImpl implements SerializerResult {
   private InputStream content;
-  private ODataContent oDataContent;
 
   @Override
   public InputStream getContent() {
     return content;
   }
 
-  @Override
-  public ODataContent getODataContent() {
-    if(oDataContent == null && content != null) {
-      return new ODataBasicContent(content);
-    }
-    return oDataContent;
-  }
-
   //  @Override
 //  public ReadableByteChannel getChannel() {
 //    return Channels.newChannel(getContent());
@@ -73,11 +58,6 @@ public class SerializerResultImpl implements SerializerResult {
       return this;
     }
 
-    public SerializerResultBuilder content(final ODataContent input) {
-      result.oDataContent = input;
-      return this;
-    }
-
     public SerializerResult build() {
       return result;
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5174f708/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
index 9241860..1afc288 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
@@ -18,6 +18,11 @@
  */
 package org.apache.olingo.server.tecsvc.processor;
 
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.WritableByteChannel;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
@@ -44,6 +49,7 @@ import org.apache.olingo.server.api.ODataLibraryException;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
 import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.WriteContentErrorCallback;
 import org.apache.olingo.server.api.deserializer.DeserializerResult;
 import org.apache.olingo.server.api.deserializer.ODataDeserializer;
 import org.apache.olingo.server.api.prefer.Preferences.Return;
@@ -531,7 +537,7 @@ public class TechnicalEntityProcessor extends TechnicalProcessor
     if(isReference) {
       final SerializerResult serializerResult =
           serializeReferenceCollection(entitySetSerialization, edmEntitySet, requestedContentType,
countOption);
-      response.setODataContent(serializerResult.getODataContent());
+      response.setContent(serializerResult.getContent());
     } else {
       final SerializerStreamResult serializerResult =
           serializeEntityStreamCollectionFixed(request,
@@ -540,6 +546,7 @@ public class TechnicalEntityProcessor extends TechnicalProcessor
 
       response.setODataContent(serializerResult.getODataContent());
     }
+
     //
     response.setStatusCode(HttpStatusCode.OK.getStatusCode());
     response.setHeader(HttpHeader.CONTENT_TYPE, requestedContentType.toContentTypeString());


Mime
View raw message