diff options
author | dims <dims@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-17 00:23:01 +0000 |
---|---|---|
committer | dims <dims@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-17 00:23:01 +0000 |
commit | bdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch) | |
tree | 38a92061c0793434c4be189f1d70c3458b6bc41d /sandbox/lresende/sca/modules/implementation-data-pojo/src/test |
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/lresende/sca/modules/implementation-data-pojo/src/test')
8 files changed, 419 insertions, 0 deletions
diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/Company.java b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/Company.java new file mode 100644 index 0000000000..3ea6e65c0d --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/Company.java @@ -0,0 +1,47 @@ +/* + * 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 company; + +import javax.persistence.*; + +@Entity +public class Company { + @Id private int id; + @Basic private String name; + + public int getId() { + return id; + } + + public void setId(int i) { + id = i; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String toString() { + return "Company (" + getId() + ") is is " + getName(); + } +} diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollection.java b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollection.java new file mode 100644 index 0000000000..b74f53aa8b --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollection.java @@ -0,0 +1,25 @@ +/* + * 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 company; + +import org.apache.tuscany.sca.implementation.data.collection.Collection; + +public interface CompanyCollection extends Collection<String, Company> { + +} diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollectionImpl.java b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollectionImpl.java new file mode 100644 index 0000000000..385defeb0b --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollectionImpl.java @@ -0,0 +1,100 @@ +/* + * 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 company; + +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.implementation.data.collection.Entry; +import org.apache.tuscany.sca.implementation.data.collection.NotFoundException; + +public class CompanyCollectionImpl implements CompanyCollection { + EntityManagerFactory emf = null; + EntityManager em = null; + + public CompanyCollectionImpl() { + System.out.println(">>>"); + try { + emf = Persistence.createEntityManagerFactory("company-openJPA"); + em = emf.createEntityManager(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void delete(String arg0) throws NotFoundException { + // TODO Auto-generated method stub + + } + + public Company get(String arg0) throws NotFoundException { + // TODO Auto-generated method stub + return null; + } + + public Entry<String, Company>[] getAll() { + EntityTransaction tx = em.getTransaction(); + try { + tx.begin(); + + Query q = em.createQuery("SELECT c FROM company c"); + List results = q.getResultList(); + Iterator iter = results.iterator(); + while (iter.hasNext()) { + Company company = (Company)iter.next(); + + System.out.println(company); + } + + tx.commit(); + } catch(Exception e) { + e.printStackTrace(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + + em.close(); + } + + return null; + } + + public String post(String arg0, Company arg1) { + // TODO Auto-generated method stub + return null; + } + + public void put(String arg0, Company arg1) throws NotFoundException { + // TODO Auto-generated method stub + + } + + public Entry<String, Company>[] query(String arg0) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyCollectionTestCase.java b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyCollectionTestCase.java new file mode 100644 index 0000000000..bc9fbb3543 --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyCollectionTestCase.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.implementation.openjpa; + +import junit.framework.TestCase; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import company.CompanyCollection; +import company.CompanyCollectionImpl; + +public class CompanyCollectionTestCase extends TestCase { + private Log log = LogFactory.getLog(this.getClass()); + private CompanyCollection collection = null; + + public void setUp() { + collection = new CompanyCollectionImpl(); + } + + public void testGetAll() { + collection.getAll(); + } + + public void tearDown() { + + } +} diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyTestCase.java b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyTestCase.java new file mode 100644 index 0000000000..1c4d6fb254 --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyTestCase.java @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.implementation.openjpa; + +import junit.framework.*; +import org.apache.tuscany.sca.host.embedded.*; +import org.apache.commons.logging.*; + +import company.*; + +import javax.persistence.*; +import java.util.*; + +public class CompanyTestCase extends TestCase { + private EntityManager em; + private Log log = LogFactory.getLog(this.getClass()); + private SCADomain domain; + + public void setUp() { + domain = SCADomain.newInstance("openjpa.composite"); + em = domain.getService(EntityManager.class, "CompanyServiceComponent"); + + } + + public void testAccess() { + Company company = new Company(); + int id = new Random().nextInt(); + + company.setId(id); + company.setName("Company " + id); + + em.persist(company); + log.info(em.find(Company.class, id)); + + Query q = em.createQuery("select company from Company company"); + q.setMaxResults(5); + log.info("There are " + q.getResultList().size() + " Company in the database now"); + } + + public void testRollback() { + try { + Company company1 = new Company(); + Company company2 = new Company(); + + int id = new Random().nextInt(); + + company1.setId(id); + company1.setName("Company " + id); + em.persist(company1); + + company2.setId(id); + company2.setName("Company " + id); + em.persist(company2); + + } catch (RuntimeException ex) { + log.info("An expected exception occured, Tuscany is rolling back..."); + } + } + + public void tearDown() { + em.close(); + domain.close(); + } +} diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/orm.xml b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/orm.xml new file mode 100644 index 0000000000..75e329964f --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/orm.xml @@ -0,0 +1,36 @@ +<?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="company.Company" name="company"> + <table name="COMPANY"/> + <attributes> + <id name="id"> + <generated-value strategy="TABLE"/> + </id> + <basic name="name"> + <column name="NAME" length="30"/> + </basic> + </attributes> + </entity> +</entity-mappings>
\ No newline at end of file diff --git a/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/persistence.xml b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/persistence.xml new file mode 100644 index 0000000000..302fbfe845 --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/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="company-openJPA"> + <!--mapping-file>orm.xml</mapping-file--> + <class>company.Company</class> + + <properties> + <property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.EmbeddedDriver"/> + <property name="openjpa.ConnectionURL" value="jdbc:derby:target/test-classes/company"/> + <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/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/company.composite b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/company.composite new file mode 100755 index 0000000000..fd164d2519 --- /dev/null +++ b/sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/company.composite @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="ASCII"?> +<!-- + * 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/openjpa" + name="company"> + + <component name="CompanyServiceComponent"> + <tuscany:implementation.data.pojo> + + <tuscany:persistence-unit name="company"> + <tuscany:openjpa.BrokerFactory>org.apache.tuscany.sca.implementation.openjpa.TuscanyBrokerFactory</tuscany:openjpa.BrokerFactory> + <tuscany:openjpa.TransactionMode>managed</tuscany:openjpa.TransactionMode> + <tuscany:openjpa.Log>DefaultLevel=WARN,SQL=TRACE</tuscany:openjpa.Log> + <tuscany:openjpa.jdbc.SynchronizeMappings>buildSchema</tuscany:openjpa.jdbc.SynchronizeMappings> + + <tuscany:class>company.Company</tuscany:class> + </tuscany:persistence-unit> + + <tuscany:connectionInfo> + <tuscany:connectionProperties + driverClass="org.apache.derby.jdbc.EmbeddedDriver" + databaseURL="jdbc:derby:target/test-classes/company; create = true" + loginTimeout="600000"/> + </tuscany:connectionInfo> + </tuscany:implementation.data.pojo> + </component> + +</composite> |