Customer sample using Dojo + JSONRPC and OpenJPA
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@681631 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f62b939769
commit
8469692186
19 changed files with 1471 additions and 0 deletions
104
java/sca/samples/customer-dojo/README
Normal file
104
java/sca/samples/customer-dojo/README
Normal file
|
@ -0,0 +1,104 @@
|
|||
Customer Dojo RPC Sample
|
||||
===========================
|
||||
|
||||
Note. This sample is currently not working correctly on WebSphere - see TUSCANY-1990
|
||||
|
||||
This sample demostrates the SCA JSONRPC binding using a simple web app that
|
||||
uses the RPC support of the Dojo Toolkit to an SCA service.
|
||||
|
||||
The README in the samples directory (the directory above this) provides
|
||||
general instructions about building and running samples. Take a look there
|
||||
first.
|
||||
|
||||
As this sample provides a web app there is a manual step where the WAR file
|
||||
that contains the sample is copied to your web app container. If you just want
|
||||
to give this sample a go deploy the WAR file (target/sample-helloworld-dojo-webapp.war)
|
||||
to you web application server.
|
||||
|
||||
Once the web app is deployed use your browser to visit the following URL;
|
||||
|
||||
http://localhost:8080/sample-helloworld-dojo-webapp
|
||||
|
||||
The port and hostname will of course vary depending on your local installation.
|
||||
|
||||
See also the similar helloworld-jsonrpc-webapp sample which also uses the SCA JSONRPC binding
|
||||
but uses SCA scaDomain.js script on the client instead of the Dojo Toolkit.
|
||||
|
||||
Sample Overview
|
||||
---------------
|
||||
The sample provides a single service with an operation that reflects
|
||||
a greeting back to the caller. The service is exposed using the JSONRPC
|
||||
binding. The web app provided shows how the Dojo Toolkit JSON-RPC support can be
|
||||
used to invoke the SCA service.
|
||||
|
||||
The web app provided shows how the service can be called by using the DOJO toolkit.
|
||||
|
||||
helloworld-dojo-webapp/
|
||||
build-dojo.xml - This file is an Ant script used by the
|
||||
sample build process to download the Dojo Toolkit
|
||||
and get it included in the WAR file
|
||||
for use by the sample.
|
||||
src/
|
||||
main/
|
||||
java/
|
||||
helloworldjsonrpc/
|
||||
HelloWorldService.java - service interface
|
||||
HelloWorldServiceImpl.java - service implementation
|
||||
resources/
|
||||
jsonrpc.composite - the SCA assembly for this sample
|
||||
webapp
|
||||
dojo/ - the Dojo toolkit (this directory is created only
|
||||
when you build the samples from the source distribution)
|
||||
META-INF/
|
||||
sca-contribution.xml - specifies the composite to be deployed
|
||||
WEB-INF/
|
||||
web.xml - defines the listener that starts up the
|
||||
Tuscany SCA runtime
|
||||
HelloWorldJSONRPC.html - the web application that calls the
|
||||
SCA service via JSONRPC
|
||||
style.css - style sheet
|
||||
|
||||
helloworld-jsonrpc-webapp.png - a pictorial representation of the
|
||||
sample .composite file
|
||||
build.xml - the Ant build file that unpacks the
|
||||
dojo installation
|
||||
pom.xml - the Maven build file
|
||||
|
||||
Building And Running The Sample Using Ant
|
||||
-----------------------------------------
|
||||
With the binary distribution the sample can be built using Ant as
|
||||
follows
|
||||
|
||||
cd helloworld-dojo-webapp
|
||||
ant package
|
||||
|
||||
This should result in a war file (sample-helloworld-dojo-webapp.war) in the target
|
||||
directory. Copy this war file to your web app deployment directory in your
|
||||
web app container.
|
||||
|
||||
The process for getting the web app running will depend on which web app container
|
||||
you are using. For example, if you are using Tomcat then it is simply a matter
|
||||
of copying the WAR file to the webapps directory.
|
||||
|
||||
Once the web app is deployed use your browser to visit the following URL;
|
||||
|
||||
http://localhost:8080/sample-helloworld-dojo-webapp
|
||||
|
||||
The port and hostname will of course vary depending on your local installation.
|
||||
|
||||
You should see a web page that allows you to send messages, via JSONRPC, to the
|
||||
application running in the Tuscany SCA Runtime
|
||||
|
||||
Building And Running The Sample Using Maven
|
||||
-------------------------------------------
|
||||
With either the binary or source distributions the sample can be built and run
|
||||
using Maven as follows.
|
||||
|
||||
cd helloworld-dojo-webapp
|
||||
mvn
|
||||
|
||||
Again this should result in a war file (sample-helloworld-dojo-webapp.war) in the target
|
||||
directory. Follow the steps described in the previous section for running the web
|
||||
app and for the expected results.
|
||||
|
||||
|
110
java/sca/samples/customer-dojo/build-dependency.xml
Normal file
110
java/sca/samples/customer-dojo/build-dependency.xml
Normal file
|
@ -0,0 +1,110 @@
|
|||
<!--
|
||||
* 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.
|
||||
-->
|
||||
|
||||
<fileset id="tuscany.jars" dir="../../modules">
|
||||
<include name="tuscany-assembly-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-assembly-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-assembly-xsd-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-binding-http-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-binding-http-runtime-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-binding-jsonrpc-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-binding-jsonrpc-runtime-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-binding-sca-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-binding-sca-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-contribution-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-contribution-impl-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-contribution-java-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-contribution-namespace-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-contribution-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-core-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-core-databinding-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-core-spi-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-data-api-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-databinding-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-databinding-jaxb-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-databinding-json-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-definitions-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-definitions-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-endpoint-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-extensibility-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-host-embedded-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-host-http-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-host-jetty-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-implementation-java-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-implementation-java-runtime-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-implementation-java-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-implementation-resource-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-implementation-resource-runtime-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-interface-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-interface-java-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-interface-java-jaxws-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-interface-java-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-monitor-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-policy-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-policy-xml-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-sca-api-1.4-SNAPSHOT.jar"/>
|
||||
<include name="tuscany-xsd-1.4-SNAPSHOT.jar"/>
|
||||
</fileset>
|
||||
<fileset id="3rdparty.jars" dir="../../lib">
|
||||
<include name="XmlSchema-1.3.2.jar"/>
|
||||
<include name="activation-1.1.jar"/>
|
||||
<include name="ant-1.6.5.jar"/>
|
||||
<include name="asm-all-3.1.jar"/>
|
||||
<include name="axiom-api-1.2.5.jar"/>
|
||||
<include name="axiom-impl-1.2.5.jar"/>
|
||||
<include name="cglib-nodep-2.1_3.jar"/>
|
||||
<include name="commons-collections-3.2.jar"/>
|
||||
<include name="commons-lang-2.1.jar"/>
|
||||
<include name="commons-logging-1.1.jar"/>
|
||||
<include name="commons-pool-1.3.jar"/>
|
||||
<include name="derby-10.1.2.1.jar"/>
|
||||
<include name="geronimo-commonj_1.1_spec-1.0.jar"/>
|
||||
<include name="geronimo-jms_1.1_spec-1.0.1.jar"/>
|
||||
<include name="geronimo-jpa_3.0_spec-1.1.jar"/>
|
||||
<include name="geronimo-jta_1.1_spec-1.1.jar"/>
|
||||
<include name="hsqldb-1.8.0.1.jar"/>
|
||||
<include name="jaxb-api-2.1.jar"/>
|
||||
<include name="jaxb-impl-2.1.7.jar"/>
|
||||
<include name="jaxen-1.1-beta-9.jar"/>
|
||||
<include name="jaxws-api-2.1.jar"/>
|
||||
<include name="jettison-1.0.1.jar"/>
|
||||
<include name="jetty-6.1.7.jar"/>
|
||||
<include name="jetty-util-6.1.7.jar"/>
|
||||
<include name="json-rpc-1.0.jar"/>
|
||||
<include name="jsr181-api-1.0-MR1.jar"/>
|
||||
<include name="jsr250-api-1.0.jar"/>
|
||||
<include name="log4j-1.2.13.jar"/>
|
||||
<include name="mail-1.4.jar"/>
|
||||
<include name="openjpa-1.0.0.jar"/>
|
||||
<include name="openjpa-jdbc-1.0.0.jar"/>
|
||||
<include name="openjpa-jdbc-5-1.0.0.jar"/>
|
||||
<include name="openjpa-kernel-1.0.0.jar"/>
|
||||
<include name="openjpa-kernel-5-1.0.0.jar"/>
|
||||
<include name="openjpa-lib-1.0.0.jar"/>
|
||||
<include name="openjpa-persistence-1.0.0.jar"/>
|
||||
<include name="openjpa-persistence-jdbc-1.0.0.jar"/>
|
||||
<include name="openjpa-xmlstore-1.0.0.jar"/>
|
||||
<include name="serp-1.13.1.jar"/>
|
||||
<include name="servlet-api-2.5.jar"/>
|
||||
<include name="stax-api-1.0-2.jar"/>
|
||||
<include name="stax-api-1.0.1.jar"/>
|
||||
<include name="wstx-asl-3.2.1.jar"/>
|
||||
<include name="xml-apis-1.3.03.jar"/>
|
||||
</fileset>
|
||||
|
92
java/sca/samples/customer-dojo/build-dojo.xml
Normal file
92
java/sca/samples/customer-dojo/build-dojo.xml
Normal file
|
@ -0,0 +1,92 @@
|
|||
<?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.
|
||||
-->
|
||||
<project name="DojoZipInstaller">
|
||||
|
||||
|
||||
<property name="dojo.version" value="1.0.0"/>
|
||||
<property name="unpack.location" value="${basedir}/target/classes/content/dojo"/>
|
||||
|
||||
|
||||
<target name="check-dojo-installed">
|
||||
<condition property="already.installed" >
|
||||
<available file="${localRepository}/dojo/dojo/${dojo.version}/dojo-${dojo.version}.zip"/>
|
||||
</condition>
|
||||
<condition property="maven.suffix" value="">
|
||||
<os family="unix"/>
|
||||
</condition>
|
||||
<condition property="maven.suffix" value=".bat">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="check-dojo-unpacked">
|
||||
<condition property="already.unpacked" >
|
||||
<available file="${unpack.location}"/>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="install-dojo" depends="check-dojo-installed" unless="already.installed">
|
||||
<mkdir dir="${basedir}/target/dojo-download/"/>
|
||||
<get src="http://download.dojotoolkit.org/release-${dojo.version}/dojo-release-${dojo.version}.zip"
|
||||
dest="${basedir}/target/dojo-download/dojo-release-${dojo.version}.zip"
|
||||
verbose="true"
|
||||
usetimestamp="true"/>
|
||||
<exec executable="mvn${maven.suffix}" dir="${basedir}" failonerror="false">
|
||||
<arg line="install:install-file -DgroupId=dojo -DartifactId=dojo -Dversion=${dojo.version} -Dpackaging=zip -DgeneratePom=true -Dfile=${basedir}/target/dojo-download/dojo-release-${dojo.version}.zip"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="install-dojo-nomaven" depends="check-dojo-installed" unless="already.installed">
|
||||
<mkdir dir="${basedir}/target/dojo-download/"/>
|
||||
<get src="http://download.dojotoolkit.org/release-${dojo.version}/dojo-release-${dojo.version}.zip"
|
||||
dest="${basedir}/target/dojo-download/dojo-release-${dojo.version}.zip"
|
||||
verbose="true"
|
||||
usetimestamp="true"/>
|
||||
<copy file="${basedir}/target/dojo-download/dojo-release-${dojo.version}.zip"
|
||||
tofile="${localRepository}/dojo/dojo/${dojo.version}/dojo-${dojo.version}.zip"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="unpack-dojo-files" depends="check-dojo-installed, check-dojo-unpacked" unless="already.unpacked">
|
||||
<fail message="dojo zip file not installed in local repository: ${localRepository}" unless="already.installed"/>
|
||||
<mkdir dir="${basedir}/target/dojo-unpack-temp/"/>
|
||||
<unzip src="${localRepository}/dojo/dojo/${dojo.version}/dojo-${dojo.version}.zip"
|
||||
dest="${basedir}/target/dojo-unpack-temp/"
|
||||
overwrite="false">
|
||||
<patternset>
|
||||
<include name="dojo-release-${dojo.version}/dojo/**"/>
|
||||
<exclude name="dojo-release-${dojo.version}/dojo/tests/**"/>
|
||||
<include name="dojo-release-${dojo.version}/dijit/**"/>
|
||||
<exclude name="dojo-release-${dojo.version}/dojox/**"/>
|
||||
<exclude name="dojo-release-${dojo.version}/util/**"/>
|
||||
</patternset>
|
||||
</unzip>
|
||||
<move file="${basedir}/target/dojo-unpack-temp/dojo-release-${dojo.version}"
|
||||
tofile="${unpack.location}"
|
||||
verbose="true"/>
|
||||
<delete dir="${basedir}/target/dojo-unpack-temp/"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="clean-dojo-files">
|
||||
<delete dir="${unpack.location}"/>
|
||||
</target>
|
||||
</project>
|
70
java/sca/samples/customer-dojo/build.xml
Normal file
70
java/sca/samples/customer-dojo/build.xml
Normal file
|
@ -0,0 +1,70 @@
|
|||
<!--
|
||||
* 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.
|
||||
-->
|
||||
<!DOCTYPE project [
|
||||
<!ENTITY buildDependency SYSTEM "build-dependency.xml">
|
||||
]>
|
||||
|
||||
<project name="sample-helloworld-dojo-webapp" default="compile">
|
||||
|
||||
&buildDependency;
|
||||
|
||||
<target name="compile">
|
||||
<mkdir dir="target/classes"/>
|
||||
<javac destdir="target/classes" debug="on" source="1.5" target="1.5">
|
||||
<src path="src\main\java"/>
|
||||
<classpath>
|
||||
<fileset refid="tuscany.jars"/>
|
||||
<fileset refid="3rdparty.jars"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
<copy todir="target/classes">
|
||||
<fileset dir="src\main\resources"/>
|
||||
<fileset dir="src\main\resources"/>
|
||||
</copy>
|
||||
|
||||
<ant antfile="./build-dojo.xml" target="install-dojo-nomaven">
|
||||
<property name="localRepository" value="./target/repo"/>
|
||||
</ant>
|
||||
|
||||
<ant antfile="./build-dojo.xml" target="unpack-dojo-files">
|
||||
<property name="localRepository" value="./target/repo"/>
|
||||
</ant>
|
||||
|
||||
<war destfile="target/sample-helloworld-dojo-webapp.war" webxml="src/main/webapp/WEB-INF/web.xml">
|
||||
<fileset dir="src/main/webapp"/>
|
||||
<lib refid="tuscany.jars"/>
|
||||
<lib refid="3rdparty.jars"/>
|
||||
<classes dir="target/classes"/>
|
||||
</war>
|
||||
|
||||
<ant antfile="./build-dojo.xml" target="clean-dojo-files">
|
||||
<property name="localRepository" value="./target/repo"/>
|
||||
</ant>
|
||||
</target>
|
||||
|
||||
<target name="package" depends="compile"/>
|
||||
|
||||
<target name="clean">
|
||||
<delete includeemptydirs="true">
|
||||
<fileset dir="target"/>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
|
||||
</project>
|
BIN
java/sca/samples/customer-dojo/customer-dojo-jsonrpc.png
Normal file
BIN
java/sca/samples/customer-dojo/customer-dojo-jsonrpc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
177
java/sca/samples/customer-dojo/customer-dojo-jsonrpc.svg
Normal file
177
java/sca/samples/customer-dojo/customer-dojo-jsonrpc.svg
Normal file
|
@ -0,0 +1,177 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
* 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.
|
||||
-->
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1052.3622"
|
||||
height="744.09448"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.44"
|
||||
sodipodi:docbase="C:\simon\Projects\Tuscany\java\java-head\sca\samples\helloworld-jsonrpc-webapp"
|
||||
sodipodi:docname="helloworld-jsonrpc-webapp.svg"
|
||||
version="1.0"
|
||||
inkscape:export-filename="C:\simon\Projects\Tuscany\java\java-head\sca\samples\helloworld-jsonrpc-webapp\helloworld-jsonrpc.png"
|
||||
inkscape:export-xdpi="52.84"
|
||||
inkscape:export-ydpi="52.84">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="516.28571"
|
||||
inkscape:cy="414.63224"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="1054"
|
||||
inkscape:window-height="721"
|
||||
inkscape:window-x="158"
|
||||
inkscape:window-y="164" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g2997"
|
||||
transform="translate(144.2857,52.85714)">
|
||||
<rect
|
||||
rx="8.0946665"
|
||||
ry="12.692303"
|
||||
y="192.00233"
|
||||
x="258.31134"
|
||||
height="299.99988"
|
||||
width="262.14267"
|
||||
id="rect2067"
|
||||
style="opacity:1;fill:#90baf4;fill-opacity:1;stroke:#060000;stroke-width:1.99999893;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<flowRoot
|
||||
id="flowRoot2954"
|
||||
xml:space="preserve"><flowRegion
|
||||
id="flowRegion2956"><rect
|
||||
y="212.66591"
|
||||
x="281.42856"
|
||||
height="61.42857"
|
||||
width="170"
|
||||
id="rect2958" /></flowRegion><flowPara
|
||||
id="flowPara2960">helloworldjsonrpc</flowPara></flowRoot> </g>
|
||||
<rect
|
||||
style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2988"
|
||||
width="115.66247"
|
||||
height="85.862968"
|
||||
x="449.91632"
|
||||
y="349.31049"
|
||||
rx="6.9961648"
|
||||
ry="7.1230249" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot2966"
|
||||
transform="translate(190.3256,143.3719)"><flowRegion
|
||||
id="flowRegion2968"><rect
|
||||
id="rect2970"
|
||||
width="170"
|
||||
height="61.42857"
|
||||
x="281.42856"
|
||||
y="212.66591" /></flowRegion><flowPara
|
||||
id="flowPara2972">HelloWorld</flowPara><flowPara
|
||||
id="flowPara1883">JSONService</flowPara><flowPara
|
||||
id="flowPara1885">Component</flowPara></flowRoot> <path
|
||||
style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 373.48019,364.72909 L 455.16689,364.72909 L 470.019,392.34681 L 452.69154,417.84009 L 373.48019,417.84009 L 392.04536,392.34681 L 373.48019,364.72909 z "
|
||||
id="path3017" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot1887"
|
||||
transform="translate(113.6483,167.4037)"><flowRegion
|
||||
id="flowRegion1889"><rect
|
||||
id="rect1891"
|
||||
width="170"
|
||||
height="61.42857"
|
||||
x="281.42856"
|
||||
y="212.66591" /></flowRegion><flowPara
|
||||
id="flowPara1893">HelloWorld</flowPara><flowPara
|
||||
id="flowPara1897">Service</flowPara></flowRoot> <rect
|
||||
style="opacity:1;fill:#f19a9a;fill-opacity:1;stroke:#2e2424;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect1888"
|
||||
width="85"
|
||||
height="97.85714"
|
||||
x="214.28571"
|
||||
y="340.52307"
|
||||
rx="6.9961648"
|
||||
ry="7.1230249" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot1892"
|
||||
transform="translate(-56.88742,135.3526)"><flowRegion
|
||||
id="flowRegion1894"><rect
|
||||
id="rect1896"
|
||||
width="170"
|
||||
height="61.42857"
|
||||
x="281.42856"
|
||||
y="212.66591" /></flowRegion><flowPara
|
||||
id="flowPara1900">WebApp</flowPara></flowRoot> <rect
|
||||
style="opacity:1;fill:#f19a9a;fill-opacity:1;stroke:#2e2424;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect1912"
|
||||
width="45.714287"
|
||||
height="40.714287"
|
||||
x="277.85715"
|
||||
y="370.52304"
|
||||
rx="6.9961648"
|
||||
ry="7.1230249" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot1914"
|
||||
transform="translate(1.400116,166.6895)"><flowRegion
|
||||
id="flowRegion1916"><rect
|
||||
id="rect1918"
|
||||
width="170"
|
||||
height="61.42857"
|
||||
x="281.42856"
|
||||
y="212.66591" /></flowRegion><flowPara
|
||||
id="flowPara1920">DOJO</flowPara></flowRoot> <path
|
||||
style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 324.28571,391.23734 C 391.42857,391.95163 391.42857,391.95163 391.42857,391.95163"
|
||||
id="path1922" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.9 KiB |
33
java/sca/samples/customer-dojo/customer.sql
Normal file
33
java/sca/samples/customer-dojo/customer.sql
Normal file
|
@ -0,0 +1,33 @@
|
|||
--
|
||||
-- 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.
|
||||
--
|
||||
|
||||
DROP TABLE CUSTOMER;
|
||||
|
||||
CREATE TABLE CUSTOMER (
|
||||
ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,
|
||||
NAME VARCHAR(30),
|
||||
PHONE VARCHAR(10),
|
||||
ADDRESS VARCHAR(25),
|
||||
CITY VARCHAR(15),
|
||||
STATE VARCHAR(2),
|
||||
ZIP VARCHAR(5));
|
||||
|
||||
INSERT INTO CUSTOMER (NAME, PHONE, ADDRESS, CITY, STATE, ZIP ) VALUES('Joe Smith', '4081234567', '1440 N 1st ST', 'SAN JOSE', 'CA', '95134');
|
||||
INSERT INTO CUSTOMER (NAME, PHONE, ADDRESS, CITY, STATE, ZIP ) VALUES('Erik Johnson', '4081230987', '1440 N 1st ST', 'SAN JOSE', 'CA', '95134');
|
||||
INSERT INTO CUSTOMER (NAME, PHONE, ADDRESS, CITY, STATE, ZIP ) VALUES('Mark Pensacola', '4085679988', '1440 N 1st ST', 'SAN JOSE', 'CA', '95134');
|
245
java/sca/samples/customer-dojo/pom.xml
Normal file
245
java/sca/samples/customer-dojo/pom.xml
Normal file
|
@ -0,0 +1,245 @@
|
|||
<?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.
|
||||
-->
|
||||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-sca</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>sample-customer-dojo</artifactId>
|
||||
<name>Apache Tuscany SCA Customer DOJO Sample WebApp</name>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>apache.incubator</id>
|
||||
<url>http://people.apache.org/repo/m2-incubating-repository</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-host-embedded</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-data-api</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-implementation-java-runtime</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-implementation-resource-runtime</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-binding-http-runtime</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-host-jetty</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-jpa_3.0_spec</artifactId>
|
||||
<version>1.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.openjpa</groupId>
|
||||
<artifactId>openjpa</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.derby</groupId>
|
||||
<artifactId>derby</artifactId>
|
||||
<version>10.1.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<!-- version>1.1</version -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ant</groupId>
|
||||
<artifactId>ant-trax</artifactId>
|
||||
<version>1.6.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>install-dojo</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<ant antfile="./build-dojo.xml" target="install-dojo">
|
||||
<property name="localRepository" value="${settings.localRepository}"/>
|
||||
</ant>
|
||||
</tasks>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>copy-dojo-files</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<ant antfile="./build-dojo.xml" target="unpack-dojo-files">
|
||||
<property name="localRepository" value="${settings.localRepository}"/>
|
||||
<property name="artifactId" value="${artifactId}"/>
|
||||
</ant>
|
||||
</tasks>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-dojo-files</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<ant antfile="./build-dojo.xml" target="clean-dojo-files">
|
||||
<property name="localRepository" value="${settings.localRepository}"/>
|
||||
<property name="artifactId" value="${artifactId}"/>
|
||||
</ant>
|
||||
</tasks>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-maven-ant-generator</artifactId>
|
||||
<version>1.4-SNAPSHOT</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<configuration>
|
||||
<buildDependencyFileOnly>true</buildDependencyFileOnly>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>sql-maven-plugin</artifactId>
|
||||
<!-- 1.1 due to MOJO-619 -->
|
||||
<version>1.1-SNAPSHOT</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.derby</groupId>
|
||||
<artifactId>derby</artifactId>
|
||||
<version>10.1.2.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
<id>create-db</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
|
||||
<url>jdbc:derby:${pom.basedir}/target/classes/customer;create=true</url>
|
||||
<autocommit>true</autocommit>
|
||||
<onError>continue</onError>
|
||||
<onConnectionError>skip</onConnectionError>
|
||||
<delimiter>;</delimiter>
|
||||
<srcFiles>
|
||||
<srcFile>${pom.basedir}/customer.sql</srcFile>
|
||||
</srcFiles>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Shutdown DB in order to be able to run unit tests -->
|
||||
<execution>
|
||||
<id>shutdown-database-sothat-test-can-run</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
|
||||
<url>jdbc:derby:${pom.basedir}/target/classes/customer;shutdown=true</url>
|
||||
<skipOnConnectionError>true</skipOnConnectionError>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package customer;
|
||||
|
||||
import javax.persistence.Basic;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
|
||||
@Entity
|
||||
public class Customer {
|
||||
|
||||
@Id protected int id;
|
||||
@Basic protected String name;
|
||||
@Basic protected String phone;
|
||||
@Basic protected String address;
|
||||
@Basic protected String city;
|
||||
@Basic protected String state;
|
||||
@Basic protected String zip;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public String getZip() {
|
||||
return zip;
|
||||
}
|
||||
|
||||
public void setZip(String zip) {
|
||||
this.zip = zip;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package customer;
|
||||
|
||||
import org.apache.tuscany.sca.data.collection.Collection;
|
||||
|
||||
|
||||
public interface CustomerCollection extends Collection<String, Customer> {
|
||||
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package customer;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.EntityTransaction;
|
||||
import javax.persistence.Persistence;
|
||||
import javax.persistence.Query;
|
||||
|
||||
import org.apache.tuscany.sca.data.collection.Entry;
|
||||
import org.apache.tuscany.sca.data.collection.NotFoundException;
|
||||
|
||||
|
||||
public class CustomerCollectionImpl implements CustomerCollection {
|
||||
EntityManagerFactory emf = null;
|
||||
EntityManager em = null;
|
||||
|
||||
public CustomerCollectionImpl() {
|
||||
System.out.println(">>>");
|
||||
try {
|
||||
emf = Persistence.createEntityManagerFactory("customer-openJPA");
|
||||
em = emf.createEntityManager();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void delete(String arg0) throws NotFoundException {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public Customer get(String arg0) throws NotFoundException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public Entry<String, Customer>[] getAll() {
|
||||
EntityTransaction tx = em.getTransaction();
|
||||
try {
|
||||
tx.begin();
|
||||
|
||||
Query q = em.createQuery("SELECT c FROM customer c");
|
||||
List results = q.getResultList();
|
||||
Iterator iter = results.iterator();
|
||||
while (iter.hasNext()) {
|
||||
Customer customer = (Customer)iter.next();
|
||||
|
||||
System.out.println(customer);
|
||||
}
|
||||
|
||||
tx.commit();
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (tx.isActive()) {
|
||||
tx.rollback();
|
||||
}
|
||||
|
||||
em.close();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public String post(String arg0, Customer arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public void put(String arg0, Customer arg1) throws NotFoundException {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public Entry<String, Customer>[] query(String arg0) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package customer;
|
||||
|
||||
import org.osoa.sca.annotations.Remotable;
|
||||
|
||||
@Remotable
|
||||
public interface CustomerService {
|
||||
|
||||
Customer[] get();
|
||||
|
||||
Customer findCustomerByName(String name);
|
||||
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package customer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.EntityTransaction;
|
||||
import javax.persistence.Persistence;
|
||||
import javax.persistence.Query;
|
||||
|
||||
import org.osoa.sca.annotations.Destroy;
|
||||
import org.osoa.sca.annotations.Init;
|
||||
|
||||
public class CustomerServiceImpl implements CustomerService {
|
||||
EntityManagerFactory emf = null;
|
||||
EntityManager em = null;
|
||||
|
||||
public CustomerServiceImpl() {
|
||||
|
||||
}
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
System.out.println(">>> Initializing JPA");
|
||||
try {
|
||||
emf = Persistence.createEntityManagerFactory("customer-openJPA");
|
||||
em = emf.createEntityManager();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Destroy
|
||||
public void destroy() {
|
||||
emf.close();
|
||||
}
|
||||
|
||||
public Customer[] get() {
|
||||
EntityTransaction tx = em.getTransaction();
|
||||
List<Customer> customers = new ArrayList<Customer>();
|
||||
try {
|
||||
tx.begin();
|
||||
|
||||
Query q = em.createQuery("SELECT c FROM customer c");
|
||||
List results = q.getResultList();
|
||||
Iterator iter = results.iterator();
|
||||
while (iter.hasNext()) {
|
||||
Customer customer = (Customer)iter.next();
|
||||
customers.add(customer);
|
||||
}
|
||||
|
||||
tx.commit();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (tx.isActive()) {
|
||||
tx.rollback();
|
||||
}
|
||||
|
||||
em.close();
|
||||
}
|
||||
|
||||
Customer[] customerArray = new Customer[customers.size()];
|
||||
customers.toArray(customerArray);
|
||||
return customerArray;
|
||||
}
|
||||
|
||||
public Customer findCustomerByName(String name) {
|
||||
EntityTransaction tx = em.getTransaction();
|
||||
Customer customer = null;
|
||||
|
||||
try {
|
||||
tx.begin();
|
||||
|
||||
Query q = em.createQuery("SELECT c FROM customer c WHERE c.name = '" + name + "'");
|
||||
List results = q.getResultList();
|
||||
Iterator iter = results.iterator();
|
||||
while (iter.hasNext()) {
|
||||
customer = (Customer)iter.next();
|
||||
}
|
||||
|
||||
tx.commit();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (tx.isActive()) {
|
||||
tx.rollback();
|
||||
}
|
||||
|
||||
em.close();
|
||||
}
|
||||
|
||||
return customer;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package launch;
|
||||
|
||||
import org.apache.tuscany.sca.host.embedded.SCADomain;
|
||||
|
||||
public class Launch {
|
||||
public static void main(String[] args) throws Exception {
|
||||
System.out.println("Starting ...");
|
||||
SCADomain scaDomain = SCADomain.newInstance("customer.composite");
|
||||
System.out.println("store.composite ready for big business !!!");
|
||||
System.in.read();
|
||||
System.out.println("Stopping ...");
|
||||
scaDomain.close();
|
||||
System.out.println();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
|
||||
version="1.0">
|
||||
<entity class="customer.Customer" name="customer">
|
||||
<table name="CUSTOMER"/>
|
||||
<attributes>
|
||||
<id name="id">
|
||||
<generated-value strategy="TABLE"/>
|
||||
</id>
|
||||
<basic name="name">
|
||||
<column name="NAME" length="30"/>
|
||||
</basic>
|
||||
<basic name="phone">
|
||||
<column name="PHONE" length="10"/>
|
||||
</basic>
|
||||
<basic name="address">
|
||||
<column name="ADDRESS" length="25"/>
|
||||
</basic>
|
||||
<basic name="city">
|
||||
<column name="CITY" length="15"/>
|
||||
</basic>
|
||||
<basic name="state">
|
||||
<column name="STATE" length="2"/>
|
||||
</basic>
|
||||
<basic name="zip">
|
||||
<column name="ZIP" length="5"/>
|
||||
</basic>
|
||||
</attributes>
|
||||
</entity>
|
||||
</entity-mappings>
|
|
@ -0,0 +1,40 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
|
||||
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
|
||||
|
||||
<persistence-unit name="customer-openJPA">
|
||||
<mapping-file>orm.xml</mapping-file>
|
||||
<class>customer.Customer</class>
|
||||
|
||||
<properties>
|
||||
<property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.EmbeddedDriver"/>
|
||||
<property name="openjpa.ConnectionURL" value="jdbc:derby:target/classes/customer"/>
|
||||
<property name="openjpa.ConnectionUserName" value=""/>
|
||||
<property name="openjpa.ConnectionPassword" value=""/>
|
||||
|
||||
<property name="openjpa.Log" value="DefaultLevel=TRACE, Tool=TRACE"/>
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
|
||||
</persistence>
|
|
@ -0,0 +1,26 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
|
||||
targetNamespace="http://sample"
|
||||
xmlns:sample="http://sample">
|
||||
<deployable composite="sample:customer"/>
|
||||
</contribution>
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
<html>
|
||||
<!--
|
||||
* 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.
|
||||
-->
|
||||
<head>
|
||||
<title>Tuscany Dojo JSON-RPC Customer Example</TITLE>
|
||||
|
||||
<style type="text/css">
|
||||
@import "dojo/dijit/themes/soria/soria.css";
|
||||
@import "dojo/dojo/resources/dojo.css"
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
var djConfig = {
|
||||
parseOnLoad: true,
|
||||
baseRelativePath: "dojo",
|
||||
isDebug: true,
|
||||
debugContainerId: "dojoDebug"
|
||||
};
|
||||
djConfig.usePlainJson=true ;
|
||||
//djConfig.debugAtAllCosts = true;
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="dojo/dojo/dojo.js"></script>
|
||||
<script type="text/javascript" src="dojo/dijit/dijit.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
dojo.require("dojo.parser");
|
||||
dojo.require("dojo.rpc.JsonService");
|
||||
dojo.require("dijit.form.ValidationTextBox");
|
||||
dojo.require("dijit.form.Button");
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body class="soria">
|
||||
|
||||
<h2>Tuscany Dojo JSON-RPC Customer Sample</h2>
|
||||
|
||||
Customer Name :<br>
|
||||
<input type="text" id="name" size="30" value="Joe Smith" dojoType="dijit.form.TextBox" trim="true" propercase="true" required="true" />
|
||||
<input type="button" dojoType="dijit.form.Button" onclick="findCustomerByName()" />
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
function findCustomerByName() {
|
||||
var name = document.getElementById("name").value;
|
||||
customerService.findCustomerByName(name).addCallback(contentCallBack);;
|
||||
}
|
||||
|
||||
function contentCallBack(result) {
|
||||
alert(result.name);
|
||||
//var handlerNode = document.getElementById("ReturnedContent");
|
||||
//handlerNode.innerHTML = "<p>" + result + "</p>" ;
|
||||
}
|
||||
|
||||
var customerService = new dojo.rpc.JsonService("/CustomerService?smd");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,44 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
|
||||
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
|
||||
targetNamespace="http://sample"
|
||||
xmlns:sample="http://sample"
|
||||
name="customer">
|
||||
|
||||
<component name="ui">
|
||||
<tuscany:implementation.resource location="content"/>
|
||||
<service name="Resource">
|
||||
<tuscany:binding.http uri="/"/>
|
||||
</service>
|
||||
</component>
|
||||
|
||||
<service name="CustomerService" promote="CustomerServiceComponent/CustomerService">
|
||||
<interface.java interface="customer.CustomerService"/>
|
||||
<tuscany:binding.jsonrpc/>
|
||||
</service>
|
||||
|
||||
<component name="CustomerServiceComponent">
|
||||
<implementation.java class="customer.CustomerServiceImpl"/>
|
||||
</component>
|
||||
|
||||
</composite>
|
||||
|
Loading…
Add table
Reference in a new issue