You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dm...@apache.org on 2019/01/15 15:39:09 UTC

[camel] branch master updated: CAMEL-13062: olingo2 component serviceUri not set

This is an automated email from the ASF dual-hosted git repository.

dmvolod pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 4ac1882  CAMEL-13062: olingo2 component serviceUri not set
4ac1882 is described below

commit 4ac1882ad7982da2632accd6ca2661a686e899bd
Author: Dmitry Volodin <dm...@gmail.com>
AuthorDate: Tue Jan 15 18:38:06 2019 +0300

    CAMEL-13062: olingo2 component serviceUri not set
---
 .../component/olingo2/api/impl/Olingo2AppImpl.java |  2 +-
 .../camel/component/olingo2/Olingo2Endpoint.java   |  2 +
 .../olingo2/AbstractOlingo2TestSupport.java        |  2 +-
 .../component/olingo2/Olingo2ComponentTest.java    | 32 ++++----
 .../camel/component/olingo2/Olingo2RouteTest.java  | 88 ++++++++++++++++++++++
 5 files changed, 108 insertions(+), 18 deletions(-)

diff --git a/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java b/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
index adf7d99..43a18fa 100644
--- a/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
+++ b/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
@@ -174,7 +174,7 @@ public final class Olingo2AppImpl implements Olingo2App {
     @Override
     public void setServiceUri(String serviceUri) {
         if (serviceUri == null || serviceUri.isEmpty()) {
-            throw new IllegalArgumentException("serviceUri");
+            throw new IllegalArgumentException("serviceUri is not set");
         }
         this.serviceUri = serviceUri.endsWith(SEPARATOR) ? serviceUri.substring(0, serviceUri.length() - 1)
             : serviceUri;
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
index e980b89..753acd7 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
@@ -43,6 +43,7 @@ public class Olingo2Endpoint extends AbstractApiEndpoint<Olingo2ApiName, Olingo2
 
     protected static final String RESOURCE_PATH_PROPERTY = "resourcePath";
     protected static final String RESPONSE_HANDLER_PROPERTY = "responseHandler";
+    protected static final String SERVICE_URI_PROPERTY = "serviceUri";
 
     private static final String KEY_PREDICATE_PROPERTY = "keyPredicate";
     private static final String QUERY_PARAMS_PROPERTY = "queryParams";
@@ -74,6 +75,7 @@ public class Olingo2Endpoint extends AbstractApiEndpoint<Olingo2ApiName, Olingo2
         // avoid adding edm as queryParam
         endpointPropertyNames.add(EDM_PROPERTY);
         endpointPropertyNames.add(ENDPOINT_HTTP_HEADERS_PROPERTY);
+        endpointPropertyNames.add(SERVICE_URI_PROPERTY);
     }
 
     public Producer createProducer() throws Exception {
diff --git a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2TestSupport.java b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2TestSupport.java
index 876db96..48c49db 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2TestSupport.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2TestSupport.java
@@ -23,8 +23,8 @@ import java.util.Properties;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
-import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.test.junit4.CamelTestSupport;
 
 /**
  * Abstract base class for Olingo Integration tests generated by Camel API component maven plugin.
diff --git a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
index beb12c1..a1b27fa 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
@@ -94,7 +94,7 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         final Map<String, Object> headers = new HashMap<>();
 
         // read ServiceDocument
-        final ServiceDocument document = requestBodyAndHeaders("direct://READSERVICEDOC", null, headers);
+        final ServiceDocument document = requestBodyAndHeaders("direct:READSERVICEDOC", null, headers);
         assertNotNull(document);
         assertFalse("ServiceDocument entity sets", document.getEntitySetsInfo().isEmpty());
         LOG.info("Service document has {} entity sets", document.getEntitySetsInfo().size());
@@ -105,7 +105,7 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         headers.put("CamelOlingo2.queryParams", queryParams);
 
         // read ODataFeed
-        final ODataFeed manufacturers = requestBodyAndHeaders("direct://READFEED", null, headers);
+        final ODataFeed manufacturers = requestBodyAndHeaders("direct:READFEED", null, headers);
         assertNotNull(manufacturers);
         final List<ODataEntry> manufacturersEntries = manufacturers.getEntries();
         assertFalse("Manufacturers empty entries", manufacturersEntries.isEmpty());
@@ -114,7 +114,7 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         // read ODataEntry
         headers.clear();
         headers.put(Olingo2Constants.PROPERTY_PREFIX + "keyPredicate", "'1'");
-        final ODataEntry manufacturer = requestBodyAndHeaders("direct://READENTRY", null, headers);
+        final ODataEntry manufacturer = requestBodyAndHeaders("direct:READENTRY", null, headers);
         assertNotNull(manufacturer);
         final Map<String, Object> properties = manufacturer.getProperties();
         assertEquals("Manufacturer Id", "1", properties.get(ID_PROPERTY));
@@ -126,7 +126,7 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         final Map<String, Object> data = getEntityData();
         Map<String, Object> address;
 
-        final ODataEntry manufacturer = requestBody("direct://CREATE", data);
+        final ODataEntry manufacturer = requestBody("direct:CREATE", data);
         assertNotNull("Created Manufacturer", manufacturer);
         final Map<String, Object> properties = manufacturer.getProperties();
         assertEquals("Created Manufacturer Id", "123", properties.get(ID_PROPERTY));
@@ -137,13 +137,13 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         address = (Map<String, Object>)data.get("Address");
         address.put("Street", "Main Street");
 
-        HttpStatusCodes status = requestBody("direct://UPDATE", data);
+        HttpStatusCodes status = requestBody("direct:UPDATE", data);
         assertNotNull("Update status", status);
         assertEquals("Update status", HttpStatusCodes.NO_CONTENT.getStatusCode(), status.getStatusCode());
         LOG.info("Update status: {}", status);
 
         // delete
-        status = requestBody("direct://DELETE", null);
+        status = requestBody("direct:DELETE", null);
         assertNotNull("Delete status", status);
         assertEquals("Delete status", HttpStatusCodes.NO_CONTENT.getStatusCode(), status.getStatusCode());
         LOG.info("Delete status: {}", status);
@@ -205,7 +205,7 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         batchParts.add(Olingo2BatchQueryRequest.resourcePath(TEST_CREATE_MANUFACTURER).build());
 
         // execute batch request
-        final List<Olingo2BatchResponse> responseParts = requestBody("direct://BATCH", batchParts);
+        final List<Olingo2BatchResponse> responseParts = requestBody("direct:BATCH", batchParts);
         assertNotNull("Batch response", responseParts);
         assertEquals("Batch responses expected", 9, responseParts.size());
 
@@ -252,39 +252,39 @@ public class Olingo2ComponentTest extends AbstractOlingo2TestSupport {
         return new RouteBuilder() {
             public void configure() {
                 // test routes for read
-                from("direct://READSERVICEDOC")
+                from("direct:READSERVICEDOC")
                     .to("olingo2://read/");
 
-                from("direct://READFEED")
+                from("direct:READFEED")
                     .to("olingo2://read/Manufacturers?$orderBy=Name%20asc");
 
-                from("direct://READENTRY")
+                from("direct:READENTRY")
                     .to("olingo2://read/DefaultContainer.Manufacturers");
 
                 // test route for create
-                from("direct://CREATE")
+                from("direct:CREATE")
                     .to("olingo2://create/Manufacturers");
 
                 // test route for update
-                from("direct://UPDATE")
+                from("direct:UPDATE")
                     .to("olingo2://update/Manufacturers('123')");
 
                 // test route for delete
-                from("direct://DELETE")
+                from("direct:DELETE")
                     .to("olingo2://delete/Manufacturers('123')");
 
 /*
                 // test route for merge
-                from("direct://MERGE")
+                from("direct:MERGE")
                     .to("olingo2://merge");
 
                 // test route for patch
-                from("direct://PATCH")
+                from("direct:PATCH")
                     .to("olingo2://patch");
 */
 
                 // test route for batch
-                from("direct://BATCH")
+                from("direct:BATCH")
                     .to("olingo2://batch");
 
             }
diff --git a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2RouteTest.java b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2RouteTest.java
new file mode 100644
index 0000000..5af29fa
--- /dev/null
+++ b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2RouteTest.java
@@ -0,0 +1,88 @@
+/**
+ * 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.camel.component.olingo2;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.CamelExecutionException;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.olingo2.api.Olingo2App;
+import org.apache.camel.component.olingo2.internal.Olingo2Constants;
+import org.apache.camel.test.AvailablePortFinder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.olingo.odata2.api.ep.entry.ODataEntry;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class Olingo2RouteTest extends CamelTestSupport {
+    private static final int PORT = AvailablePortFinder.getNextAvailable();
+    private static final String TEST_SERVICE_URL = "http://localhost:" + PORT + "/MyFormula.svc";
+    private static final String ID_PROPERTY = "Id";
+    
+    private static Olingo2App olingoApp;
+    private static Olingo2SampleServer server;
+
+    @BeforeClass
+    public static void beforeClass() throws Exception {
+        startServers(PORT);
+        Olingo2SampleServer.generateSampleData(TEST_SERVICE_URL);
+    }
+
+    @AfterClass
+    public static void afterClass() throws Exception {
+        if (olingoApp != null) {
+            olingoApp.close();
+        }
+        if (server != null) {
+            server.stop();
+            server.destroy();
+        }
+    }
+    
+    protected static void startServers(int port) throws Exception {
+        server = new Olingo2SampleServer(port, "/olingo2_ref");
+        server.start();
+    }
+
+    @SuppressWarnings("unchecked")
+    protected <T> T requestBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers)
+        throws CamelExecutionException {
+        return (T) template().requestBodyAndHeaders(endpointUri, body, headers);
+    }
+    
+    @Test
+    public void testRead() throws Exception {
+        final Map<String, Object> headers = new HashMap<>();
+        
+        headers.put(Olingo2Constants.PROPERTY_PREFIX + "keyPredicate", "'1'");
+        final ODataEntry manufacturer = requestBodyAndHeaders("direct:READENTRY", null, headers);
+        assertNotNull(manufacturer);
+        final Map<String, Object> properties = manufacturer.getProperties();
+        assertEquals("Manufacturer Id", "1", properties.get(ID_PROPERTY));
+    }
+    
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:READENTRY").to("olingo2://read/DefaultContainer.Manufacturers?serviceUri=" + TEST_SERVICE_URL);
+            }
+        };
+    }
+}