summaryrefslogtreecommitdiffstats
path: root/sandbox/lresende/sca/modules/implementation-data-pojo/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/lresende/sca/modules/implementation-data-pojo/src/test')
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/Company.java47
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollection.java25
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/company/CompanyCollectionImpl.java100
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyCollectionTestCase.java44
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/java/org/apache/tuscany/sca/implementation/openjpa/CompanyTestCase.java80
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/orm.xml36
-rw-r--r--sandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/META-INF/persistence.xml40
-rwxr-xr-xsandbox/lresende/sca/modules/implementation-data-pojo/src/test/resources/company.composite47
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>