diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-12 21:54:50 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-12 21:54:50 +0000 |
commit | d232b6a46e4225ff35a0123a5f5597da7592fc38 (patch) | |
tree | 0c607d86a472ccbdd5587eb3ae53f535b6aa36f2 /branches/sca-equinox/samples/customer-dojo/src/main | |
parent | 2e48ecc0ea43d7b859c578080c72e4c739717487 (diff) |
Creating a branch for the equinox work.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@694816 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-equinox/samples/customer-dojo/src/main')
11 files changed, 640 insertions, 0 deletions
diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/Customer.java b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/Customer.java new file mode 100644 index 0000000000..6d207ea2ef --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/Customer.java @@ -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; + } + +} diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerCollection.java b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerCollection.java new file mode 100644 index 0000000000..5ad39aad5c --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerCollection.java @@ -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> { + +} diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerCollectionImpl.java b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerCollectionImpl.java new file mode 100644 index 0000000000..c0a2f25f15 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerCollectionImpl.java @@ -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; + } + +} diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerService.java b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerService.java new file mode 100644 index 0000000000..7915cc6e77 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerService.java @@ -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); + +} diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerServiceImpl.java b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerServiceImpl.java new file mode 100644 index 0000000000..0cba7d8bc1 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/java/customer/CustomerServiceImpl.java @@ -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; + } + +} diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/java/launch/Launch.java b/branches/sca-equinox/samples/customer-dojo/src/main/java/launch/Launch.java new file mode 100644 index 0000000000..d7f88b8dd4 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/java/launch/Launch.java @@ -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(); + } +} diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/orm.xml b/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/orm.xml new file mode 100644 index 0000000000..64be295302 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/orm.xml @@ -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 diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/persistence.xml b/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000000..7073c8daf7 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/persistence.xml @@ -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 diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/sca-contribution.xml b/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..136326d1d3 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/resources/META-INF/sca-contribution.xml @@ -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> + diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/resources/content/customer.html b/branches/sca-equinox/samples/customer-dojo/src/main/resources/content/customer.html new file mode 100644 index 0000000000..dbc8aad9d0 --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/resources/content/customer.html @@ -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> diff --git a/branches/sca-equinox/samples/customer-dojo/src/main/resources/customer.composite b/branches/sca-equinox/samples/customer-dojo/src/main/resources/customer.composite new file mode 100644 index 0000000000..4c370f2a9f --- /dev/null +++ b/branches/sca-equinox/samples/customer-dojo/src/main/resources/customer.composite @@ -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> + |