You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2008/08/01 07:08:04 UTC

svn commit: r681601 - in /tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp: ./ src/main/java/customer/ src/main/java/helloworldjsonrpc/ src/main/java/launch/ src/main/resources/ src/main/resources/META-INF/ src/main/resources/content/ src/main...

Author: lresende
Date: Thu Jul 31 22:08:02 2008
New Revision: 681601

URL: http://svn.apache.org/viewvc?rev=681601&view=rev
Log:
Customer sample using Dojo + JSONRPC and OpenJPA

Added:
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/   (props changed)
      - copied from r681283, tuscany/java/sca/samples/helloworld-dojo-webapp/
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/customer.sql
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml   (contents, props changed)
      - copied, changed from r681283, tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/webapp/META-INF/sca-contribution.xml
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/   (with props)
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/customer.html
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/customer.composite   (contents, props changed)
      - copied, changed from r681283, tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/resources/jsonrpc.composite
Removed:
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/helloworldjsonrpc/
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/jsonrpc.composite
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/webapp/
Modified:
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/build-dojo.xml
    tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/pom.xml

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Jul 31 22:08:02 2008
@@ -0,0 +1,17 @@
+build-dependency.xml
+src\main\webapp\dojo
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders
+maven-eclipse.xml

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Jul 31 22:08:02 2008
@@ -0,0 +1 @@
+/tuscany/branches/sca-java-1.3/samples/helloworld-dojo-webapp:671193

Modified: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/build-dojo.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/build-dojo.xml?rev=681601&r1=681283&r2=681601&view=diff
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/build-dojo.xml (original)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/build-dojo.xml Thu Jul 31 22:08:02 2008
@@ -21,7 +21,7 @@
 	
 
     <property name="dojo.version" value="1.0.0"/>
-    <property name="unpack.location" value="${basedir}/src/main/webapp/dojo"/>
+    <property name="unpack.location" value="${basedir}/target/classes/content/dojo"/>
 	
 
     <target name="check-dojo-installed">

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/customer.sql
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/customer.sql?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/customer.sql (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/customer.sql Thu Jul 31 22:08:02 2008
@@ -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');
\ No newline at end of file

Modified: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/pom.xml?rev=681601&r1=681283&r2=681601&view=diff
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/pom.xml (original)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/pom.xml Thu Jul 31 22:08:02 2008
@@ -25,9 +25,8 @@
         <version>1.4-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-    <artifactId>sample-helloworld-dojo-webapp</artifactId>
-    <packaging>war</packaging>
-    <name>Apache Tuscany SCA HelloWorld DOJO Sample WebApp</name>
+    <artifactId>sample-customer-dojo</artifactId>
+    <name>Apache Tuscany SCA Customer DOJO Sample WebApp</name>
 
     <repositories>
        <repository>
@@ -39,39 +38,81 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-webapp</artifactId>
+            <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-implementation-widget-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-binding-jsonrpc-runtime</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>
 
-        <!-- exclude stax 1.0.1 as we're also pulling in javax\xml\stream\stax-api\1.0-2 -->
         <dependency>
-            <groupId>stax</groupId>
-            <artifactId>stax-api</artifactId>
-            <version>1.0.1</version>
-            <scope>provided</scope>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-resource-runtime</artifactId>
+            <version>1.4-SNAPSHOT</version>
+            <scope>runtime</scope>
         </dependency>
-
-        <!-- marking dependency as provided to exclude from war file -->
+        
         <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.3</version>
-            <scope>provided</scope>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-tomcat</artifactId>
+            <version>1.4-SNAPSHOT</version>
+            <scope>runtime</scope>
         </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>
@@ -157,7 +198,56 @@
                         </goals>
                     </execution>
                 </executions>
-            </plugin>           
+            </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>

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java Thu Jul 31 22:08:02 2008
@@ -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;
+    }
+    
+}

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/Customer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java Thu Jul 31 22:08:02 2008
@@ -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> {
+
+}

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollection.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java Thu Jul 31 22:08:02 2008
@@ -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;
+    }
+
+}

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerCollectionImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java Thu Jul 31 22:08:02 2008
@@ -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);
+
+}

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java Thu Jul 31 22:08:02 2008
@@ -0,0 +1,118 @@
+/*
+ * 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() {
+        em.close();
+        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;
+    }
+
+}

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/customer/CustomerServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java Thu Jul 31 22:08:02 2008
@@ -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();
+    }
+}

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/java/launch/Launch.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml Thu Jul 31 22:08:02 2008
@@ -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>
\ No newline at end of file

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/orm.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml Thu Jul 31 22:08:02 2008
@@ -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>
\ No newline at end of file

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Copied: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml (from r681283, tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/webapp/META-INF/sca-contribution.xml)
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml?p2=tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml&p1=tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/webapp/META-INF/sca-contribution.xml&r1=681283&r2=681601&rev=681601&view=diff
==============================================================================
--- tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/webapp/META-INF/sca-contribution.xml (original)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml Thu Jul 31 22:08:02 2008
@@ -21,6 +21,6 @@
 <contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
               targetNamespace="http://sample"
               xmlns:sample="http://sample">
-   <deployable composite="sample:helloworldjsonrpc"/>
+   <deployable composite="sample:customer"/>
 </contribution>
 

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Jul 31 22:08:02 2008
@@ -0,0 +1 @@
+/tuscany/branches/sca-java-1.3/samples/helloworld-dojo-webapp/src/main/webapp/META-INF/sca-contribution.xml:671193

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/
------------------------------------------------------------------------------
    svn:mergeinfo = 

Added: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/customer.html
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/customer.html?rev=681601&view=auto
==============================================================================
--- tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/customer.html (added)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/content/customer.html Thu Jul 31 22:08:02 2008
@@ -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>

Copied: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/customer.composite (from r681283, tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/resources/jsonrpc.composite)
URL: http://svn.apache.org/viewvc/tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/customer.composite?p2=tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/customer.composite&p1=tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/resources/jsonrpc.composite&r1=681283&r2=681601&rev=681601&view=diff
==============================================================================
--- tuscany/java/sca/samples/helloworld-dojo-webapp/src/main/resources/jsonrpc.composite (original)
+++ tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/customer.composite Thu Jul 31 22:08:02 2008
@@ -22,15 +22,22 @@
 	       xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
            targetNamespace="http://sample"
            xmlns:sample="http://sample"
-           name="helloworldjsonrpc">
-           
-	<service name="HelloWorldService" promote="HelloWorldJSONServiceComponent/HelloWorldService">
-         <interface.java interface="helloworldjsonrpc.HelloWorldService"/>
-         <tuscany:binding.jsonrpc/>
-     </service>           
+           name="customer">
+
+	<component name="ui">
+		<tuscany:implementation.resource location="content"/>
+		<service name="Resource">
+    		<tuscany:binding.http uri="/"/>
+    	</service>
+	</component>    
 
-    <component name="HelloWorldJSONServiceComponent">
-        <implementation.java class="helloworldjsonrpc.HelloWorldServiceImpl"/>
+	<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>

Propchange: tuscany/sandbox/lresende/sca/samples/customer-dojo-webapp/src/main/resources/customer.composite
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Jul 31 22:08:02 2008
@@ -0,0 +1 @@
+/tuscany/branches/sca-java-1.3/samples/helloworld-dojo-webapp/src/main/resources/jsonrpc.composite:671193