Compare commits
merge into: ganesh:master
ganesh:AdityaS9
ganesh:Dev
ganesh:Saraphin_Dev
ganesh:jaydeep
ganesh:mac
ganesh:master
ganesh:pranavE
ganesh:ptest
ganesh:salman
pull from: ganesh:mac
ganesh:AdityaS9
ganesh:Dev
ganesh:Saraphin_Dev
ganesh:jaydeep
ganesh:mac
ganesh:master
ganesh:pranavE
ganesh:ptest
ganesh:salman
5 Commits
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
20ac0e444a |
local
|
4 years ago |
|
|
750e0c40bd |
local
|
4 years ago |
|
|
8b3c154a93 |
updated projects
|
4 years ago |
|
|
d0c9ab3f31 |
example1forcxfservice
|
4 years ago |
|
|
b1b056aaa2 |
test
|
4 years ago |
71 changed files with 2830 additions and 1 deletions
Split View
Diff Options
-
38camel-cxf-maven-example-master/.classpath
-
2camel-cxf-maven-example-master/.gitignore
-
23camel-cxf-maven-example-master/.project
-
8camel-cxf-maven-example-master/.settings/org.eclipse.jdt.core.prefs
-
4camel-cxf-maven-example-master/.settings/org.eclipse.m2e.core.prefs
-
11camel-cxf-maven-example-master/README.md
-
174camel-cxf-maven-example-master/pom.xml
-
12camel-cxf-maven-example-master/src/main/java/com/steve/research/CamelMain.java
-
41camel-cxf-maven-example-master/src/main/java/com/steve/research/MyRoute.java
-
43camel-cxf-maven-example-master/src/main/java/com/steve/research/ProductServiceImpl.java
-
30camel-cxf-maven-example-master/src/main/resources/example-camel-context.xml
-
65camel-cxf-maven-example-master/src/main/resources/wsdl/HelloService.wsdl
-
63camel-cxf-maven-example-master/src/main/resources/wsdl/ProductService.wsdl
-
30camel-cxf-maven-example-master/src/test/java/com/steve/research/MyRouteTest.java
-
BINcamel-cxf-maven-example-master/target/camel-cxf-maven-example-1.0-SNAPSHOT.jar
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/HelloWorld.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/HelloWorldService.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/ObjectFactory.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/Product.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/ProductRequest.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/ProductResponse.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/ProductService.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/SayHello.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/SayHelloResponse.class
-
BINcamel-cxf-maven-example-master/target/classes/com/moodykettle/webservice/helloworld/package-info.class
-
BINcamel-cxf-maven-example-master/target/classes/com/steve/research/CamelMain.class
-
BINcamel-cxf-maven-example-master/target/classes/com/steve/research/MyRoute.class
-
BINcamel-cxf-maven-example-master/target/classes/com/steve/research/ProductServiceImpl$Product.class
-
BINcamel-cxf-maven-example-master/target/classes/com/steve/research/ProductServiceImpl.class
-
30camel-cxf-maven-example-master/target/classes/example-camel-context.xml
-
65camel-cxf-maven-example-master/target/classes/wsdl/HelloService.wsdl
-
63camel-cxf-maven-example-master/target/classes/wsdl/ProductService.wsdl
-
BINcamel-cxf-maven-example-master/target/cxf-codegen-plugin-markers/.03BA8A379A1C11045D1B73515CFEEC0594F0D3C6
-
BINcamel-cxf-maven-example-master/target/cxf-codegen-plugin-markers/.6916CA2A5478EADC9F34E4CDF39BE8BFB10429B0
-
5camel-cxf-maven-example-master/target/maven-archiver/pom.properties
-
11camel-cxf-maven-example-master/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
-
13camel-cxf-maven-example-master/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
-
0camel-cxf-maven-example-master/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
-
1camel-cxf-maven-example-master/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
-
65camel-cxf-maven-example-master/target/surefire-reports/TEST-com.steve.research.MyRouteTest.xml
-
4camel-cxf-maven-example-master/target/surefire-reports/com.steve.research.MyRouteTest.txt
-
BINcamel-cxf-maven-example-master/target/test-classes/com/steve/research/MyRouteTest.class
-
1jboss-fuse-cxf-rest
-
19jboss-fuse-cxf-rest-local/.gitignore
-
107jboss-fuse-cxf-rest-local/README.md
-
109jboss-fuse-cxf-rest-local/configuration/settings.xml
-
363jboss-fuse-cxf-rest-local/pom.xml
-
52jboss-fuse-cxf-rest-local/src/main/java/io/fabric8/quickstarts/rest/Customer.java
-
224jboss-fuse-cxf-rest-local/src/main/java/io/fabric8/quickstarts/rest/CustomerService.java
-
113jboss-fuse-cxf-rest-local/src/main/java/io/fabric8/quickstarts/rest/Order.java
-
52jboss-fuse-cxf-rest-local/src/main/java/io/fabric8/quickstarts/rest/Product.java
-
18jboss-fuse-cxf-rest-local/src/main/java/io/fabric8/quickstarts/rest/package-info.java
-
75jboss-fuse-cxf-rest-local/src/main/resources/OSGI-INF/blueprint/blueprint.xml
-
43jboss-fuse-cxf-rest-local/src/main/resources/features.xml
-
1jboss-fuse-cxf-rest-local/src/test/resources/add_customer.json
-
3jboss-fuse-cxf-rest-local/src/test/resources/add_customer.xml
-
35jboss-fuse-cxf-rest-local/src/test/resources/log4j.properties
-
4jboss-fuse-cxf-rest-local/src/test/resources/update_customer.xml
-
1spring-boot-camel-xml
-
17spring-boot-camel-xml-local/.gitignore
-
201spring-boot-camel-xml-local/LICENSE
-
202spring-boot-camel-xml-local/LICENSE.md
-
47spring-boot-camel-xml-local/README.md
-
199spring-boot-camel-xml-local/pom.xml
-
15spring-boot-camel-xml-local/src/main/fabric8/deployment.yml
-
35spring-boot-camel-xml-local/src/main/java/io/fabric8/quickstarts/camel/Application.java
-
38spring-boot-camel-xml-local/src/main/java/io/fabric8/quickstarts/camel/MyTransformer.java
-
17spring-boot-camel-xml-local/src/main/resources/application.properties
-
17spring-boot-camel-xml-local/src/main/resources/logback.xml
-
20spring-boot-camel-xml-local/src/main/resources/spring/camel-context.xml
-
2test.txt
@ -0,0 +1,38 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<classpath> |
|||
<classpathentry kind="src" output="target/classes" path="src/main/java"> |
|||
<attributes> |
|||
<attribute name="optional" value="true"/> |
|||
<attribute name="maven.pomderived" value="true"/> |
|||
</attributes> |
|||
</classpathentry> |
|||
<classpathentry kind="src" output="target/classes" path="src/main/generated"> |
|||
<attributes> |
|||
<attribute name="optional" value="true"/> |
|||
<attribute name="maven.pomderived" value="true"/> |
|||
</attributes> |
|||
</classpathentry> |
|||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> |
|||
<attributes> |
|||
<attribute name="maven.pomderived" value="true"/> |
|||
</attributes> |
|||
</classpathentry> |
|||
<classpathentry kind="src" output="target/test-classes" path="src/test/java"> |
|||
<attributes> |
|||
<attribute name="optional" value="true"/> |
|||
<attribute name="maven.pomderived" value="true"/> |
|||
<attribute name="test" value="true"/> |
|||
</attributes> |
|||
</classpathentry> |
|||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"> |
|||
<attributes> |
|||
<attribute name="maven.pomderived" value="true"/> |
|||
</attributes> |
|||
</classpathentry> |
|||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> |
|||
<attributes> |
|||
<attribute name="maven.pomderived" value="true"/> |
|||
</attributes> |
|||
</classpathentry> |
|||
<classpathentry kind="output" path="target/classes"/> |
|||
</classpath> |
|||
@ -0,0 +1,2 @@ |
|||
.idea |
|||
src/main/generated |
|||
@ -0,0 +1,23 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<projectDescription> |
|||
<name>camel-cxf-maven-example</name> |
|||
<comment></comment> |
|||
<projects> |
|||
</projects> |
|||
<buildSpec> |
|||
<buildCommand> |
|||
<name>org.eclipse.jdt.core.javabuilder</name> |
|||
<arguments> |
|||
</arguments> |
|||
</buildCommand> |
|||
<buildCommand> |
|||
<name>org.eclipse.m2e.core.maven2Builder</name> |
|||
<arguments> |
|||
</arguments> |
|||
</buildCommand> |
|||
</buildSpec> |
|||
<natures> |
|||
<nature>org.eclipse.jdt.core.javanature</nature> |
|||
<nature>org.eclipse.m2e.core.maven2Nature</nature> |
|||
</natures> |
|||
</projectDescription> |
|||
@ -0,0 +1,8 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 |
|||
org.eclipse.jdt.core.compiler.compliance=1.5 |
|||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled |
|||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning |
|||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore |
|||
org.eclipse.jdt.core.compiler.release=disabled |
|||
org.eclipse.jdt.core.compiler.source=1.5 |
|||
@ -0,0 +1,4 @@ |
|||
activeProfiles= |
|||
eclipse.preferences.version=1 |
|||
resolveWorkspaceProjects=true |
|||
version=1 |
|||
@ -0,0 +1,11 @@ |
|||
## Camel / CXF Maven Example |
|||
|
|||
This is a Hello World project using Apache Camel and Apache CXF |
|||
|
|||
A simple web service, HelloService.wsdl is exposed. |
|||
|
|||
Build and run the main class. |
|||
|
|||
The url is http://localhost:8080/HelloService?wsdl |
|||
|
|||
Test via SOAP-UI. |
|||
@ -0,0 +1,174 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<groupId>com.steve.research</groupId> |
|||
<artifactId>camel-cxf-maven-example</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
|
|||
<properties> |
|||
<!-- <camel.version>2.14.1</camel.version> --> |
|||
<!-- <cxf.version>3.0.2</cxf.version> --> |
|||
<!-- <spring.version>3.1.0.RELEASE</spring.version> --> |
|||
<log4j.version>1.2.12</log4j.version> |
|||
<slf4j.version>1.6.4</slf4j.version> |
|||
<camel.version>2.17.0.redhat-630187</camel.version> |
|||
<cxf.version>3.1.5.redhat-630187</cxf.version> |
|||
<activemq.camel.version>5.11.0.redhat-630187</activemq.camel.version> |
|||
<spring.version>3.2.16.RELEASE</spring.version> |
|||
<cxf.codegen.version>3.1.5.redhat-630187</cxf.codegen.version> |
|||
</properties> |
|||
|
|||
<dependencies> |
|||
<!-- camel --> |
|||
<dependency> |
|||
<groupId>org.apache.camel</groupId> |
|||
<artifactId>camel-core</artifactId> |
|||
<version>${camel.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.apache.camel</groupId> |
|||
<artifactId>camel-cxf</artifactId> |
|||
<version>${camel.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-rt-transports-http-jetty</artifactId> |
|||
<version>${cxf.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework</groupId> |
|||
<artifactId>spring-context</artifactId> |
|||
<version>${spring.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- logging --> |
|||
<dependency> |
|||
<groupId>org.slf4j</groupId> |
|||
<artifactId>slf4j-api</artifactId> |
|||
<version>${slf4j.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.slf4j</groupId> |
|||
<artifactId>slf4j-simple</artifactId> |
|||
<version>${slf4j.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- test --> |
|||
<dependency> |
|||
<groupId>org.apache.camel</groupId> |
|||
<artifactId>camel-test</artifactId> |
|||
<version>${camel.version}</version> |
|||
<scope>test</scope> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework</groupId> |
|||
<artifactId>spring-test</artifactId> |
|||
<version>${spring.version}</version> |
|||
<scope>test</scope> |
|||
</dependency> |
|||
</dependencies> |
|||
<repositories> |
|||
<repository> |
|||
<id>red-hat-ga</id> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
</repository> |
|||
</repositories> |
|||
|
|||
<pluginRepositories> |
|||
<pluginRepository> |
|||
<id>Fuse - repo</id> |
|||
<url>http://repo.fusesource.com/nexus/content/groups/public/</url> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>Apache Snapshot</id> |
|||
<url>http://repository.apache.org/snapshots/</url> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>central</id> |
|||
<name>Central Repository</name> |
|||
<url>https://repo.maven.apache.org/maven2</url> |
|||
<layout>default</layout> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>red-hat-ga</id> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</pluginRepository> |
|||
</pluginRepositories> |
|||
<build> |
|||
<defaultGoal>clean install</defaultGoal> |
|||
<plugins> |
|||
<plugin> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-codegen-plugin</artifactId> |
|||
<!-- <version>2.6.0.fuse-71-047</version> --> |
|||
<version>${cxf.codegen.version}</version> |
|||
<executions> |
|||
<execution> |
|||
<phase>generate-sources</phase> |
|||
<goals> |
|||
<goal>wsdl2java</goal> |
|||
</goals> |
|||
<configuration> |
|||
<sourceRoot>${basedir}/src/main/generated</sourceRoot> |
|||
<wsdlOptions> |
|||
<wsdlOption> |
|||
<wsdl>${basedir}/src/main/resources/wsdl/HelloService.wsdl</wsdl> |
|||
</wsdlOption> |
|||
</wsdlOptions> |
|||
</configuration> |
|||
</execution> |
|||
</executions> |
|||
</plugin> |
|||
<plugin> |
|||
<groupId>org.codehaus.mojo</groupId> |
|||
<artifactId>build-helper-maven-plugin</artifactId> |
|||
<version>1.7</version> |
|||
<executions> |
|||
<execution> |
|||
<id>test</id> |
|||
<phase>generate-sources</phase> |
|||
<goals> |
|||
<goal>add-source</goal> |
|||
</goals> |
|||
<configuration> |
|||
<sources> |
|||
<source>${basedir}/src/main/generated</source> |
|||
</sources> |
|||
</configuration> |
|||
</execution> |
|||
</executions> |
|||
</plugin> |
|||
<plugin> |
|||
<groupId>org.apache.maven.plugins</groupId> |
|||
<artifactId>maven-clean-plugin</artifactId> |
|||
<version>2.4.1</version> |
|||
<configuration> |
|||
<filesets> |
|||
<fileset> |
|||
<directory>${basedir}/src/main/generated</directory> |
|||
<includes> |
|||
<include>**/*</include> |
|||
</includes> |
|||
</fileset> |
|||
</filesets> |
|||
</configuration> |
|||
</plugin> |
|||
</plugins> |
|||
</build> |
|||
|
|||
</project> |
|||
@ -0,0 +1,12 @@ |
|||
package com.steve.research; |
|||
|
|||
import org.springframework.context.support.ClassPathXmlApplicationContext; |
|||
|
|||
public class CamelMain { |
|||
public static void main(String[] args) throws Exception { |
|||
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/example-camel-context.xml"); |
|||
context.start(); |
|||
context.registerShutdownHook(); |
|||
Thread.currentThread().join(); |
|||
} |
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
package com.steve.research; |
|||
|
|||
import org.apache.camel.builder.RouteBuilder; |
|||
|
|||
import com.moodykettle.webservice.helloworld.ProductResponse; |
|||
|
|||
public class MyRoute extends RouteBuilder { |
|||
private String webserviceEndpoint = "cxf:bean:helloService"; |
|||
private String productWebserviceEndpoint = "cxf:bean:productService?defaultOperationName=getProductDetails"; |
|||
|
|||
@Override |
|||
public void configure() throws Exception { |
|||
from("timer:foo?period=1s&repeatCount=1") |
|||
.log("Hello!!!") |
|||
; |
|||
|
|||
from(webserviceEndpoint) |
|||
.log("WebService opearation: ${header.operationName}") |
|||
.log("WebService body: ${body}") |
|||
.setBody(simple("Hello, ${body}")) |
|||
; |
|||
|
|||
ProductResponse response = new ProductResponse(); |
|||
response.setId("001"); |
|||
response.setDescription("Test"); |
|||
response.setPrice(101); |
|||
from(productWebserviceEndpoint) |
|||
.log("WebService opearation: ${header.operationName}") |
|||
.log("WebService body: ${body}") |
|||
.bean(ProductServiceImpl.class) |
|||
; |
|||
} |
|||
|
|||
public void setWebserviceEndpoint(String webserviceEndpoint) { |
|||
this.webserviceEndpoint = webserviceEndpoint; |
|||
} |
|||
|
|||
public void setProductWebserviceEndpoint(String w) { |
|||
this.productWebserviceEndpoint = w; |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
package com.steve.research; |
|||
|
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
import com.moodykettle.webservice.helloworld.ProductResponse; |
|||
|
|||
public class ProductServiceImpl { |
|||
public ProductResponse getProductDetails(com.moodykettle.webservice.helloworld.ProductRequest request) { |
|||
Product product = PRODUCT_DETAILS.get(request.getId()); |
|||
/*if (product == null) { |
|||
throw new ProductNotFoundException(request.getId()); |
|||
}*/ |
|||
|
|||
ProductResponse response = new ProductResponse(); |
|||
response.setId(product.id); |
|||
response.setDescription(product.description); |
|||
response.setPrice(product.price); |
|||
System.out.println("Coming HERE >>>>>>>>>>>>>>>>>>"); |
|||
return response; |
|||
} |
|||
|
|||
private static Map<String, Product> PRODUCT_DETAILS = new HashMap<String, Product>(); |
|||
|
|||
private static class Product { |
|||
private String id; |
|||
private String description; |
|||
private int price; |
|||
|
|||
Product(String id, String desc, int price) { |
|||
this.id = id; |
|||
this.description = desc; |
|||
this.price = price; |
|||
} |
|||
} |
|||
|
|||
static { |
|||
PRODUCT_DETAILS.put("P01", new Product("P01", "Laptop", 40000)); |
|||
PRODUCT_DETAILS.put("P02", new Product("P02", "Mobile", 14000)); |
|||
PRODUCT_DETAILS.put("P03", new Product("P03", "Tablet", 30000)); |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<beans xmlns="http://www.springframework.org/schema/beans" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" |
|||
xmlns:cxf="http://camel.apache.org/schema/cxf" xmlns:beans="http://www.springframework.org/schema/beans" |
|||
xsi:schemaLocation=" |
|||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
|||
http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd |
|||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> |
|||
|
|||
<import resource="classpath:META-INF/cxf/cxf.xml" /> |
|||
|
|||
<cxf:cxfEndpoint id="helloService" |
|||
address="http://localhost:8080/HelloService" serviceClass="com.moodykettle.webservice.helloworld.HelloWorld" |
|||
wsdlURL="wsdl/HelloService.wsdl"> |
|||
</cxf:cxfEndpoint> |
|||
|
|||
<cxf:cxfEndpoint id="productService" |
|||
address="http://localhost:8081/ProductService" serviceClass="com.moodykettle.webservice.helloworld.Product" |
|||
wsdlURL="wsdl/ProductService.wsdl"> |
|||
</cxf:cxfEndpoint> |
|||
|
|||
|
|||
|
|||
<beans:bean id="myRoute" class="com.steve.research.MyRoute"/> |
|||
|
|||
<camel:camelContext> |
|||
<camel:routeBuilder ref="myRoute"/> |
|||
</camel:camelContext> |
|||
|
|||
</beans> |
|||
@ -0,0 +1,65 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<wsdl:definitions xmlns:impl="http://helloworld.webservice.moodykettle.com" |
|||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" |
|||
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" |
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|||
targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
|
|||
<wsdl:types> |
|||
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
<element name="sayHello"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="name" type="xsd:string"/> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
<element name="sayHelloResponse"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="sayHelloReturn" type="xsd:string"/> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
</schema> |
|||
</wsdl:types> |
|||
|
|||
<wsdl:message name="sayHelloResponse"> |
|||
<wsdl:part element="impl:sayHelloResponse" name="parameters"> |
|||
</wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:message name="sayHelloRequest"> |
|||
<wsdl:part element="impl:sayHello" name="parameters"> |
|||
</wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:portType name="HelloWorld"> |
|||
<wsdl:operation name="sayHello"> |
|||
<wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"> |
|||
</wsdl:input> |
|||
<wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse"> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:portType> |
|||
|
|||
<wsdl:binding name="HelloWorldSoapBinding" type="impl:HelloWorld"> |
|||
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> |
|||
<wsdl:operation name="sayHello"> |
|||
<wsdlsoap:operation soapAction=""/> |
|||
<wsdl:input name="sayHelloRequest"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:input> |
|||
<wsdl:output name="sayHelloResponse"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:binding> |
|||
|
|||
<wsdl:service name="HelloWorldService"> |
|||
<wsdl:port binding="impl:HelloWorldSoapBinding" name="HelloWorld"> |
|||
<wsdlsoap:address location="http://localhost:8080/WebService/services/HelloWorld"/> |
|||
</wsdl:port> |
|||
</wsdl:service> |
|||
|
|||
</wsdl:definitions> |
|||
@ -0,0 +1,63 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<wsdl:definitions xmlns:impl="http://helloworld.webservice.moodykettle.com" |
|||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" |
|||
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" |
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|||
targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
|
|||
<wsdl:types> |
|||
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
<element name="productRequest"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="id" type="xsd:string" /> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
<element name="productResponse"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="id" type="xsd:string" /> |
|||
<element name="description" type="xsd:string" /> |
|||
<element name="price" type="xsd:int" /> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
</schema> |
|||
</wsdl:types> |
|||
|
|||
<wsdl:message name="getProductDetails"> |
|||
<wsdl:part element="impl:productRequest" name="parameters"> </wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:message name="getProductDetailsResponse"> |
|||
<wsdl:part element="impl:productResponse" name="parameters"> </wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:portType name="Product"> |
|||
<wsdl:operation name="getProductDetails"> |
|||
<wsdl:input message="impl:getProductDetails" name="getProductDetails"> </wsdl:input> |
|||
<wsdl:output message="impl:getProductDetailsResponse" name="getProductDetailsResponse"> </wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:portType> |
|||
|
|||
<wsdl:binding name="ProductServiceSoapBinding" type="impl:Product"> |
|||
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> |
|||
<wsdl:operation name="getProductDetails"> |
|||
<wsdlsoap:operation soapAction=""/> |
|||
<wsdl:input name="getProductDetails"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:input> |
|||
<wsdl:output name="getProductDetailsResponse"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:binding> |
|||
|
|||
<wsdl:service name="ProductService"> |
|||
<wsdl:port binding="impl:ProductServiceSoapBinding" name="ProductPort"> |
|||
<wsdlsoap:address location="http://localhost:8080/WebService/services/Product"/> |
|||
</wsdl:port> |
|||
</wsdl:service> |
|||
|
|||
</wsdl:definitions> |
|||
@ -0,0 +1,30 @@ |
|||
package com.steve.research; |
|||
|
|||
import org.apache.camel.Produce; |
|||
import org.apache.camel.ProducerTemplate; |
|||
import org.apache.camel.builder.RouteBuilder; |
|||
import org.apache.camel.test.junit4.CamelTestSupport; |
|||
import org.junit.Test; |
|||
|
|||
public class MyRouteTest extends CamelTestSupport { |
|||
|
|||
@Produce(uri = "direct:webservice") |
|||
ProducerTemplate webservice; |
|||
|
|||
@Produce(uri = "direct:webservice2") |
|||
ProducerTemplate webservice2; |
|||
|
|||
@Test |
|||
public void testFoo() throws InterruptedException { |
|||
Object result = webservice.requestBody("Dude"); |
|||
System.out.println("Result from web service call was: " + result); |
|||
} |
|||
|
|||
@Override |
|||
protected RouteBuilder createRouteBuilder() throws Exception { |
|||
MyRoute myRoute = new MyRoute(); |
|||
myRoute.setWebserviceEndpoint("direct:webservice"); |
|||
myRoute.setProductWebserviceEndpoint("direct:webservice2"); |
|||
return myRoute; |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<beans xmlns="http://www.springframework.org/schema/beans" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" |
|||
xmlns:cxf="http://camel.apache.org/schema/cxf" xmlns:beans="http://www.springframework.org/schema/beans" |
|||
xsi:schemaLocation=" |
|||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
|||
http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd |
|||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> |
|||
|
|||
<import resource="classpath:META-INF/cxf/cxf.xml" /> |
|||
|
|||
<cxf:cxfEndpoint id="helloService" |
|||
address="http://localhost:8080/HelloService" serviceClass="com.moodykettle.webservice.helloworld.HelloWorld" |
|||
wsdlURL="wsdl/HelloService.wsdl"> |
|||
</cxf:cxfEndpoint> |
|||
|
|||
<cxf:cxfEndpoint id="productService" |
|||
address="http://localhost:8081/ProductService" serviceClass="com.moodykettle.webservice.helloworld.Product" |
|||
wsdlURL="wsdl/ProductService.wsdl"> |
|||
</cxf:cxfEndpoint> |
|||
|
|||
|
|||
|
|||
<beans:bean id="myRoute" class="com.steve.research.MyRoute"/> |
|||
|
|||
<camel:camelContext> |
|||
<camel:routeBuilder ref="myRoute"/> |
|||
</camel:camelContext> |
|||
|
|||
</beans> |
|||
@ -0,0 +1,65 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<wsdl:definitions xmlns:impl="http://helloworld.webservice.moodykettle.com" |
|||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" |
|||
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" |
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|||
targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
|
|||
<wsdl:types> |
|||
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
<element name="sayHello"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="name" type="xsd:string"/> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
<element name="sayHelloResponse"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="sayHelloReturn" type="xsd:string"/> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
</schema> |
|||
</wsdl:types> |
|||
|
|||
<wsdl:message name="sayHelloResponse"> |
|||
<wsdl:part element="impl:sayHelloResponse" name="parameters"> |
|||
</wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:message name="sayHelloRequest"> |
|||
<wsdl:part element="impl:sayHello" name="parameters"> |
|||
</wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:portType name="HelloWorld"> |
|||
<wsdl:operation name="sayHello"> |
|||
<wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"> |
|||
</wsdl:input> |
|||
<wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse"> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:portType> |
|||
|
|||
<wsdl:binding name="HelloWorldSoapBinding" type="impl:HelloWorld"> |
|||
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> |
|||
<wsdl:operation name="sayHello"> |
|||
<wsdlsoap:operation soapAction=""/> |
|||
<wsdl:input name="sayHelloRequest"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:input> |
|||
<wsdl:output name="sayHelloResponse"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:binding> |
|||
|
|||
<wsdl:service name="HelloWorldService"> |
|||
<wsdl:port binding="impl:HelloWorldSoapBinding" name="HelloWorld"> |
|||
<wsdlsoap:address location="http://localhost:8080/WebService/services/HelloWorld"/> |
|||
</wsdl:port> |
|||
</wsdl:service> |
|||
|
|||
</wsdl:definitions> |
|||
@ -0,0 +1,63 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<wsdl:definitions xmlns:impl="http://helloworld.webservice.moodykettle.com" |
|||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" |
|||
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" |
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|||
targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
|
|||
<wsdl:types> |
|||
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://helloworld.webservice.moodykettle.com"> |
|||
<element name="productRequest"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="id" type="xsd:string" /> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
<element name="productResponse"> |
|||
<complexType> |
|||
<sequence> |
|||
<element name="id" type="xsd:string" /> |
|||
<element name="description" type="xsd:string" /> |
|||
<element name="price" type="xsd:int" /> |
|||
</sequence> |
|||
</complexType> |
|||
</element> |
|||
</schema> |
|||
</wsdl:types> |
|||
|
|||
<wsdl:message name="getProductDetails"> |
|||
<wsdl:part element="impl:productRequest" name="parameters"> </wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:message name="getProductDetailsResponse"> |
|||
<wsdl:part element="impl:productResponse" name="parameters"> </wsdl:part> |
|||
</wsdl:message> |
|||
|
|||
<wsdl:portType name="Product"> |
|||
<wsdl:operation name="getProductDetails"> |
|||
<wsdl:input message="impl:getProductDetails" name="getProductDetails"> </wsdl:input> |
|||
<wsdl:output message="impl:getProductDetailsResponse" name="getProductDetailsResponse"> </wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:portType> |
|||
|
|||
<wsdl:binding name="ProductServiceSoapBinding" type="impl:Product"> |
|||
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> |
|||
<wsdl:operation name="getProductDetails"> |
|||
<wsdlsoap:operation soapAction=""/> |
|||
<wsdl:input name="getProductDetails"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:input> |
|||
<wsdl:output name="getProductDetailsResponse"> |
|||
<wsdlsoap:body use="literal"/> |
|||
</wsdl:output> |
|||
</wsdl:operation> |
|||
</wsdl:binding> |
|||
|
|||
<wsdl:service name="ProductService"> |
|||
<wsdl:port binding="impl:ProductServiceSoapBinding" name="ProductPort"> |
|||
<wsdlsoap:address location="http://localhost:8080/WebService/services/Product"/> |
|||
</wsdl:port> |
|||
</wsdl:service> |
|||
|
|||
</wsdl:definitions> |
|||
@ -0,0 +1,5 @@ |
|||
#Generated by Maven |
|||
#Sat Mar 27 01:27:46 IST 2021 |
|||
version=1.0-SNAPSHOT |
|||
groupId=com.steve.research |
|||
artifactId=camel-cxf-maven-example |
|||
@ -0,0 +1,11 @@ |
|||
com\moodykettle\webservice\helloworld\HelloWorldService.class |
|||
com\moodykettle\webservice\helloworld\ProductService.class |
|||
com\moodykettle\webservice\helloworld\ProductRequest.class |
|||
com\moodykettle\webservice\helloworld\HelloWorld.class |
|||
com\moodykettle\webservice\helloworld\ProductResponse.class |
|||
com\steve\research\CamelMain.class |
|||
com\moodykettle\webservice\helloworld\ObjectFactory.class |
|||
com\moodykettle\webservice\helloworld\package-info.class |
|||
com\moodykettle\webservice\helloworld\Product.class |
|||
com\moodykettle\webservice\helloworld\SayHelloResponse.class |
|||
com\moodykettle\webservice\helloworld\SayHello.class |
|||
@ -0,0 +1,13 @@ |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\java\com\steve\research\CamelMain.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\SayHelloResponse.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\java\com\steve\research\MyRoute.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\ProductService.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\package-info.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\HelloWorldService.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\ObjectFactory.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\java\com\steve\research\ProductServiceImpl.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\Product.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\ProductResponse.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\ProductRequest.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\HelloWorld.java |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\main\generated\com\moodykettle\webservice\helloworld\SayHello.java |
|||
@ -0,0 +1 @@ |
|||
C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\src\test\java\com\steve\research\MyRouteTest.java |
|||
@ -0,0 +1,65 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<testsuite tests="1" failures="0" name="com.steve.research.MyRouteTest" time="0.485" errors="0" skipped="0"> |
|||
<properties> |
|||
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/> |
|||
<property name="sun.boot.library.path" value="C:\Java\jdk1.8.0_281\jre\bin"/> |
|||
<property name="java.vm.version" value="25.281-b09"/> |
|||
<property name="java.vm.vendor" value="Oracle Corporation"/> |
|||
<property name="maven.multiModuleProjectDirectory" value="C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master"/> |
|||
<property name="java.vendor.url" value="http://java.oracle.com/"/> |
|||
<property name="path.separator" value=";"/> |
|||
<property name="guice.disable.misplaced.annotation.check" value="true"/> |
|||
<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/> |
|||
<property name="file.encoding.pkg" value="sun.io"/> |
|||
<property name="user.script" value=""/> |
|||
<property name="user.country" value="IN"/> |
|||
<property name="sun.java.launcher" value="SUN_STANDARD"/> |
|||
<property name="sun.os.patch.level" value=""/> |
|||
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/> |
|||
<property name="user.dir" value="C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master"/> |
|||
<property name="java.runtime.version" value="1.8.0_281-b09"/> |
|||
<property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/> |
|||
<property name="java.endorsed.dirs" value="C:\Java\jdk1.8.0_281\jre\lib\endorsed"/> |
|||
<property name="os.arch" value="amd64"/> |
|||
<property name="java.io.tmpdir" value="C:\Users\macko\AppData\Local\Temp\"/> |
|||
<property name="line.separator" value=" |
|||
"/> |
|||
<property name="java.vm.specification.vendor" value="Oracle Corporation"/> |
|||
<property name="user.variant" value=""/> |
|||
<property name="os.name" value="Windows 10"/> |
|||
<property name="classworlds.conf" value="C:\Users\macko\eclipse-workspace-casestudy3\.metadata\.plugins\org.eclipse.m2e.launching\launches\m2conf2229280176160758005.tmp"/> |
|||
<property name="sun.jnu.encoding" value="Cp1252"/> |
|||
<property name="java.library.path" value="C:\Java\jdk1.8.0_281\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Users/macko/Downloads/eclipse-java-2020-12-R-win32-x86_64/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.1.v20201027-0507/jre/bin/server;C:/Users/macko/Downloads/eclipse-java-2020-12-R-win32-x86_64/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.1.v20201027-0507/jre/bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Users\macko\AppData\Local\Microsoft\WindowsApps;C:\Users\macko\.dotnet\tools;C:\Users\macko\Downloads\eclipse-java-2020-12-R-win32-x86_64\eclipse;;."/> |
|||
<property name="java.specification.name" value="Java Platform API Specification"/> |
|||
<property name="java.class.version" value="52.0"/> |
|||
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/> |
|||
<property name="os.version" value="10.0"/> |
|||
<property name="user.home" value="C:\Users\macko"/> |
|||
<property name="user.timezone" value="Asia/Calcutta"/> |
|||
<property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/> |
|||
<property name="java.specification.version" value="1.8"/> |
|||
<property name="file.encoding" value="Cp1252"/> |
|||
<property name="user.name" value="macko"/> |
|||
<property name="java.class.path" value="C:\Users\macko\Downloads\eclipse-java-2020-12-R-win32-x86_64\eclipse\plugins\org.eclipse.m2e.maven.runtime_1.16.0.20200610-1735\jars\plexus-classworlds-2.6.0.jar"/> |
|||
<property name="java.vm.specification.version" value="1.8"/> |
|||
<property name="sun.arch.data.model" value="64"/> |
|||
<property name="java.home" value="C:\Java\jdk1.8.0_281\jre"/> |
|||
<property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher -B install"/> |
|||
<property name="java.specification.vendor" value="Oracle Corporation"/> |
|||
<property name="user.language" value="en"/> |
|||
<property name="awt.toolkit" value="sun.awt.windows.WToolkit"/> |
|||
<property name="java.vm.info" value="mixed mode"/> |
|||
<property name="java.version" value="1.8.0_281"/> |
|||
<property name="java.ext.dirs" value="C:\Java\jdk1.8.0_281\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext"/> |
|||
<property name="sun.boot.class.path" value="C:\Java\jdk1.8.0_281\jre\lib\resources.jar;C:\Java\jdk1.8.0_281\jre\lib\rt.jar;C:\Java\jdk1.8.0_281\jre\lib\sunrsasign.jar;C:\Java\jdk1.8.0_281\jre\lib\jsse.jar;C:\Java\jdk1.8.0_281\jre\lib\jce.jar;C:\Java\jdk1.8.0_281\jre\lib\charsets.jar;C:\Java\jdk1.8.0_281\jre\lib\jfr.jar;C:\Java\jdk1.8.0_281\jre\classes"/> |
|||
<property name="java.vendor" value="Oracle Corporation"/> |
|||
<property name="maven.home" value="C:\Users\macko\Desktop\gyno-fuse\camel-cxf-maven-example-master\camel-cxf-maven-example-master\EMBEDDED"/> |
|||
<property name="file.separator" value="\"/> |
|||
<property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/> |
|||
<property name="sun.cpu.endian" value="little"/> |
|||
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/> |
|||
<property name="sun.desktop" value="windows"/> |
|||
<property name="sun.cpu.isalist" value="amd64"/> |
|||
</properties> |
|||
<testcase classname="com.steve.research.MyRouteTest" name="testFoo" time="0.485"/> |
|||
</testsuite> |
|||
@ -0,0 +1,4 @@ |
|||
------------------------------------------------------------------------------- |
|||
Test set: com.steve.research.MyRouteTest |
|||
------------------------------------------------------------------------------- |
|||
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.576 sec |
|||
@ -0,0 +1,19 @@ |
|||
target |
|||
.idea |
|||
*.iml |
|||
*.im |
|||
*.ipr |
|||
*.iws |
|||
overlays |
|||
.DS_Store |
|||
.settings |
|||
*.swp |
|||
*.log |
|||
.project |
|||
.classpath |
|||
*.fmd |
|||
.cache |
|||
dependency-reduced-pom.xml |
|||
kube-cluster/kubernetes |
|||
apps/modifiedFabric8.json |
|||
git-clones |
|||
@ -0,0 +1,107 @@ |
|||
# Karaf CXF REST QuickStart |
|||
|
|||
This quickstart demonstrates how to create a RESTful (JAX-RS) web service using CXF and expose it through the OSGi HTTP Service. |
|||
|
|||
The REST service provides a customer service that supports the following operations |
|||
|
|||
- PUT /customerservice/customers/ - to create or update a customer |
|||
- GET /customerservice/customers/{id} - to view a customer with the given id |
|||
- DELETE /customerservice/customers/{id} - to delete a customer with the given id |
|||
- GET /customerservice/orders/{orderId} - to view an order with the given id |
|||
- GET /customerservice/orders/{orderId}/products/{productId} - to view a specific product on an order with the given id |
|||
|
|||
When the application is deployed, you can access the REST service using a web browser. |
|||
|
|||
|
|||
### Building |
|||
|
|||
The example can be built with |
|||
|
|||
mvn clean install |
|||
|
|||
|
|||
### Running the example in fabric8 |
|||
|
|||
It is assumed that OpenShift platform is already running. If not you can find details how to [Install OpenShift at your site](https://docs.openshift.com/enterprise/3.1/install_config/install/index.html). |
|||
|
|||
The example can be built and deployed using a single goal: |
|||
|
|||
mvn -Pf8-deploy |
|||
|
|||
When the example runs in OpenShift, you can use the OpenShift client tool to inspect the status |
|||
|
|||
To list all the running pods: |
|||
|
|||
oc get pods |
|||
|
|||
Then find the name of the pod that runs this quickstart, and output the logs from the running pods with: |
|||
|
|||
oc logs <name of pod> |
|||
|
|||
You can also use the OpenShift [web console](https://docs.openshift.com/enterprise/3.1/getting_started/developers/developers_console.html#tutorial-video) to manage the |
|||
running pods, and view logs and much more. |
|||
|
|||
|
|||
### Access services using a web browser |
|||
|
|||
You can use any browser to perform a HTTP GET. This allows you to very easily test a few of the RESTful services we defined: |
|||
|
|||
Notice: As it depends on your OpenShift setup, the hostname (route) might vary. Verify with `oc get routes` which |
|||
hostname is valid for you |
|||
|
|||
Use this URL to display the root of the REST service, which also allows to access the WADL of the service: |
|||
|
|||
http://quickstart-cxf-rest.vagrant.f8/cxf/crm |
|||
|
|||
Use this URL to display the XML representation for customer 123: |
|||
|
|||
http://quickstart-cxf-rest.vagrant.f8/cxf/crm/customerservice/customers/123 |
|||
|
|||
You can also access the XML representation for order 223 ... |
|||
|
|||
http://quickstart-cxf-rest.f8/cxf/crm/customerservice/customers/123 |
|||
|
|||
**Note:** if you use Safari, you will only see the text elements but not the XML tags - you can view the entire document with 'View Source' |
|||
|
|||
|
|||
### To run a command-line utility: |
|||
|
|||
You can use a command-line utility, such as cURL or wget, to perform the HTTP requests. We have provided a few files with sample XML representations in `src/test/resources`, so we will use those for testing our services. |
|||
|
|||
1. Open a command prompt and change directory to `cxf-cdi`. |
|||
2. Run the following curl commands (curl commands may not be available on all platforms): |
|||
|
|||
* Create a customer |
|||
|
|||
curl -X POST -T src/test/resources/add_customer.xml -H "Content-Type: text/xml" http://quickstart-cxf-rest.f8/cxf/crm/customerservice/customers |
|||
|
|||
* Retrieve the customer instance with id 123 |
|||
|
|||
curl http://quickstart-cxf-rest.f8/cxf/crm/customerservice/customers/123 |
|||
|
|||
* Update the customer instance with id 123 |
|||
|
|||
curl -X PUT -T src/test/resources/update_customer.xml -H "Content-Type: text/xml" http://quickstart-cxf-rest.f8/cxf/crm/customerservice/customers |
|||
|
|||
* Delete the customer instance with id 123 |
|||
|
|||
curl -X DELETE http://quickstart-cxf-rest.f8/cxf/crm/customerservice/customers/123 |
|||
|
|||
|
|||
### Running the example using OpenShift S2I template |
|||
|
|||
The example can also be built and run using the included S2I template quickstart-template.json. |
|||
|
|||
The application can be run directly by first editing the template file and populating S2I build parameters, including the required parameter GIT_REPO and then executing the command: |
|||
|
|||
oc new-app -f quickstart-template.json |
|||
|
|||
Alternatively the template file can be used to create an OpenShift application template by executing the command: |
|||
|
|||
oc create -f quickstart-template.json |
|||
|
|||
|
|||
### More details |
|||
|
|||
You can find more details about running this [quickstart](http://fabric8.io/guide/quickstarts/running.html) on the website. This also includes instructions how to change the Docker image user and registry. |
|||
|
|||
@ -0,0 +1,109 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- |
|||
|
|||
Copyright 2005-2016 Red Hat, Inc. |
|||
|
|||
Red Hat 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. |
|||
|
|||
--> |
|||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> |
|||
|
|||
<profiles> |
|||
<profile> |
|||
<id>fusesource.repo</id> |
|||
<repositories> |
|||
<repository> |
|||
<id>fusesource.m2</id> |
|||
<name>FuseSource Community Release Repository</name> |
|||
<url>https://repo.fusesource.com/nexus/content/groups/public</url> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</repository> |
|||
<repository> |
|||
<id>fusesource.ea</id> |
|||
<name>FuseSource Community Early Access Release Repository</name> |
|||
<url>https://repo.fusesource.com/nexus/content/groups/ea</url> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</repository> |
|||
<repository> |
|||
<id>redhat.ga</id> |
|||
<name>Red Hat General Availability Repository</name> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</repository> |
|||
</repositories> |
|||
<pluginRepositories> |
|||
<pluginRepository> |
|||
<id>fusesource.m2</id> |
|||
<name>FuseSource Community Release Repository</name> |
|||
<url>https://repo.fusesource.com/nexus/content/groups/public</url> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>fusesource.ea</id> |
|||
<name>FuseSource Community Early Access Release Repository</name> |
|||
<url>https://repo.fusesource.com/nexus/content/groups/ea</url> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>redhat.ga</id> |
|||
<name>Red Hat General Availability Repository</name> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
<updatePolicy>never</updatePolicy> |
|||
</releases> |
|||
</pluginRepository> |
|||
</pluginRepositories> |
|||
</profile> |
|||
</profiles> |
|||
|
|||
<activeProfiles> |
|||
<activeProfile>fusesource.repo</activeProfile> |
|||
</activeProfiles> |
|||
|
|||
</settings> |
|||
@ -0,0 +1,363 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- |
|||
|
|||
Copyright 2005-2016 Red Hat, Inc. |
|||
|
|||
Red Hat 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. |
|||
|
|||
--> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
|
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<groupId>io.fabric8.quickstarts</groupId> |
|||
<artifactId>jboss-fuse-cxf-rest</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
<packaging>bundle</packaging> |
|||
<name>Fabric8 :: Quickstarts :: JBoss Fuse :: CXF REST</name> |
|||
<description>REST example using CXF in Karaf container</description> |
|||
|
|||
<properties> |
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|||
<version.maven-bundle-plugin>2.3.7</version.maven-bundle-plugin> |
|||
<camel.version>2.17.0.redhat-630187</camel.version> |
|||
<cxf.version>3.1.5.redhat-630187</cxf.version> |
|||
<activemq.camel.version>5.11.0.redhat-630187</activemq.camel.version> |
|||
<spring.version>3.2.16.RELEASE</spring.version> |
|||
<cxf.codegen.version>3.1.5.redhat-630187</cxf.codegen.version> |
|||
<!-- configure the versions you want to use here --> |
|||
<fuse.version>6.3.0.redhat-187</fuse.version> |
|||
<fabric8.version>2.2.156</fabric8.version> |
|||
<cxf.plugin.version>3.1.4</cxf.plugin.version> |
|||
<karaf.plugin.version>4.0.8.redhat-000017</karaf.plugin.version> |
|||
|
|||
<!-- maven plugin versions --> |
|||
<fabric8.maven.plugin.version>1.2.0.redhat-630187</fabric8.maven.plugin.version> |
|||
<maven-compiler-plugin.version>3.3</maven-compiler-plugin.version> |
|||
<maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version> |
|||
<exec-maven-plugin.version>1.4.0</exec-maven-plugin.version> |
|||
</properties> |
|||
|
|||
<dependencyManagement> |
|||
<dependencies> |
|||
<!-- fabric8 bom must be before fabric8 bom --> |
|||
<dependency> |
|||
<groupId>io.fabric8</groupId> |
|||
<artifactId>fabric8-project-bom-with-platform-deps</artifactId> |
|||
<version>${fabric8.version}</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.jboss.fuse.bom</groupId> |
|||
<artifactId>jboss-fuse-parent</artifactId> |
|||
<version>${fuse.version}</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
</dependencies> |
|||
</dependencyManagement> |
|||
|
|||
<dependencies> |
|||
|
|||
<!-- cxf --> |
|||
<dependency> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-core</artifactId> |
|||
<version>${cxf.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-rt-transports-http</artifactId> |
|||
<version>${cxf.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-rt-frontend-jaxrs</artifactId> |
|||
<version>${cxf.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-rt-rs-service-description</artifactId> |
|||
<version>${cxf.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- swagger --> |
|||
<dependency> |
|||
<groupId>io.swagger</groupId> |
|||
<artifactId>swagger-jaxrs</artifactId> |
|||
<version>1.5.4</version> |
|||
<optional>true</optional> |
|||
<exclusions> |
|||
<!-- avoid this old dependency which breaks CXF --> |
|||
<exclusion> |
|||
<groupId>javax.ws.rs</groupId> |
|||
<artifactId>jsr311-api</artifactId> |
|||
</exclusion> |
|||
</exclusions> |
|||
</dependency> |
|||
|
|||
<!-- Karaf microcontainer dependencies --> |
|||
<dependency> |
|||
<!-- scope is compile so all features (there is only one) are installed into startup.properties, |
|||
and the feature repo itself is not added in etc/org.apache.karaf.features.cfg file --> |
|||
<groupId>org.jboss.fuse</groupId> |
|||
<artifactId>fuse-karaf-framework</artifactId> |
|||
<version>${fuse.version}</version> |
|||
<type>kar</type> |
|||
<!-- no need to download kar dependencies --> |
|||
<exclusions> |
|||
<exclusion> |
|||
<groupId>*</groupId> |
|||
<artifactId>*</artifactId> |
|||
</exclusion> |
|||
</exclusions> |
|||
</dependency> |
|||
|
|||
</dependencies> |
|||
<repositories> |
|||
<repository> |
|||
<id>redhat-ga-repository</id> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</repository> |
|||
<repository> |
|||
<id>redhat-ea-repository</id> |
|||
<url>https://maven.repository.redhat.com/earlyaccess/all</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</repository> |
|||
</repositories> |
|||
|
|||
<pluginRepositories> |
|||
<pluginRepository> |
|||
<id>redhat-ga-repository</id> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>redhat-ea-repository</id> |
|||
<url>https://maven.repository.redhat.com/earlyaccess/all</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</pluginRepository> |
|||
</pluginRepositories> |
|||
<build> |
|||
|
|||
<resources> |
|||
<resource> |
|||
<directory>src/main/resources</directory> |
|||
<filtering>true</filtering> |
|||
</resource> |
|||
</resources> |
|||
<defaultGoal>install</defaultGoal> |
|||
|
|||
<plugins> |
|||
<!-- Compiler plugin enforces Java 1.8 compatibility and activates annotation processors --> |
|||
<plugin> |
|||
<artifactId>maven-compiler-plugin</artifactId> |
|||
<version>3.3</version> |
|||
<configuration> |
|||
<source>1.8</source> |
|||
<target>1.8</target> |
|||
</configuration> |
|||
</plugin> |
|||
<plugin> |
|||
<groupId>org.apache.maven.plugins</groupId> |
|||
<artifactId>maven-surefire-plugin</artifactId> |
|||
<version>2.18.1</version> |
|||
</plugin> |
|||
|
|||
<!-- Need to setup the OSGi meta information here --> |
|||
<plugin> |
|||
<groupId>org.apache.felix</groupId> |
|||
<artifactId>maven-bundle-plugin</artifactId> |
|||
<version>${version.maven-bundle-plugin}</version> |
|||
<extensions>true</extensions> |
|||
<configuration> |
|||
<instructions> |
|||
<Import-Package> |
|||
javax.ws.rs;version="[2,3)", |
|||
javax.ws.rs.core;version="[2,3)", |
|||
javax.ws.rs.ext;version="[2,3)", |
|||
javax.xml.bind.annotation, |
|||
org.osgi.service.blueprint, |
|||
io.swagger.jaxrs.config, |
|||
io.swagger.jaxrs.listing, |
|||
io.swagger.annotations, |
|||
org.apache.cxf.transport.http, |
|||
com.fasterxml.jackson.annotation, |
|||
com.fasterxml.jackson.core, |
|||
com.fasterxml.jackson.databind, |
|||
com.fasterxml.jackson.jaxrs.json, |
|||
* |
|||
</Import-Package> |
|||
<Export-Package> |
|||
io.fabric8.quickstarts.rest |
|||
</Export-Package> |
|||
</instructions> |
|||
</configuration> |
|||
</plugin> |
|||
<plugin> |
|||
<groupId>org.apache.cxf</groupId> |
|||
<artifactId>cxf-java2wadl-plugin</artifactId> |
|||
<version>${cxf.plugin.version}</version> |
|||
<executions> |
|||
<execution> |
|||
<id>parsejavadoc</id> |
|||
<phase>generate-sources</phase> |
|||
<goals> |
|||
<goal>parsejavadoc</goal> |
|||
</goals> |
|||
</execution> |
|||
<execution> |
|||
<id>process-classes</id> |
|||
<phase>process-classes</phase> |
|||
<goals> |
|||
<goal>java2wadl</goal> |
|||
</goals> |
|||
<configuration> |
|||
<classResourceNames> |
|||
<classResourceName>io.fabric8.quickstarts.rest.CustomerService</classResourceName> |
|||
</classResourceNames> |
|||
<docProvider>org.apache.cxf.maven_plugin.javatowadl.ResourceMapJavaDocProvider</docProvider> |
|||
<attachWadl>false</attachWadl> |
|||
</configuration> |
|||
</execution> |
|||
</executions> |
|||
</plugin> |
|||
|
|||
<!-- attach feature file to install for karaf assembly --> |
|||
<plugin> |
|||
<groupId>org.codehaus.mojo</groupId> |
|||
<artifactId>build-helper-maven-plugin</artifactId> |
|||
<version>1.9.1</version> |
|||
<executions> |
|||
<execution> |
|||
<id>attach-artifacts</id> |
|||
<phase>package</phase> |
|||
<goals> |
|||
<goal>attach-artifact</goal> |
|||
</goals> |
|||
<configuration> |
|||
<artifacts> |
|||
<artifact> |
|||
<file>${project.build.outputDirectory}/features.xml</file> |
|||
<classifier>features</classifier> |
|||
<type>xml</type> |
|||
</artifact> |
|||
</artifacts> |
|||
</configuration> |
|||
</execution> |
|||
</executions> |
|||
</plugin> |
|||
|
|||
<!-- plugin goals have to be executed in order --> |
|||
<!-- 1. install the bundle --> |
|||
<plugin> |
|||
<groupId>org.apache.maven.plugins</groupId> |
|||
<artifactId>maven-install-plugin</artifactId> |
|||
<version>2.5.2</version> |
|||
<executions> |
|||
<execution> |
|||
<id>default-install</id> |
|||
<goals> |
|||
<goal>install</goal> |
|||
</goals> |
|||
<phase>install</phase> |
|||
</execution> |
|||
</executions> |
|||
</plugin> |
|||
|
|||
<!-- 2. create karaf assembly --> |
|||
<!-- karaf-maven-plugin creates custom microservice distribution --> |
|||
<plugin> |
|||
<groupId>org.apache.karaf.tooling</groupId> |
|||
<artifactId>karaf-maven-plugin</artifactId> |
|||
<version>${karaf.plugin.version}</version> |
|||
<extensions>true</extensions> |
|||
<executions> |
|||
<execution> |
|||
<id>karaf-assembly</id> |
|||
<goals> |
|||
<goal>assembly</goal> |
|||
</goals> |
|||
<phase>install</phase> |
|||
</execution> |
|||
<execution> |
|||
<id>karaf-archive</id> |
|||
<goals> |
|||
<goal>archive</goal> |
|||
</goals> |
|||
<phase>install</phase> |
|||
</execution> |
|||
</executions> |
|||
<configuration> |
|||
<!-- we are using karaf 2.4.x --> |
|||
<karafVersion>v24</karafVersion> |
|||
<useReferenceUrls>true</useReferenceUrls> |
|||
<archiveTarGz>false</archiveTarGz> |
|||
<!-- do not include build output directory --> |
|||
<includeBuildOutputDirectory>false</includeBuildOutputDirectory> |
|||
<startupRepositories> |
|||
<repo>mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features</repo> |
|||
</startupRepositories> |
|||
<!-- no startupFeatures --> |
|||
<startupFeatures> |
|||
<feature>karaf-framework</feature> |
|||
<feature>jaas</feature> |
|||
<feature>shell</feature> |
|||
<feature>aries-blueprint</feature> |
|||
|
|||
<feature>cxf-core</feature> |
|||
<feature>cxf-jaxrs</feature> |
|||
<feature>cxf-http-jetty</feature> |
|||
|
|||
<!-- swagger --> |
|||
<feature>http</feature> |
|||
<feature>cxf-specs</feature> |
|||
<feature>swagger2</feature> |
|||
</startupFeatures> |
|||
<startupBundles> |
|||
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle> |
|||
</startupBundles> |
|||
</configuration> |
|||
</plugin> |
|||
|
|||
<!-- 3. create docker image --> |
|||
<plugin> |
|||
<groupId>io.fabric8</groupId> |
|||
<artifactId>fabric8-maven-plugin</artifactId> |
|||
<version>${fabric8.maven.plugin.version}</version> |
|||
</plugin> |
|||
</plugins> |
|||
</build> |
|||
</project> |
|||
@ -0,0 +1,52 @@ |
|||
/** |
|||
* Copyright 2005-2016 Red Hat, Inc. |
|||
* |
|||
* Red Hat 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 io.fabric8.quickstarts.rest; |
|||
|
|||
import javax.xml.bind.annotation.XmlRootElement; |
|||
|
|||
/** |
|||
* The Customer class is just a plain old java object, with a few properties and getters and setters. |
|||
* <p/> |
|||
* By adding the @XmlRootElement annotation, we make it possible for JAXB to unmarshal this object into a XML document and |
|||
* to marshal it back from the same XML document. |
|||
* <p/> |
|||
* The XML representation of a Customer will look like this: |
|||
* <Customer> |
|||
* <id>123</id> |
|||
* <name>National Aquarium</name> |
|||
* </Customer> |
|||
*/ |
|||
@XmlRootElement(name = "Customer") |
|||
public class Customer { |
|||
private long id; |
|||
private String name; |
|||
|
|||
public long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getName() { |
|||
return name; |
|||
} |
|||
|
|||
public void setName(String name) { |
|||
this.name = name; |
|||
} |
|||
} |
|||
@ -0,0 +1,224 @@ |
|||
/** |
|||
* Copyright 2005-2016 Red Hat, Inc. |
|||
* |
|||
* Red Hat 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 io.fabric8.quickstarts.rest; |
|||
|
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
import javax.ws.rs.Consumes; |
|||
import javax.ws.rs.DELETE; |
|||
import javax.ws.rs.GET; |
|||
import javax.ws.rs.POST; |
|||
import javax.ws.rs.PUT; |
|||
import javax.ws.rs.Path; |
|||
import javax.ws.rs.PathParam; |
|||
import javax.ws.rs.Produces; |
|||
import javax.ws.rs.core.Context; |
|||
import javax.ws.rs.core.Response; |
|||
|
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import io.swagger.annotations.ApiResponse; |
|||
import io.swagger.annotations.ApiResponses; |
|||
|
|||
import org.apache.cxf.jaxrs.ext.MessageContext; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
|
|||
/** |
|||
* This Java class with be hosted in the URI path defined by the @Path annotation. @Path annotations on the methods |
|||
* of this class always refer to a path relative to the path defined at the class level. |
|||
* <p/> |
|||
* For example, with 'http://localhost:8181/cxf' as the default CXF servlet path and '/crm' as the JAX-RS server path, |
|||
* this class will be hosted in 'http://localhost:8181/cxf/crm/customerservice'. An @Path("/customers") annotation on |
|||
* one of the methods would result in 'http://localhost:8181/cxf/crm/customerservice/customers'. |
|||
*/ |
|||
@Path("/customerservice/") |
|||
@Api(value = "/customerservice", description = "Operations about customerservice") |
|||
|
|||
public class CustomerService { |
|||
|
|||
private static final Logger LOG = LoggerFactory.getLogger(CustomerService.class); |
|||
|
|||
long currentId = 123; |
|||
Map<Long, Customer> customers = new HashMap<Long, Customer>(); |
|||
Map<Long, Order> orders = new HashMap<Long, Order>(); |
|||
private MessageContext jaxrsContext; |
|||
|
|||
public CustomerService() { |
|||
init(); |
|||
} |
|||
|
|||
/** |
|||
* This method is mapped to an HTTP GET of 'http://localhost:8181/cxf/crm/customerservice/customers/{id}'. The value for |
|||
* {id} will be passed to this message as a parameter, using the @PathParam annotation. |
|||
* <p/> |
|||
* The method returns a Customer object - for creating the HTTP response, this object is marshaled into XML using JAXB. |
|||
* <p/> |
|||
* For example: surfing to 'http://localhost:8181/cxf/crm/customerservice/customers/123' will show you the information of |
|||
* customer 123 in XML format. |
|||
*/ |
|||
@GET |
|||
@Path("/customers/{id}/") |
|||
@Produces("application/xml") |
|||
@ApiOperation(value = "Find Customer by ID", notes = "More notes about this method", response = Customer.class) |
|||
@ApiResponses(value = { |
|||
@ApiResponse(code = 500, message = "Invalid ID supplied"), |
|||
@ApiResponse(code = 204, message = "Customer not found") |
|||
}) |
|||
public Customer getCustomer(@ApiParam(value = "ID of Customer to fetch", required = true) @PathParam("id") String id) { |
|||
LOG.info("Invoking getCustomer, Customer id is: {}", id); |
|||
long idNumber = Long.parseLong(id); |
|||
Customer c = customers.get(idNumber); |
|||
return c; |
|||
} |
|||
|
|||
/** |
|||
* Using HTTP PUT, we can can upload the XML representation of a customer object. This operation will be mapped |
|||
* to the method below and the XML representation will get unmarshaled into a real Customer object using JAXB. |
|||
* <p/> |
|||
* The method itself just updates the customer object in our local data map and afterwards uses the Reponse class to |
|||
* build the appropriate HTTP response: either OK if the update succeeded (translates to HTTP Status 200/OK) or not |
|||
* modified if the method failed to update a customer object (translates to HTTP Status 304/Not Modified). |
|||
* <p/> |
|||
* Note how this method is using the same @Path value as our next method - the HTTP method used will determine which |
|||
* method is being invoked. |
|||
*/ |
|||
@PUT |
|||
@Path("/customers/") |
|||
@Consumes({"application/xml", "application/json" }) |
|||
@ApiOperation(value = "Update an existing Customer") |
|||
@ApiResponses(value = { |
|||
@ApiResponse(code = 500, message = "Invalid ID supplied"), |
|||
@ApiResponse(code = 204, message = "Customer not found") |
|||
}) |
|||
|
|||
public Response updateCustomer(@ApiParam(value = "Customer object that needs to be updated", required = true) Customer customer) { |
|||
LOG.info("Invoking updateCustomer, Customer name is: {}", customer.getName()); |
|||
Customer c = customers.get(customer.getId()); |
|||
Response r; |
|||
if (c != null) { |
|||
customers.put(customer.getId(), customer); |
|||
r = Response.ok().build(); |
|||
} else { |
|||
r = Response.notModified().build(); |
|||
} |
|||
|
|||
return r; |
|||
} |
|||
|
|||
/** |
|||
* Using HTTP POST, we can add a new customer to the system by uploading the XML representation for the customer. |
|||
* This operation will be mapped to the method below and the XML representation will get unmarshaled into a real |
|||
* Customer object. |
|||
* <p/> |
|||
* After the method has added the customer to the local data map, it will use the Response class to build the HTTP reponse, |
|||
* sending back the inserted customer object together with a HTTP Status 200/OK. This allows us to send back the |
|||
* new id for the customer object to the client application along with any other data that might have been updated in |
|||
* the process. |
|||
* <p/> |
|||
* Note how this method is using the same @Path value as our previous method - the HTTP method used will determine which |
|||
* method is being invoked. |
|||
*/ |
|||
@POST |
|||
@Path("/customers/") |
|||
@Consumes({"application/xml", "application/json" }) |
|||
@ApiOperation(value = "Add a new Customer") |
|||
@ApiResponses(value = { @ApiResponse(code = 500, message = "Invalid ID supplied"), }) |
|||
public Response addCustomer(@ApiParam(value = "Customer object that needs to be updated", required = true) |
|||
Customer customer) { |
|||
LOG.info("Invoking addCustomer, Customer name is: {}", customer.getName()); |
|||
customer.setId(++currentId); |
|||
|
|||
customers.put(customer.getId(), customer); |
|||
if (jaxrsContext.getHttpHeaders().getMediaType().getSubtype().equals("json")) { |
|||
return Response.ok().type("application/json").entity(customer).build(); |
|||
} else { |
|||
return Response.ok().type("application/xml").entity(customer).build(); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* This method is mapped to an HTTP DELETE of 'http://localhost:8181/cxf/crm/customerservice/customers/{id}'. The value for |
|||
* {id} will be passed to this message as a parameter, using the @PathParam annotation. |
|||
* <p/> |
|||
* The method uses the Response class to create the HTTP response: either HTTP Status 200/OK if the customer object was |
|||
* successfully removed from the local data map or a HTTP Status 304/Not Modified if it failed to remove the object. |
|||
*/ |
|||
@DELETE |
|||
@Path("/customers/{id}/") |
|||
@ApiOperation(value = "Delete Customer") |
|||
@ApiResponses(value = { |
|||
@ApiResponse(code = 500, message = "Invalid ID supplied"), |
|||
@ApiResponse(code = 204, message = "Customer not found") |
|||
}) |
|||
public Response deleteCustomer(@ApiParam(value = "ID of Customer to delete", required = true) @PathParam("id") String id) { |
|||
LOG.info("Invoking deleteCustomer, Customer id is: {}", id); |
|||
long idNumber = Long.parseLong(id); |
|||
Customer c = customers.get(idNumber); |
|||
|
|||
Response r; |
|||
if (c != null) { |
|||
r = Response.ok().build(); |
|||
customers.remove(idNumber); |
|||
} else { |
|||
r = Response.notModified().build(); |
|||
} |
|||
|
|||
return r; |
|||
} |
|||
|
|||
/** |
|||
* This method is mapped to an HTTP GET of 'http://localhost:8181/cxf/crm/customerservice/orders/{id}'. The value for |
|||
* {id} will be passed to this message as a parameter, using the @PathParam annotation. |
|||
* <p/> |
|||
* The method returns an Order object - the class for that object includes a few more JAX-RS annotations, allowing it to |
|||
* display one of these two outputs, depending on the actual URI path being used: |
|||
* - display the order information itself in XML format |
|||
* - display details about a product in the order in XML format in a path relative to the URI defined here |
|||
*/ |
|||
@Path("/orders/{orderId}/") |
|||
public Order getOrder(@PathParam("orderId") String orderId) { |
|||
LOG.info("Invoking getOrder, Order id is: {}", orderId); |
|||
long idNumber = Long.parseLong(orderId); |
|||
Order c = orders.get(idNumber); |
|||
return c; |
|||
} |
|||
|
|||
/** |
|||
* The init method is used by the constructor to insert a Customer and Order object into the local data map |
|||
* for testing purposes. |
|||
*/ |
|||
final void init() { |
|||
Customer c = new Customer(); |
|||
c.setName("John"); |
|||
c.setId(123); |
|||
customers.put(c.getId(), c); |
|||
|
|||
Order o = new Order(); |
|||
o.setDescription("order 223"); |
|||
o.setId(223); |
|||
orders.put(o.getId(), o); |
|||
} |
|||
|
|||
@Context |
|||
public void setMessageContext(MessageContext messageContext) { |
|||
this.jaxrsContext = messageContext; |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,113 @@ |
|||
/** |
|||
* Copyright 2005-2016 Red Hat, Inc. |
|||
* |
|||
* Red Hat 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 io.fabric8.quickstarts.rest; |
|||
|
|||
import javax.ws.rs.GET; |
|||
import javax.ws.rs.Path; |
|||
import javax.ws.rs.PathParam; |
|||
import javax.ws.rs.Produces; |
|||
import javax.xml.bind.annotation.XmlRootElement; |
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
/** |
|||
* The Order class is not only a plain old java object, with a few properties and getters and setters, but it also defines |
|||
* a sub-resource for the Order returned by CustomerService. |
|||
* <p/> |
|||
* By adding the @XmlRootElement annotation, we make it possible for JAXB to unmarshal this object into a XML document and |
|||
* to marshal it back from the same XML document. |
|||
* <p/> |
|||
* The XML representation of an Order will look like this: |
|||
* <Order> |
|||
* <id>223</id> |
|||
* <description>Order 223</description> |
|||
* </Order> |
|||
*/ |
|||
@XmlRootElement(name = "Order") |
|||
public class Order { |
|||
|
|||
private static final Logger LOG = LoggerFactory.getLogger(CustomerService.class); |
|||
|
|||
private long id; |
|||
private String description; |
|||
private Map<Long, Product> products = new HashMap<Long, Product>(); |
|||
|
|||
public Order() { |
|||
init(); |
|||
} |
|||
|
|||
public long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getDescription() { |
|||
return description; |
|||
} |
|||
|
|||
public void setDescription(String d) { |
|||
this.description = d; |
|||
} |
|||
|
|||
/** |
|||
* This method is mapped to an HTTP GET of '/', relative to the URL that point to this Order resource itself. |
|||
* <p/> |
|||
* The method returns the Order object itself - for creating the HTTP response, this object is marshaled into XML using |
|||
* JAXB. |
|||
* <p/> |
|||
* For example: if surfing to 'http://localhost:8181/cxf/crm/customerservice/orders/223' will show you the information of |
|||
* order 223 in XML format (as defined in CustomerService's getOrder() method), you can access product 323 in that order by |
|||
* accessing 'http://localhost:8181/cxf/crm/customerservice/orders/223/products/323' |
|||
*/ |
|||
@GET |
|||
@Path("/") |
|||
@Produces("application/xml") |
|||
public Order getThisOrder() { |
|||
return this; |
|||
} |
|||
|
|||
/** |
|||
* This method is mapped to an HTTP GET of 'products/{productId}', relative to the URL that point to this Order resource |
|||
* itself. |
|||
* The value for {productId} will be passed to this message as a parameter, using the @PathParam annotation. |
|||
* <p/> |
|||
* The method returns an Product object - for creating the HTTP response, this object is marshaled into XML using JAXB. |
|||
* <p/> |
|||
* For example: accessing 'http://localhost:8181/cxf/crm/customerservice/orders/223/products/323' will first trigger the |
|||
* CustomerService's getOrder() method to return the Order instance for order 223 and afterwards, it will use the remaining |
|||
* part of the URI ('products/323') to map to this method and return the product details for product 323 in this order. |
|||
*/ |
|||
@GET |
|||
@Path("products/{productId}/") |
|||
@Produces("application/xml") |
|||
public Product getProduct(@PathParam("productId") int productId) { |
|||
LOG.info("----invoking getProduct with id: " + productId); |
|||
Product p = products.get(new Long(productId)); |
|||
return p; |
|||
} |
|||
|
|||
final void init() { |
|||
Product p = new Product(); |
|||
p.setId(323); |
|||
p.setDescription("product 323"); |
|||
products.put(p.getId(), p); |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
/** |
|||
* Copyright 2005-2016 Red Hat, Inc. |
|||
* |
|||
* Red Hat 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 io.fabric8.quickstarts.rest; |
|||
|
|||
import javax.xml.bind.annotation.XmlRootElement; |
|||
|
|||
/** |
|||
* The Product class is just a plain old java object, with a few properties and getters and setters. |
|||
* <p/> |
|||
* By adding the @XmlRootElement annotation, we make it possible for JAXB to unmarshal this object into a XML document and |
|||
* to marshal it back from the same XML document. |
|||
* <p/> |
|||
* The XML representation of a Product will look like this: |
|||
* <Product> |
|||
* <id>10010</id> |
|||
* <description>Armadillo</description> |
|||
* </Product> |
|||
*/ |
|||
@XmlRootElement(name = "Product") |
|||
public class Product { |
|||
private long id; |
|||
private String description; |
|||
|
|||
public long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getDescription() { |
|||
return description; |
|||
} |
|||
|
|||
public void setDescription(String d) { |
|||
this.description = d; |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
/** |
|||
* Copyright 2005-2016 Red Hat, Inc. |
|||
* |
|||
* Red Hat 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. |
|||
*/ |
|||
@javax.xml.bind.annotation.XmlSchema(namespace = "http://rest.fabric.quickstarts.fabric8.io/", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) |
|||
package io.fabric8.quickstarts.rest; |
|||
|
|||
@ -0,0 +1,75 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- |
|||
|
|||
Copyright 2005-2016 Red Hat, Inc. |
|||
|
|||
Red Hat 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. |
|||
|
|||
--> |
|||
<!-- |
|||
This is the OSGi Blueprint XML file defining the CXF JAX-RS beans. Because the file is in the |
|||
OSGI-INF/blueprint directory inside our JAR, it will be automatically activated as soon as the artifact is installed. |
|||
|
|||
The root element for any OSGi Blueprint file is 'blueprint' - you also see the namespace definitions for both the Blueprint |
|||
and the CXF JAX-RS namespaces. |
|||
--> |
|||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs" |
|||
xmlns:cxf="http://cxf.apache.org/blueprint/core" |
|||
xsi:schemaLocation=" |
|||
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd |
|||
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd |
|||
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd"> |
|||
|
|||
<!-- JAXRS providers --> |
|||
<bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" /> |
|||
|
|||
<!-- CXF Swagger2Feature --> |
|||
<bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature"> |
|||
<property name="basePath" value="/cxf/crm"/> |
|||
</bean> |
|||
|
|||
<!-- |
|||
The <jaxrs:server/> element sets up our JAX-RS services. It defines: |
|||
- the server's address, '/crm', relative to the default CXF servlet URI |
|||
with the default settings, the server will be running on 'http://localhost:8181/cxf/crm' |
|||
- a list of service beans |
|||
in this example, we refer to another bean defined in this Blueprint XML file with a <ref/> element |
|||
--> |
|||
<jaxrs:server id="customerService" address="/crm"> |
|||
<jaxrs:serviceBeans> |
|||
<ref component-id="customerSvc"/> |
|||
</jaxrs:serviceBeans> |
|||
<jaxrs:providers> |
|||
<ref component-id="jsonProvider" /> |
|||
</jaxrs:providers> |
|||
<jaxrs:features> |
|||
<ref component-id="swagger2Feature" /> |
|||
</jaxrs:features> |
|||
</jaxrs:server> |
|||
|
|||
<cxf:bus> |
|||
<cxf:features> |
|||
<cxf:logging /> |
|||
</cxf:features> |
|||
</cxf:bus> |
|||
|
|||
|
|||
<!-- |
|||
We are using the OSGi Blueprint XML syntax to define a bean that we referred to in our JAX-RS server setup. |
|||
This bean carries a set of JAX-RS annotations that allow its methods to be mapped to incoming requests. |
|||
--> |
|||
<bean id="customerSvc" class="io.fabric8.quickstarts.rest.CustomerService"/> |
|||
|
|||
</blueprint> |
|||
@ -0,0 +1,43 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- |
|||
|
|||
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. |
|||
--> |
|||
<features name="swagger2" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"> |
|||
|
|||
<feature name="swagger2" version="${project.version}" description="swagger2 necessary bundkles"> |
|||
<!-- swagger --> |
|||
<bundle start-level="10">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0/2.5.0</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.core/jackson-core/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.core/jackson-databind/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.core/jackson-annotations/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.6.3</bundle> |
|||
<bundle start-level="10">mvn:org.javassist/javassist/3.20.0-GA</bundle> |
|||
<bundle start-level="10">mvn:javax.validation/validation-api/1.1.0.Final</bundle> |
|||
<bundle start-level="10">mvn:org.apache.commons/commons-lang3/3.4</bundle> |
|||
<bundle start-level="10">mvn:com.google.guava/guava/18.0</bundle> |
|||
<bundle start-level="10">mvn:io.swagger/swagger-core/1.5.4</bundle> |
|||
<bundle start-level="10">mvn:io.swagger/swagger-annotations/1.5.4</bundle> |
|||
<bundle start-level="10">mvn:io.swagger/swagger-models/1.5.4</bundle> |
|||
<bundle start-level="10">mvn:io.swagger/swagger-jaxrs/1.5.4</bundle> |
|||
<bundle start-level="10">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/0.9.10_3</bundle> |
|||
|
|||
</feature> |
|||
</features> |
|||
@ -0,0 +1 @@ |
|||
{ "name": "Jack" } |
|||
@ -0,0 +1,3 @@ |
|||
<Customer xmlns="http://rest.fabric.quickstarts.fabric8.io/"> |
|||
<name>Jack</name> |
|||
</Customer> |
|||
@ -0,0 +1,35 @@ |
|||
# |
|||
# Copyright 2005-2016 Red Hat, Inc. |
|||
# |
|||
# Red Hat 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. |
|||
# |
|||
|
|||
log4j.rootLogger=INFO, file, out |
|||
|
|||
# CONSOLE appender not used by default |
|||
log4j.appender.out=org.apache.log4j.ConsoleAppender |
|||
log4j.appender.out.layout=org.apache.log4j.PatternLayout |
|||
# log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n |
|||
# MDC |
|||
#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %-10.10X{camel.breadcrumbId} - %-10.10X{camelexchangeId} - %-10.10X{camel.correlationId} - %-10.10X{camel.routeId} - %m%n |
|||
|
|||
# File appender |
|||
log4j.appender.file=org.apache.log4j.FileAppender |
|||
log4j.appender.file.layout=org.apache.log4j.PatternLayout |
|||
log4j.appender.file.file=target/rest.log |
|||
log4j.appender.file.append=true |
|||
log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n |
|||
# MDC |
|||
#log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %-10.10X{camel.breadcrumbId} - %-10.10X{camel.exchangeId} - %-10.10X{camel.correlationId} - %-10.10X{camel.routeId} - %m%n |
|||
|
|||
log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer |
|||
@ -0,0 +1,4 @@ |
|||
<Customer xmlns="http://rest.fabric.quickstarts.fabric8.io/"> |
|||
<name>Mary</name> |
|||
<id>123</id> |
|||
</Customer> |
|||
@ -0,0 +1,17 @@ |
|||
target |
|||
.idea |
|||
*.iml |
|||
*.im |
|||
*.ipr |
|||
*.iws |
|||
overlays |
|||
.DS_Store |
|||
.settings |
|||
*.swp |
|||
*.log |
|||
.project |
|||
.classpath |
|||
*.fmd |
|||
.cache |
|||
dependency-reduced-pom.xml |
|||
.vagrant/ |
|||
@ -0,0 +1,201 @@ |
|||
Apache License |
|||
Version 2.0, January 2004 |
|||
http://www.apache.org/licenses/ |
|||
|
|||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
|||
|
|||
1. Definitions. |
|||
|
|||
"License" shall mean the terms and conditions for use, reproduction, |
|||
and distribution as defined by Sections 1 through 9 of this document. |
|||
|
|||
"Licensor" shall mean the copyright owner or entity authorized by |
|||
the copyright owner that is granting the License. |
|||
|
|||
"Legal Entity" shall mean the union of the acting entity and all |
|||
other entities that control, are controlled by, or are under common |
|||
control with that entity. For the purposes of this definition, |
|||
"control" means (i) the power, direct or indirect, to cause the |
|||
direction or management of such entity, whether by contract or |
|||
otherwise, or (ii) ownership of fifty percent (50%) or more of the |
|||
outstanding shares, or (iii) beneficial ownership of such entity. |
|||
|
|||
"You" (or "Your") shall mean an individual or Legal Entity |
|||
exercising permissions granted by this License. |
|||
|
|||
"Source" form shall mean the preferred form for making modifications, |
|||
including but not limited to software source code, documentation |
|||
source, and configuration files. |
|||
|
|||
"Object" form shall mean any form resulting from mechanical |
|||
transformation or translation of a Source form, including but |
|||
not limited to compiled object code, generated documentation, |
|||
and conversions to other media types. |
|||
|
|||
"Work" shall mean the work of authorship, whether in Source or |
|||
Object form, made available under the License, as indicated by a |
|||
copyright notice that is included in or attached to the work |
|||
(an example is provided in the Appendix below). |
|||
|
|||
"Derivative Works" shall mean any work, whether in Source or Object |
|||
form, that is based on (or derived from) the Work and for which the |
|||
editorial revisions, annotations, elaborations, or other modifications |
|||
represent, as a whole, an original work of authorship. For the purposes |
|||
of this License, Derivative Works shall not include works that remain |
|||
separable from, or merely link (or bind by name) to the interfaces of, |
|||
the Work and Derivative Works thereof. |
|||
|
|||
"Contribution" shall mean any work of authorship, including |
|||
the original version of the Work and any modifications or additions |
|||
to that Work or Derivative Works thereof, that is intentionally |
|||
submitted to Licensor for inclusion in the Work by the copyright owner |
|||
or by an individual or Legal Entity authorized to submit on behalf of |
|||
the copyright owner. For the purposes of this definition, "submitted" |
|||
means any form of electronic, verbal, or written communication sent |
|||
to the Licensor or its representatives, including but not limited to |
|||
communication on electronic mailing lists, source code control systems, |
|||
and issue tracking systems that are managed by, or on behalf of, the |
|||
Licensor for the purpose of discussing and improving the Work, but |
|||
excluding communication that is conspicuously marked or otherwise |
|||
designated in writing by the copyright owner as "Not a Contribution." |
|||
|
|||
"Contributor" shall mean Licensor and any individual or Legal Entity |
|||
on behalf of whom a Contribution has been received by Licensor and |
|||
subsequently incorporated within the Work. |
|||
|
|||
2. Grant of Copyright License. Subject to the terms and conditions of |
|||
this License, each Contributor hereby grants to You a perpetual, |
|||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|||
copyright license to reproduce, prepare Derivative Works of, |
|||
publicly display, publicly perform, sublicense, and distribute the |
|||
Work and such Derivative Works in Source or Object form. |
|||
|
|||
3. Grant of Patent License. Subject to the terms and conditions of |
|||
this License, each Contributor hereby grants to You a perpetual, |
|||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|||
(except as stated in this section) patent license to make, have made, |
|||
use, offer to sell, sell, import, and otherwise transfer the Work, |
|||
where such license applies only to those patent claims licensable |
|||
by such Contributor that are necessarily infringed by their |
|||
Contribution(s) alone or by combination of their Contribution(s) |
|||
with the Work to which such Contribution(s) was submitted. If You |
|||
institute patent litigation against any entity (including a |
|||
cross-claim or counterclaim in a lawsuit) alleging that the Work |
|||
or a Contribution incorporated within the Work constitutes direct |
|||
or contributory patent infringement, then any patent licenses |
|||
granted to You under this License for that Work shall terminate |
|||
as of the date such litigation is filed. |
|||
|
|||
4. Redistribution. You may reproduce and distribute copies of the |
|||
Work or Derivative Works thereof in any medium, with or without |
|||
modifications, and in Source or Object form, provided that You |
|||
meet the following conditions: |
|||
|
|||
(a) You must give any other recipients of the Work or |
|||
Derivative Works a copy of this License; and |
|||
|
|||
(b) You must cause any modified files to carry prominent notices |
|||
stating that You changed the files; and |
|||
|
|||
(c) You must retain, in the Source form of any Derivative Works |
|||
that You distribute, all copyright, patent, trademark, and |
|||
attribution notices from the Source form of the Work, |
|||
excluding those notices that do not pertain to any part of |
|||
the Derivative Works; and |
|||
|
|||
(d) If the Work includes a "NOTICE" text file as part of its |
|||
distribution, then any Derivative Works that You distribute must |
|||
include a readable copy of the attribution notices contained |
|||
within such NOTICE file, excluding those notices that do not |
|||
pertain to any part of the Derivative Works, in at least one |
|||
of the following places: within a NOTICE text file distributed |
|||
as part of the Derivative Works; within the Source form or |
|||
documentation, if provided along with the Derivative Works; or, |
|||
within a display generated by the Derivative Works, if and |
|||
wherever such third-party notices normally appear. The contents |
|||
of the NOTICE file are for informational purposes only and |
|||
do not modify the License. You may add Your own attribution |
|||
notices within Derivative Works that You distribute, alongside |
|||
or as an addendum to the NOTICE text from the Work, provided |
|||
that such additional attribution notices cannot be construed |
|||
as modifying the License. |
|||
|
|||
You may add Your own copyright statement to Your modifications and |
|||
may provide additional or different license terms and conditions |
|||
for use, reproduction, or distribution of Your modifications, or |
|||
for any such Derivative Works as a whole, provided Your use, |
|||
reproduction, and distribution of the Work otherwise complies with |
|||
the conditions stated in this License. |
|||
|
|||
5. Submission of Contributions. Unless You explicitly state otherwise, |
|||
any Contribution intentionally submitted for inclusion in the Work |
|||
by You to the Licensor shall be under the terms and conditions of |
|||
this License, without any additional terms or conditions. |
|||
Notwithstanding the above, nothing herein shall supersede or modify |
|||
the terms of any separate license agreement you may have executed |
|||
with Licensor regarding such Contributions. |
|||
|
|||
6. Trademarks. This License does not grant permission to use the trade |
|||
names, trademarks, service marks, or product names of the Licensor, |
|||
except as required for reasonable and customary use in describing the |
|||
origin of the Work and reproducing the content of the NOTICE file. |
|||
|
|||
7. Disclaimer of Warranty. Unless required by applicable law or |
|||
agreed to in writing, Licensor provides the Work (and each |
|||
Contributor provides its Contributions) on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
|||
implied, including, without limitation, any warranties or conditions |
|||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
|||
PARTICULAR PURPOSE. You are solely responsible for determining the |
|||
appropriateness of using or redistributing the Work and assume any |
|||
risks associated with Your exercise of permissions under this License. |
|||
|
|||
8. Limitation of Liability. In no event and under no legal theory, |
|||
whether in tort (including negligence), contract, or otherwise, |
|||
unless required by applicable law (such as deliberate and grossly |
|||
negligent acts) or agreed to in writing, shall any Contributor be |
|||
liable to You for damages, including any direct, indirect, special, |
|||
incidental, or consequential damages of any character arising as a |
|||
result of this License or out of the use or inability to use the |
|||
Work (including but not limited to damages for loss of goodwill, |
|||
work stoppage, computer failure or malfunction, or any and all |
|||
other commercial damages or losses), even if such Contributor |
|||
has been advised of the possibility of such damages. |
|||
|
|||
9. Accepting Warranty or Additional Liability. While redistributing |
|||
the Work or Derivative Works thereof, You may choose to offer, |
|||
and charge a fee for, acceptance of support, warranty, indemnity, |
|||
or other liability obligations and/or rights consistent with this |
|||
License. However, in accepting such obligations, You may act only |
|||
on Your own behalf and on Your sole responsibility, not on behalf |
|||
of any other Contributor, and only if You agree to indemnify, |
|||
defend, and hold each Contributor harmless for any liability |
|||
incurred by, or claims asserted against, such Contributor by reason |
|||
of your accepting any such warranty or additional liability. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
APPENDIX: How to apply the Apache License to your work. |
|||
|
|||
To apply the Apache License to your work, attach the following |
|||
boilerplate notice, with the fields enclosed by brackets "[]" |
|||
replaced with your own identifying information. (Don't include |
|||
the brackets!) The text should be enclosed in the appropriate |
|||
comment syntax for the file format. We also recommend that a |
|||
file or class name and description of purpose be included on the |
|||
same "printed page" as the copyright notice for easier |
|||
identification within third-party archives. |
|||
|
|||
Copyright [yyyy] [name of copyright owner] |
|||
|
|||
Licensed 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. |
|||
@ -0,0 +1,202 @@ |
|||
Apache License |
|||
Version 2.0, January 2004 |
|||
http://www.apache.org/licenses/ |
|||
|
|||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
|||
|
|||
1. Definitions. |
|||
|
|||
"License" shall mean the terms and conditions for use, reproduction, |
|||
and distribution as defined by Sections 1 through 9 of this document. |
|||
|
|||
"Licensor" shall mean the copyright owner or entity authorized by |
|||
the copyright owner that is granting the License. |
|||
|
|||
"Legal Entity" shall mean the union of the acting entity and all |
|||
other entities that control, are controlled by, or are under common |
|||
control with that entity. For the purposes of this definition, |
|||
"control" means (i) the power, direct or indirect, to cause the |
|||
direction or management of such entity, whether by contract or |
|||
otherwise, or (ii) ownership of fifty percent (50%) or more of the |
|||
outstanding shares, or (iii) beneficial ownership of such entity. |
|||
|
|||
"You" (or "Your") shall mean an individual or Legal Entity |
|||
exercising permissions granted by this License. |
|||
|
|||
"Source" form shall mean the preferred form for making modifications, |
|||
including but not limited to software source code, documentation |
|||
source, and configuration files. |
|||
|
|||
"Object" form shall mean any form resulting from mechanical |
|||
transformation or translation of a Source form, including but |
|||
not limited to compiled object code, generated documentation, |
|||
and conversions to other media types. |
|||
|
|||
"Work" shall mean the work of authorship, whether in Source or |
|||
Object form, made available under the License, as indicated by a |
|||
copyright notice that is included in or attached to the work |
|||
(an example is provided in the Appendix below). |
|||
|
|||
"Derivative Works" shall mean any work, whether in Source or Object |
|||
form, that is based on (or derived from) the Work and for which the |
|||
editorial revisions, annotations, elaborations, or other modifications |
|||
represent, as a whole, an original work of authorship. For the purposes |
|||
of this License, Derivative Works shall not include works that remain |
|||
separable from, or merely link (or bind by name) to the interfaces of, |
|||
the Work and Derivative Works thereof. |
|||
|
|||
"Contribution" shall mean any work of authorship, including |
|||
the original version of the Work and any modifications or additions |
|||
to that Work or Derivative Works thereof, that is intentionally |
|||
submitted to Licensor for inclusion in the Work by the copyright owner |
|||
or by an individual or Legal Entity authorized to submit on behalf of |
|||
the copyright owner. For the purposes of this definition, "submitted" |
|||
means any form of electronic, verbal, or written communication sent |
|||
to the Licensor or its representatives, including but not limited to |
|||
communication on electronic mailing lists, source code control systems, |
|||
and issue tracking systems that are managed by, or on behalf of, the |
|||
Licensor for the purpose of discussing and improving the Work, but |
|||
excluding communication that is conspicuously marked or otherwise |
|||
designated in writing by the copyright owner as "Not a Contribution." |
|||
|
|||
"Contributor" shall mean Licensor and any individual or Legal Entity |
|||
on behalf of whom a Contribution has been received by Licensor and |
|||
subsequently incorporated within the Work. |
|||
|
|||
2. Grant of Copyright License. Subject to the terms and conditions of |
|||
this License, each Contributor hereby grants to You a perpetual, |
|||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|||
copyright license to reproduce, prepare Derivative Works of, |
|||
publicly display, publicly perform, sublicense, and distribute the |
|||
Work and such Derivative Works in Source or Object form. |
|||
|
|||
3. Grant of Patent License. Subject to the terms and conditions of |
|||
this License, each Contributor hereby grants to You a perpetual, |
|||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|||
(except as stated in this section) patent license to make, have made, |
|||
use, offer to sell, sell, import, and otherwise transfer the Work, |
|||
where such license applies only to those patent claims licensable |
|||
by such Contributor that are necessarily infringed by their |
|||
Contribution(s) alone or by combination of their Contribution(s) |
|||
with the Work to which such Contribution(s) was submitted. If You |
|||
institute patent litigation against any entity (including a |
|||
cross-claim or counterclaim in a lawsuit) alleging that the Work |
|||
or a Contribution incorporated within the Work constitutes direct |
|||
or contributory patent infringement, then any patent licenses |
|||
granted to You under this License for that Work shall terminate |
|||
as of the date such litigation is filed. |
|||
|
|||
4. Redistribution. You may reproduce and distribute copies of the |
|||
Work or Derivative Works thereof in any medium, with or without |
|||
modifications, and in Source or Object form, provided that You |
|||
meet the following conditions: |
|||
|
|||
(a) You must give any other recipients of the Work or |
|||
Derivative Works a copy of this License; and |
|||
|
|||
(b) You must cause any modified files to carry prominent notices |
|||
stating that You changed the files; and |
|||
|
|||
(c) You must retain, in the Source form of any Derivative Works |
|||
that You distribute, all copyright, patent, trademark, and |
|||
attribution notices from the Source form of the Work, |
|||
excluding those notices that do not pertain to any part of |
|||
the Derivative Works; and |
|||
|
|||
(d) If the Work includes a "NOTICE" text file as part of its |
|||
distribution, then any Derivative Works that You distribute must |
|||
include a readable copy of the attribution notices contained |
|||
within such NOTICE file, excluding those notices that do not |
|||
pertain to any part of the Derivative Works, in at least one |
|||
of the following places: within a NOTICE text file distributed |
|||
as part of the Derivative Works; within the Source form or |
|||
documentation, if provided along with the Derivative Works; or, |
|||
within a display generated by the Derivative Works, if and |
|||
wherever such third-party notices normally appear. The contents |
|||
of the NOTICE file are for informational purposes only and |
|||
do not modify the License. You may add Your own attribution |
|||
notices within Derivative Works that You distribute, alongside |
|||
or as an addendum to the NOTICE text from the Work, provided |
|||
that such additional attribution notices cannot be construed |
|||
as modifying the License. |
|||
|
|||
You may add Your own copyright statement to Your modifications and |
|||
may provide additional or different license terms and conditions |
|||
for use, reproduction, or distribution of Your modifications, or |
|||
for any such Derivative Works as a whole, provided Your use, |
|||
reproduction, and distribution of the Work otherwise complies with |
|||
the conditions stated in this License. |
|||
|
|||
5. Submission of Contributions. Unless You explicitly state otherwise, |
|||
any Contribution intentionally submitted for inclusion in the Work |
|||
by You to the Licensor shall be under the terms and conditions of |
|||
this License, without any additional terms or conditions. |
|||
Notwithstanding the above, nothing herein shall supersede or modify |
|||
the terms of any separate license agreement you may have executed |
|||
with Licensor regarding such Contributions. |
|||
|
|||
6. Trademarks. This License does not grant permission to use the trade |
|||
names, trademarks, service marks, or product names of the Licensor, |
|||
except as required for reasonable and customary use in describing the |
|||
origin of the Work and reproducing the content of the NOTICE file. |
|||
|
|||
7. Disclaimer of Warranty. Unless required by applicable law or |
|||
agreed to in writing, Licensor provides the Work (and each |
|||
Contributor provides its Contributions) on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
|||
implied, including, without limitation, any warranties or conditions |
|||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
|||
PARTICULAR PURPOSE. You are solely responsible for determining the |
|||
appropriateness of using or redistributing the Work and assume any |
|||
risks associated with Your exercise of permissions under this License. |
|||
|
|||
8. Limitation of Liability. In no event and under no legal theory, |
|||
whether in tort (including negligence), contract, or otherwise, |
|||
unless required by applicable law (such as deliberate and grossly |
|||
negligent acts) or agreed to in writing, shall any Contributor be |
|||
liable to You for damages, including any direct, indirect, special, |
|||
incidental, or consequential damages of any character arising as a |
|||
result of this License or out of the use or inability to use the |
|||
Work (including but not limited to damages for loss of goodwill, |
|||
work stoppage, computer failure or malfunction, or any and all |
|||
other commercial damages or losses), even if such Contributor |
|||
has been advised of the possibility of such damages. |
|||
|
|||
9. Accepting Warranty or Additional Liability. While redistributing |
|||
the Work or Derivative Works thereof, You may choose to offer, |
|||
and charge a fee for, acceptance of support, warranty, indemnity, |
|||
or other liability obligations and/or rights consistent with this |
|||
License. However, in accepting such obligations, You may act only |
|||
on Your own behalf and on Your sole responsibility, not on behalf |
|||
of any other Contributor, and only if You agree to indemnify, |
|||
defend, and hold each Contributor harmless for any liability |
|||
incurred by, or claims asserted against, such Contributor by reason |
|||
of your accepting any such warranty or additional liability. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
APPENDIX: How to apply the Apache License to your work. |
|||
|
|||
To apply the Apache License to your work, attach the following |
|||
boilerplate notice, with the fields enclosed by brackets "{}" |
|||
replaced with your own identifying information. (Don't include |
|||
the brackets!) The text should be enclosed in the appropriate |
|||
comment syntax for the file format. We also recommend that a |
|||
file or class name and description of purpose be included on the |
|||
same "printed page" as the copyright notice for easier |
|||
identification within third-party archives. |
|||
|
|||
Copyright {yyyy} {name of copyright owner} |
|||
|
|||
Licensed 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. |
|||
|
|||
@ -0,0 +1,47 @@ |
|||
# Spring-Boot Camel XML QuickStart |
|||
|
|||
This example demonstrates how to configure Camel routes in Spring Boot via |
|||
a Spring XML configuration file. |
|||
|
|||
The application utilizes the Spring [`@ImportResource`](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/ImportResource.html) annotation to load a Camel Context definition via a [camel-context.xml](src/main/resources/spring/camel-context.xml) file on the classpath. |
|||
|
|||
IMPORTANT: This quickstart can run in 2 modes: standalone on your machine and on your Single-node OpenShift Cluster |
|||
|
|||
### Building |
|||
|
|||
The example can be built with |
|||
|
|||
mvn clean install |
|||
|
|||
### Running the Quickstart standalone on your machine |
|||
|
|||
You can also run this booster as a standalone project directly: |
|||
|
|||
Obtain the project and enter the project's directory |
|||
Build the project: |
|||
|
|||
mvn clean package |
|||
mvn spring-boot:run |
|||
|
|||
### Running the Quickstart on a Single-node OpenShift Cluster |
|||
|
|||
All commands below requires one of these: |
|||
- be logged in to the targeted OpenShift instance (using oc login command line tool for instance) |
|||
- configure properties to specify to which OpenShift instance it should connect |
|||
|
|||
If you have a single-node OpenShift cluster, such as Minishift or the Red Hat Container Development Kit, [installed and running](http://appdev.openshift.io/docs/minishift-installation.html), you can also deploy your quickstart there. A single-node OpenShift cluster provides you with access to a cloud environment that is similar to a production environment. |
|||
|
|||
To deploy your booster to a running single-node OpenShift cluster: |
|||
|
|||
Log in and create your project: |
|||
|
|||
oc login -u developer -p developer |
|||
oc new-project MY_PROJECT_NAME |
|||
|
|||
Import base images in your newly created project (MY_PROJECT_NAME): |
|||
|
|||
oc import-image fis-java-openshift:2.0 --from=registry.access.redhat.com/jboss-fuse-6/fis-java-openshift:2.0 --confirm |
|||
|
|||
Unzip, build and deploy your booster: |
|||
|
|||
mvn clean -DskipTests fabric8:deploy -Popenshift -Dfabric8.generator.fromMode=istag -Dfabric8.generator.from=MY_PROJECT_NAME/fis-java-openshift:2.0 |
|||
@ -0,0 +1,199 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- |
|||
|
|||
Copyright 2005-2016 Red Hat, Inc. |
|||
|
|||
Red Hat 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. |
|||
|
|||
--> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
|
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<groupId>com.redhat.fuse.quickstarts</groupId> |
|||
<artifactId>spring-boot-camel-xml</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
|
|||
<name>JBoss Fuse :: Quickstarts :: Spring-Boot :: Camel XML</name> |
|||
<description>Spring Boot example running a Camel route defined in XML</description> |
|||
|
|||
<properties> |
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
|||
|
|||
<spring-boot.version>1.5.18.RELEASE</spring-boot.version> |
|||
<camel.version>2.17.0.redhat-630187</camel.version> |
|||
|
|||
<!-- versions of Maven plugins --> |
|||
<fmp.version>3.5.37</fmp.version> |
|||
</properties> |
|||
|
|||
<dependencyManagement> |
|||
<dependencies> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-dependencies</artifactId> |
|||
<version>${spring-boot.version}</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.apache.camel</groupId> |
|||
<artifactId>camel-spring-boot-dependencies</artifactId> |
|||
<version>2.18.1.redhat-000005</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
</dependencies> |
|||
</dependencyManagement> |
|||
|
|||
<dependencies> |
|||
|
|||
<dependency> |
|||
<groupId>org.apache.camel</groupId> |
|||
<artifactId>camel-spring-boot-starter</artifactId> |
|||
<version>${camel.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-web</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-actuator</artifactId> |
|||
</dependency> |
|||
|
|||
</dependencies> |
|||
|
|||
<build> |
|||
<pluginManagement> |
|||
<plugins> |
|||
<!-- <plugin> --> |
|||
<!-- <groupId>io.fabric8</groupId> --> |
|||
<!-- <artifactId>fabric8-maven-plugin</artifactId> --> |
|||
<!-- <version>${fmp.version}</version> --> |
|||
<!-- </plugin> --> |
|||
</plugins> |
|||
</pluginManagement> |
|||
|
|||
<plugins> |
|||
<!-- Core plugins --> |
|||
|
|||
<plugin> |
|||
<groupId>org.apache.maven.plugins</groupId> |
|||
<artifactId>maven-compiler-plugin</artifactId> |
|||
<version>3.7.0</version> |
|||
<configuration> |
|||
<source>1.8</source> |
|||
<target>1.8</target> |
|||
</configuration> |
|||
</plugin> |
|||
<plugin> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-maven-plugin</artifactId> |
|||
<executions> |
|||
<execution> |
|||
<goals> |
|||
<goal>repackage</goal> |
|||
</goals> |
|||
</execution> |
|||
</executions> |
|||
<version>${spring-boot.version}</version> |
|||
</plugin> |
|||
<plugin> |
|||
<!-- |
|||
this plugin will use the fabric.* properties to configure its behaviour |
|||
see the Properties section here: http://fabric8.io/gitbook/mavenPlugin.html |
|||
--> |
|||
<groupId>io.fabric8</groupId> |
|||
<artifactId>fabric8-maven-plugin</artifactId> |
|||
<version>1.2.0.redhat-630187</version> |
|||
</plugin> |
|||
</plugins> |
|||
</build> |
|||
|
|||
<repositories> |
|||
<repository> |
|||
<id>redhat-ga-repository</id> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</repository> |
|||
<repository> |
|||
<id>redhat-ea-repository</id> |
|||
<url>https://maven.repository.redhat.com/earlyaccess/all</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</repository> |
|||
</repositories> |
|||
|
|||
<pluginRepositories> |
|||
<pluginRepository> |
|||
<id>redhat-ga-repository</id> |
|||
<url>https://maven.repository.redhat.com/ga</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</pluginRepository> |
|||
<pluginRepository> |
|||
<id>redhat-ea-repository</id> |
|||
<url>https://maven.repository.redhat.com/earlyaccess/all</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</pluginRepository> |
|||
</pluginRepositories> |
|||
|
|||
<!-- <profiles> --> |
|||
<!-- <profile> --> |
|||
<!-- <id>openshift</id> --> |
|||
<!-- <build> --> |
|||
<!-- <plugins> --> |
|||
<!-- <plugin> --> |
|||
<!-- <groupId>io.fabric8</groupId> --> |
|||
<!-- <artifactId>fabric8-maven-plugin</artifactId> --> |
|||
<!-- <configuration> --> |
|||
<!-- <enricher> --> |
|||
<!-- <excludes> --> |
|||
<!-- <exclude>fmp-openshift-route</exclude> --> |
|||
<!-- </excludes> --> |
|||
<!-- </enricher> --> |
|||
<!-- </configuration> --> |
|||
<!-- <executions> --> |
|||
<!-- <execution> --> |
|||
<!-- <goals> --> |
|||
<!-- <goal>resource</goal> --> |
|||
<!-- <goal>build</goal> --> |
|||
<!-- </goals> --> |
|||
<!-- </execution> --> |
|||
<!-- </executions> --> |
|||
<!-- </plugin> --> |
|||
<!-- </plugins> --> |
|||
<!-- </build> --> |
|||
<!-- </profile> --> |
|||
<!-- </profiles> --> |
|||
</project> |
|||
@ -0,0 +1,15 @@ |
|||
spec: |
|||
template: |
|||
spec: |
|||
containers: |
|||
- |
|||
resources: |
|||
requests: |
|||
cpu: "0.2" |
|||
memory: 256Mi |
|||
limits: |
|||
cpu: "1.0" |
|||
memory: 256Mi |
|||
env: |
|||
- name: SPRING_APPLICATION_JSON |
|||
value: '{"server":{"tomcat":{"max-threads":1}}}' |
|||
@ -0,0 +1,35 @@ |
|||
/* |
|||
* Copyright 2016 Red Hat, Inc. |
|||
* <p> |
|||
* Red Hat 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 |
|||
* <p> |
|||
* http://www.apache.org/licenses/LICENSE-2.0 |
|||
* <p> |
|||
* 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 io.fabric8.quickstarts.camel; |
|||
|
|||
import org.springframework.boot.SpringApplication; |
|||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
|||
import org.springframework.context.annotation.ImportResource; |
|||
|
|||
@SpringBootApplication |
|||
// load regular Spring XML file from the classpath that contains the Camel XML DSL |
|||
@ImportResource({"classpath:spring/camel-context.xml"}) |
|||
public class Application { |
|||
|
|||
/** |
|||
* A main method to start this application. |
|||
*/ |
|||
public static void main(String[] args) { |
|||
SpringApplication.run(Application.class, args); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
/* |
|||
* Copyright 2016 Red Hat, Inc. |
|||
* <p> |
|||
* Red Hat 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 |
|||
* <p> |
|||
* http://www.apache.org/licenses/LICENSE-2.0 |
|||
* <p> |
|||
* 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 io.fabric8.quickstarts.camel; |
|||
|
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* A sample transform |
|||
*/ |
|||
@Component(value = "myTransformer") |
|||
public class MyTransformer { |
|||
|
|||
public String transform() { |
|||
// let's return a random string |
|||
StringBuffer buffer = new StringBuffer(); |
|||
for (int i = 0; i < 3; i++) { |
|||
int number = (int) (Math.round(Math.random() * 1000) % 10); |
|||
char letter = (char) ('0' + number); |
|||
buffer.append(letter); |
|||
} |
|||
return buffer.toString(); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
#spring.main.sources=io.fabric8.quickstarts.camel |
|||
|
|||
logging.config=classpath:logback.xml |
|||
|
|||
# the options from org.apache.camel.spring.boot.CamelConfigurationProperties can be configured here |
|||
camel.springboot.name=MyCamel |
|||
|
|||
# lets listen on all ports to ensure we can be invoked from the pod IP |
|||
server.address=0.0.0.0 |
|||
management.address=0.0.0.0 |
|||
|
|||
# lets use a different management port in case you need to listen to HTTP requests on 8080 |
|||
management.port=8081 |
|||
|
|||
# disable all management endpoints except health |
|||
endpoints.enabled = false |
|||
endpoints.health.enabled = true |
|||
@ -0,0 +1,17 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE xml> |
|||
<configuration> |
|||
|
|||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
|||
<!-- encoders are assigned the type |
|||
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> |
|||
<encoder> |
|||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> |
|||
</encoder> |
|||
</appender> |
|||
|
|||
<root level="info"> |
|||
<appender-ref ref="STDOUT" /> |
|||
</root> |
|||
|
|||
</configuration> |
|||
@ -0,0 +1,20 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<beans xmlns="http://www.springframework.org/schema/beans" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:camel="http://camel.apache.org/schema/spring" |
|||
xsi:schemaLocation=" |
|||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
|||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> |
|||
|
|||
<!-- Define a traditional camel context here --> |
|||
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> |
|||
<route id="simple-route"> |
|||
<from id="route-timer" uri="timer:foo?period=2000"/> |
|||
<transform id="route-transform"> |
|||
<method ref="myTransformer"/> |
|||
</transform> |
|||
<log id="route-log" message=">>> ${body}"/> |
|||
</route> |
|||
</camelContext> |
|||
|
|||
</beans> |
|||
@ -1 +1 @@ |
|||
test |
|||
another test |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue