diff --git a/client/pom.xml b/client/pom.xml
new file mode 100644
index 0000000..0c6e1cf
--- /dev/null
+++ b/client/pom.xml
@@ -0,0 +1,86 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ client
+ 1.0.0-SNAPSHOT
+ bundle
+ KnowHowLab OSGi JPA tips - client
+ KnowHowLab OSGi JPA tips - client
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ org.osgi
+ org.osgi.core
+ 4.2.0
+
+
+ org.osgi
+ org.osgi.enterprise
+ 4.2.0
+
+
+ org.apache.geronimo.specs
+ geronimo-jpa_2.0_spec
+ 1.1
+
+
+ org.knowhowlab.tips.jpa
+ model
+ ${project.version}
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.5
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.4
+ true
+
+
+
+ org.osgi*,org.knowhowlab.tips.jpa.model,javax.persistence;version="1.1.0"
+ org.knowhowlab.tips.jpa.client.Activator
+ http://code.google.com/p/osgilab/wiki/License
+ JavaSE-1.6
+ <_removeheaders>Bnd-LastModified, Built-By, Private-Package, Tool,
+ Build-Jdk, Include-Resource, Embed-Dependency
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/client/src/main/java/org/knowhowlab/tips/jpa/client/Activator.java b/client/src/main/java/org/knowhowlab/tips/jpa/client/Activator.java
new file mode 100644
index 0000000..1f69796
--- /dev/null
+++ b/client/src/main/java/org/knowhowlab/tips/jpa/client/Activator.java
@@ -0,0 +1,33 @@
+package org.knowhowlab.tips.jpa.client;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+/**
+ * @author dpishchukhin
+ */
+public class Activator implements BundleActivator {
+ private ServiceRegistration serviceRegistration;
+
+ public void start(BundleContext context) throws Exception {
+ Dictionary props = new Hashtable();
+ props.put("org.knowhowlab.osgi.shell.group.id", "jpa");
+ props.put("org.knowhowlab.osgi.shell.group.name", "JPA tips commands");
+ props.put("org.knowhowlab.osgi.shell.commands", new String[][]{
+ {"lsstuds", "lsstuds - list students"},
+ {"lsgrps", "lsgrps - list groups"},
+ {"delgrp", "delgrp - delete group"},
+ {"delstud", "delstud - delete student"},
+ {"addgrp", "addgrp - add group"},
+ {"addstud", "addstud - add student"}});
+ serviceRegistration = context.registerService(CommandLineService.class.getName(), new CommandLineService(context), props);
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ serviceRegistration.unregister();
+ }
+}
diff --git a/client/src/main/java/org/knowhowlab/tips/jpa/client/CommandLineService.java b/client/src/main/java/org/knowhowlab/tips/jpa/client/CommandLineService.java
new file mode 100644
index 0000000..6b15b04
--- /dev/null
+++ b/client/src/main/java/org/knowhowlab/tips/jpa/client/CommandLineService.java
@@ -0,0 +1,236 @@
+package org.knowhowlab.tips.jpa.client;
+
+import org.knowhowlab.tips.jpa.model.Group;
+import org.knowhowlab.tips.jpa.model.Student;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.jpa.EntityManagerFactoryBuilder;
+
+import javax.persistence.*;
+import java.io.PrintWriter;
+import java.util.List;
+
+/**
+ * @author dpishchukhin
+ */
+public class CommandLineService {
+ private BundleContext bc;
+ private static final String STUDENTS_UNIT = "jpa.students";
+
+ public CommandLineService(BundleContext bc) {
+ this.bc = bc;
+ }
+
+ public void lsstuds(PrintWriter out, String... args) {
+ try {
+ ServiceReference reference = getEntityManagerFactoryServiceReference();
+ try {
+ EntityManagerFactory emf = (EntityManagerFactory) bc.getService(reference);
+ EntityManager em = emf.createEntityManager();
+ Query query = em.createNamedQuery(Student.GET_STUDENTS);
+ List result = query.getResultList();
+ if (result != null) {
+ out.println(String.format("Students: %d", result.size()));
+ for (Student student : result) {
+ out.println(String.format("%d %s %s %d", student.getId(), student.getFirstName(), student.getLastName(), student.getGroup().getId()));
+ }
+ } else {
+ out.println("Result is null");
+ }
+ em.close();
+ } finally {
+ bc.ungetService(reference);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(out);
+ }
+ }
+
+ public void lsgrps(PrintWriter out, String... args) {
+ try {
+ ServiceReference reference = getEntityManagerFactoryServiceReference();
+ try {
+ EntityManagerFactory emf = (EntityManagerFactory) bc.getService(reference);
+ EntityManager em = emf.createEntityManager();
+ Query query = em.createNamedQuery(Group.GET_GROUPS);
+ List result = query.getResultList();
+ if (result != null) {
+ out.println(String.format("Groups: %d", result.size()));
+ for (Group group : result) {
+ out.println(String.format("%d %s", group.getId(), group.getName()));
+ }
+ } else {
+ out.println("Result is null");
+ }
+ em.close();
+ } finally {
+ bc.ungetService(reference);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(out);
+ }
+ }
+
+ public void addgrp(PrintWriter out, String... args) {
+ if (args == null || args.length != 1) {
+ out.println("Group name param is missed");
+ return;
+ }
+ try {
+ ServiceReference reference = getEntityManagerFactoryServiceReference();
+ try {
+ EntityManagerFactory emf = (EntityManagerFactory) bc.getService(reference);
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction transaction = em.getTransaction();
+ try {
+ transaction.begin();
+ Group group = new Group(args[0]);
+ em.persist(group);
+ transaction.commit();
+ out.println(String.format("Group is persisted with ID: %d", group.getId()));
+ } catch (Exception e) {
+ transaction.rollback();
+ e.printStackTrace(out);
+ }
+ em.close();
+ } finally {
+ bc.ungetService(reference);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(out);
+ }
+ }
+
+ public void delgrp(PrintWriter out, String... args) {
+ if (args == null || args.length != 1) {
+ out.println("Group ID param is missed");
+ return;
+ }
+ try {
+ ServiceReference reference = getEntityManagerFactoryServiceReference();
+ try {
+ EntityManagerFactory emf = (EntityManagerFactory) bc.getService(reference);
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction transaction = em.getTransaction();
+ try {
+ transaction.begin();
+ int groupId = Integer.valueOf(args[0]);
+ Group group = getGroup(em, groupId);
+ if (group == null) {
+ throw new Exception(String.format("Unknown Group ID: %d", groupId));
+ }
+ em.remove(group);
+ transaction.commit();
+ out.println(String.format("Group with ID: %d is removed", groupId));
+ } catch (Exception e) {
+ transaction.rollback();
+ e.printStackTrace(out);
+ }
+ em.close();
+ } finally {
+ bc.ungetService(reference);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(out);
+ }
+ }
+
+ public void delstud(PrintWriter out, String... args) {
+ if (args == null || args.length != 1) {
+ out.println("Student ID param is missed");
+ return;
+ }
+ try {
+ ServiceReference reference = getEntityManagerFactoryServiceReference();
+ try {
+ EntityManagerFactory emf = (EntityManagerFactory) bc.getService(reference);
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction transaction = em.getTransaction();
+ try {
+ transaction.begin();
+ int studentId = Integer.valueOf(args[0]);
+ Student student = getStudent(em, studentId);
+ if (student == null) {
+ throw new Exception(String.format("Unknown Student ID: %d", studentId));
+ }
+ em.remove(student);
+ transaction.commit();
+ out.println(String.format("Student with ID: %d is removed", studentId));
+ } catch (Exception e) {
+ transaction.rollback();
+ e.printStackTrace(out);
+ }
+ em.close();
+ } finally {
+ bc.ungetService(reference);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(out);
+ }
+ }
+
+ public void addstud(PrintWriter out, String... args) {
+ if (args == null || args.length != 3) {
+ out.println("Wrong params");
+ return;
+ }
+ try {
+ ServiceReference reference = getEntityManagerFactoryServiceReference();
+ try {
+ EntityManagerFactory emf = (EntityManagerFactory) bc.getService(reference);
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction transaction = em.getTransaction();
+ try {
+ transaction.begin();
+ int groupId = Integer.valueOf(args[2]);
+ Group group = getGroup(em, groupId);
+ if (group == null) {
+ throw new Exception(String.format("Unknown Group ID: %d", groupId));
+ }
+ Student student = new Student(args[0], args[1], group);
+ em.persist(student);
+ transaction.commit();
+ out.println(String.format("Student is persisted with ID: %d", student.getId()));
+ } catch (Exception e) {
+ transaction.rollback();
+ e.printStackTrace(out);
+ }
+ em.close();
+ } finally {
+ bc.ungetService(reference);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(out);
+ }
+ }
+
+ private Group getGroup(EntityManager em, int groupId) {
+ Query query = em.createNamedQuery(Group.GET_GROUP_BY_ID);
+ query.setParameter("groupId", groupId);
+ try {
+ return (Group) query.getSingleResult();
+ } catch (NoResultException e) {
+ return null;
+ }
+ }
+
+ private Student getStudent(EntityManager em, int studentId) {
+ Query query = em.createNamedQuery(Student.GET_STUDENT_BY_ID);
+ query.setParameter("studentId", studentId);
+ try {
+ return (Student) query.getSingleResult();
+ } catch (NoResultException e) {
+ return null;
+ }
+ }
+
+ private ServiceReference getEntityManagerFactoryServiceReference() throws Exception {
+ ServiceReference[] serviceReferences = bc.getServiceReferences(EntityManagerFactory.class.getName(),
+ String.format("(%s=%s)", EntityManagerFactoryBuilder.JPA_UNIT_NAME, STUDENTS_UNIT));
+ if (serviceReferences != null && serviceReferences.length > 0) {
+ return serviceReferences[0];
+ } else {
+ throw new Exception("EntityManagerFactory is not available");
+ }
+ }
+}
diff --git a/eclipselink/pom.xml b/eclipselink/pom.xml
new file mode 100644
index 0000000..f52b257
--- /dev/null
+++ b/eclipselink/pom.xml
@@ -0,0 +1,89 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ eclipselink
+ 1.0.0-SNAPSHOT
+ bundle
+ KnowHowLab OSGi JPA tips - EclipseLink Aries Activator
+ KnowHowLab OSGi JPA tips - EclipseLink Aries Activator
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ org.osgi
+ org.osgi.core
+ 4.2.0
+
+
+ org.apache.geronimo.specs
+ geronimo-jpa_2.0_spec
+ 1.1
+
+
+ org.eclipse.persistence
+ org.eclipse.persistence.jpa
+ 2.2.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.6
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.4
+ true
+
+
+
+ org.osgi*,javax.persistence*;version="1.1.0",org.eclipse.persistence.jpa
+ http://code.google.com/p/osgilab/wiki/License
+ org.knowhowlab.tips.jpa.eclipselink.Activator
+ JavaSE-1.6
+ <_removeheaders>Bnd-LastModified, Built-By, Private-Package, Tool,
+ Build-Jdk, Include-Resource, Embed-Dependency
+
+
+
+
+
+
+
+
+
+ eclipselink repo
+ http://mirror.netcologne.de/eclipse/rt/eclipselink/maven.repo
+
+
+
\ No newline at end of file
diff --git a/eclipselink/src/main/java/org/knowhowlab/tips/jpa/eclipselink/Activator.java b/eclipselink/src/main/java/org/knowhowlab/tips/jpa/eclipselink/Activator.java
new file mode 100644
index 0000000..c5d74d9
--- /dev/null
+++ b/eclipselink/src/main/java/org/knowhowlab/tips/jpa/eclipselink/Activator.java
@@ -0,0 +1,30 @@
+package org.knowhowlab.tips.jpa.eclipselink;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+import javax.persistence.spi.PersistenceProvider;
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+/**
+ * @author dpishchukhin
+ */
+public class Activator implements BundleActivator {
+ private static final String JAVAX_PERSISTENCE_PROVIDER_PROP = "javax.persistence.provider";
+ private ServiceRegistration serviceRegistration;
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ org.eclipse.persistence.jpa.PersistenceProvider persistence = new org.eclipse.persistence.jpa.PersistenceProvider();
+ Dictionary props = new Hashtable();
+ props.put(JAVAX_PERSISTENCE_PROVIDER_PROP, persistence.getClass().getName());
+ serviceRegistration = context.registerService(PersistenceProvider.class.getName(), persistence, props);
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ serviceRegistration.unregister();
+ }
+}
diff --git a/hibernate/pom.xml b/hibernate/pom.xml
new file mode 100644
index 0000000..507e9f4
--- /dev/null
+++ b/hibernate/pom.xml
@@ -0,0 +1,118 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ hibernate
+ 1.0.0-SNAPSHOT
+ bundle
+ KnowHowLab OSGi JPA tips - Hibernate bundle
+ KnowHowLab OSGi JPA tips - Hibernate bundle
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ org.osgi
+ org.osgi.core
+ 4.2.0
+
+
+ org.apache.geronimo.specs
+ geronimo-jpa_2.0_spec
+ 1.1
+
+
+ org.hibernate
+ hibernate-core
+ 3.6.3.Final
+
+
+ org.hibernate
+ hibernate-entitymanager
+ 3.6.3.Final
+
+
+ org.hibernate
+ hibernate-commons-annotations
+ 3.2.0.Final
+
+
+ antlr
+ antlr
+ 2.7.6-brew
+
+
+ javassist
+ javassist
+ 3.12.1.GA
+
+
+ dom4j
+ dom4j
+ 1.6.1-brew
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.6
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.4
+ true
+
+
+ org.hibernate*;-split-package:=merge-first,javassist*
+ org.osgi*,javax.persistence*;version="1.1.0",javax.naming*,javax.sql,javax.transaction*;version="1.1.0",javax.xml.*,org.apache.commons.collections*,org.slf4j,org.w3c.dom,org.xml.sax*,!javax.validation*,!javax.security*,!com.sun.jdi*,!org.gjt.xpp,!org.relaxng.datatype,!org.xmlpull.v1,!org.jaxen*,!com.sun.msv.datatype*,!org.objectweb*,!net.sf.cglib*,!javax.swing*,!org.apache.tools.ant*
+
+ *
+ http://code.google.com/p/osgilab/wiki/License
+ org.knowhowlab.tips.jpa.hibernate.Activator
+ JavaSE-1.6
+ <_removeheaders>Bnd-LastModified, Built-By, Private-Package, Tool,
+ Build-Jdk, Include-Resource, Embed-Dependency
+
+ antlr;inline=true,dom4j;inline=true
+
+
+
+
+
+
+
+
+ jboss repo
+ https://repository.jboss.org/nexus/content/groups/public/
+
+
+
+
\ No newline at end of file
diff --git a/hibernate/src/main/java/org/knowhowlab/tips/jpa/hibernate/Activator.java b/hibernate/src/main/java/org/knowhowlab/tips/jpa/hibernate/Activator.java
new file mode 100644
index 0000000..de65899
--- /dev/null
+++ b/hibernate/src/main/java/org/knowhowlab/tips/jpa/hibernate/Activator.java
@@ -0,0 +1,31 @@
+package org.knowhowlab.tips.jpa.hibernate;
+
+import org.hibernate.ejb.HibernatePersistence;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+import javax.persistence.spi.PersistenceProvider;
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+/**
+ * @author dpishchukhin
+ */
+public class Activator implements BundleActivator {
+ private static final String JAVAX_PERSISTENCE_PROVIDER_PROP = "javax.persistence.provider";
+ private ServiceRegistration serviceRegistration;
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ HibernatePersistence persistence = new HibernatePersistence();
+ Dictionary props = new Hashtable();
+ props.put(JAVAX_PERSISTENCE_PROVIDER_PROP, persistence.getClass().getName());
+ serviceRegistration = context.registerService(PersistenceProvider.class.getName(), persistence, props);
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ serviceRegistration.unregister();
+ }
+}
diff --git a/libs/derby/derby-10.7.1.1-patched.jar b/libs/derby/derby-10.7.1.1-patched.jar
new file mode 100644
index 0000000..a6ab72e
Binary files /dev/null and b/libs/derby/derby-10.7.1.1-patched.jar differ
diff --git a/libs/gemini/org.apache.derby_10.5.1.1.jar b/libs/gemini/org.apache.derby_10.5.1.1.jar
new file mode 100644
index 0000000..5cbaf8c
Binary files /dev/null and b/libs/gemini/org.apache.derby_10.5.1.1.jar differ
diff --git a/libs/gemini/org.eclipse.gemini.dbaccess.derby_1.0.0.M1-incubation.jar b/libs/gemini/org.eclipse.gemini.dbaccess.derby_1.0.0.M1-incubation.jar
new file mode 100644
index 0000000..cf87614
Binary files /dev/null and b/libs/gemini/org.eclipse.gemini.dbaccess.derby_1.0.0.M1-incubation.jar differ
diff --git a/libs/gemini/org.eclipse.gemini.jpa.weaving_1.0.0.RC1.jar b/libs/gemini/org.eclipse.gemini.jpa.weaving_1.0.0.RC1.jar
new file mode 100644
index 0000000..5dbf5f3
Binary files /dev/null and b/libs/gemini/org.eclipse.gemini.jpa.weaving_1.0.0.RC1.jar differ
diff --git a/libs/gemini/org.eclipse.gemini.jpa_1.0.0.RC1.jar b/libs/gemini/org.eclipse.gemini.jpa_1.0.0.RC1.jar
new file mode 100644
index 0000000..d836868
Binary files /dev/null and b/libs/gemini/org.eclipse.gemini.jpa_1.0.0.RC1.jar differ
diff --git a/model/pom.xml b/model/pom.xml
new file mode 100644
index 0000000..3095281
--- /dev/null
+++ b/model/pom.xml
@@ -0,0 +1,165 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ model
+ 1.0.0-SNAPSHOT
+ bundle
+ KnowHowLab OSGi JPA tips - model
+ KnowHowLab OSGi JPA tips - model
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ org.apache.geronimo.specs
+ geronimo-jpa_2.0_spec
+ 1.1
+
+
+
+
+ *
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.5
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.4
+ true
+
+
+ org.knowhowlab.tips.jpa.model
+
+ javax.persistence;version="1.1.0";jpa="2.0",org.apache.derby.jdbc,${extra.packages}
+
+ http://code.google.com/p/osgilab/wiki/License
+ jpa.students
+ META-INF/persistence.xml
+ JavaSE-1.6
+ <_removeheaders>Bnd-LastModified, Built-By, Private-Package, Tool,
+ Build-Jdk, Include-Resource, Embed-Dependency
+
+
+
+
+
+
+
+
+
+ openjpa
+
+
+
+ ${basedir}/src/main/resources_openjpa
+
+
+ ${basedir}/src/main/resources
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ compile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+
+ org.apache.openjpa
+ openjpa
+ 2.1.0
+
+
+
+
+ hibernate
+
+ org.hibernate.proxy,javassist.util.proxy
+
+
+
+
+ ${basedir}/src/main/resources_hibernate
+
+
+ ${basedir}/src/main/resources
+
+
+
+
+
+ eclipselink
+
+ org.eclipse.persistence.indirection
+
+
+
+
+ ${basedir}/src/main/resources_eclipselink
+
+
+ ${basedir}/src/main/resources
+
+
+
+
+
+
\ No newline at end of file
diff --git a/model/src/main/java/org/knowhowlab/tips/jpa/model/Group.java b/model/src/main/java/org/knowhowlab/tips/jpa/model/Group.java
new file mode 100644
index 0000000..b367a34
--- /dev/null
+++ b/model/src/main/java/org/knowhowlab/tips/jpa/model/Group.java
@@ -0,0 +1,58 @@
+package org.knowhowlab.tips.jpa.model;
+
+import javax.persistence.*;
+import java.util.List;
+
+/**
+ * @author dpishchukhin
+ */
+@NamedQueries({
+ @NamedQuery(name = Group.GET_GROUPS, query = "SELECT DISTINCT record"
+ + " FROM Group record"
+ + " ORDER BY record.name"),
+ @NamedQuery(name = Group.GET_GROUP_BY_ID, query = "SELECT DISTINCT record"
+ + " FROM Group record"
+ + " WHERE record.id = :groupId")
+})
+@Entity
+@Table(name = "GROUPS")
+public class Group {
+ public static final String GET_GROUPS = "GET_GROUPS";
+ public static final String GET_GROUP_BY_ID = "GET_GROUP_BY_ID";
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private int id;
+
+ private String name;
+
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "group")
+ private List students;
+
+ public Group() {
+ }
+
+ public Group(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public List getStudents() {
+ return students;
+ }
+
+ public void setStudents(List students) {
+ this.students = students;
+ }
+}
diff --git a/model/src/main/java/org/knowhowlab/tips/jpa/model/Student.java b/model/src/main/java/org/knowhowlab/tips/jpa/model/Student.java
new file mode 100644
index 0000000..11202e3
--- /dev/null
+++ b/model/src/main/java/org/knowhowlab/tips/jpa/model/Student.java
@@ -0,0 +1,68 @@
+package org.knowhowlab.tips.jpa.model;
+
+import javax.persistence.*;
+
+/**
+ * @author dpishchukhin
+ */
+@NamedQueries({
+ @NamedQuery(name = Student.GET_STUDENTS, query = "SELECT DISTINCT record"
+ + " FROM Student record"
+ + " ORDER BY record.lastName"),
+ @NamedQuery(name = Student.GET_STUDENT_BY_ID, query = "SELECT DISTINCT record"
+ + " FROM Student record"
+ + " WHERE record.id = :studentId")
+})
+@Entity
+@Table(name = "STUDENTS")
+public class Student {
+ public static final String GET_STUDENTS = "GET_STUDENTS";
+ public static final String GET_STUDENT_BY_ID = "GET_STUDENT_BY_ID";
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private int id;
+
+ private String firstName;
+ private String lastName;
+
+ @ManyToOne(optional = false)
+ private Group group;
+
+ public Student() {
+ }
+
+ public Student(String firstName, String lastName, Group group) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.group = group;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public Group getGroup() {
+ return group;
+ }
+
+ public void setGroup(Group group) {
+ this.group = group;
+ }
+}
diff --git a/model/src/main/resources_eclipselink/META-INF/persistence.xml b/model/src/main/resources_eclipselink/META-INF/persistence.xml
new file mode 100644
index 0000000..1b8a12e
--- /dev/null
+++ b/model/src/main/resources_eclipselink/META-INF/persistence.xml
@@ -0,0 +1,17 @@
+
+
+ org.knowhowlab.tips.jpa.model.Student
+ org.knowhowlab.tips.jpa.model.Group
+ true
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/model/src/main/resources_hibernate/META-INF/persistence.xml b/model/src/main/resources_hibernate/META-INF/persistence.xml
new file mode 100644
index 0000000..39f40cc
--- /dev/null
+++ b/model/src/main/resources_hibernate/META-INF/persistence.xml
@@ -0,0 +1,15 @@
+
+
+ org.knowhowlab.tips.jpa.model.Student
+ org.knowhowlab.tips.jpa.model.Group
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/model/src/main/resources_openjpa/META-INF/persistence.xml b/model/src/main/resources_openjpa/META-INF/persistence.xml
new file mode 100644
index 0000000..95ea874
--- /dev/null
+++ b/model/src/main/resources_openjpa/META-INF/persistence.xml
@@ -0,0 +1,16 @@
+
+
+ org.knowhowlab.tips.jpa.model.Student
+ org.knowhowlab.tips.jpa.model.Group
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom-aries-eclipselink.xml b/pom-aries-eclipselink.xml
new file mode 100644
index 0000000..5d96f80
--- /dev/null
+++ b/pom-aries-eclipselink.xml
@@ -0,0 +1,183 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ tests-aries-eclipselink
+ 1.0.0-SNAPSHOT
+ pom
+
+ KnowHowLab OSGi JPA tips Apache Aries with EclipseLink Tests module
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ equinox
+
+ true
+
+
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ equinox
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/equinox/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/eclipselink/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+ felix
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ felix
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/felix-gogo/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/eclipselink/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+ kf
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ knopflerfish
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/knopflerfish/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ file:///${project.basedir}/libs/derby/derby-10.7.1.1-patched.jar
+
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/eclipselink/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+
+
+ eclipselink repo
+ http://mirror.netcologne.de/eclipse/rt/eclipselink/maven.repo
+
+
+
\ No newline at end of file
diff --git a/pom-aries-hibernate.xml b/pom-aries-hibernate.xml
new file mode 100644
index 0000000..e6405ee
--- /dev/null
+++ b/pom-aries-hibernate.xml
@@ -0,0 +1,174 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ tests-aries-hibernate
+ 1.0.0-SNAPSHOT
+ pom
+
+ KnowHowLab OSGi JPA tips Apache Aries with Hibernate Tests module
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ equinox
+
+ true
+
+
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ equinox
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/equinox/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/hibernate/1.0.0-SNAPSHOT
+
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+ felix
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ felix
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/felix-gogo/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/hibernate/1.0.0-SNAPSHOT
+
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+ kf
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ knopflerfish
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/knopflerfish/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ file:///${project.basedir}/libs/derby/derby-10.7.1.1-patched.jar
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/hibernate/1.0.0-SNAPSHOT
+
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+
+
+ eclipselink repo
+ http://mirror.netcologne.de/eclipse/rt/eclipselink/maven.repo
+
+
+
\ No newline at end of file
diff --git a/pom-aries-openjpa.xml b/pom-aries-openjpa.xml
new file mode 100644
index 0000000..7b0e0e0
--- /dev/null
+++ b/pom-aries-openjpa.xml
@@ -0,0 +1,180 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ tests-aries-openjpa
+ 1.0.0-SNAPSHOT
+ pom
+
+ KnowHowLab OSGi JPA tips Apache Aries with OpenJPA Tests module
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ equinox
+
+ true
+
+
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ equinox
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/equinox/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:commons-pool/commons-pool/1.5.5
+ mvn:commons-dbcp/commons-dbcp/1.4
+ mvn:commons-lang/commons-lang/2.6
+ mvn:org.apache.openjpa/openjpa/2.1.0
+
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+ felix
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ felix
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/felix-gogo/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:commons-pool/commons-pool/1.5.5
+ mvn:commons-dbcp/commons-dbcp/1.4
+ mvn:commons-lang/commons-lang/2.6
+ mvn:org.apache.openjpa/openjpa/2.1.0
+
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+ kf
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ knopflerfish
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/knopflerfish/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ file:///${project.basedir}/libs/derby/derby-10.7.1.1-patched.jar
+
+ mvn:commons-collections/commons-collections/3.2.1
+ mvn:commons-pool/commons-pool/1.5.5
+ mvn:commons-dbcp/commons-dbcp/1.4
+ mvn:commons-lang/commons-lang/2.6
+ mvn:org.apache.openjpa/openjpa/2.1.0
+
+ mvn:org.slf4j/slf4j-api/1.6.1
+ mvn:org.slf4j/slf4j-simple/1.6.1@nostart
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_3
+ mvn:org.apache.aries/org.apache.aries.util/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/0.3
+ mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/0.3
+ mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/0.3
+
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+
+
+ eclipselink repo
+ http://mirror.netcologne.de/eclipse/rt/eclipselink/maven.repo
+
+
+
\ No newline at end of file
diff --git a/pom-eclipselink.xml b/pom-eclipselink.xml
new file mode 100644
index 0000000..a6384ee
--- /dev/null
+++ b/pom-eclipselink.xml
@@ -0,0 +1,149 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ tests-eclipselink
+ 1.0.0-SNAPSHOT
+ pom
+
+ KnowHowLab OSGi JPA tips EclipseLink Tests module
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ equinox
+
+ true
+
+
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ equinox
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/equinox/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.osgi/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+ felix
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ felix
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/felix-gogo/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.apache.derby/derby/10.7.1.1
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.osgi/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+ kf
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ knopflerfish
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/knopflerfish/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ file:///${project.basedir}/libs/derby/derby-10.7.1.1-patched.jar
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.osgi/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+
+ eclipselink repo
+ http://mirror.netcologne.de/eclipse/rt/eclipselink/maven.repo
+
+
+
\ No newline at end of file
diff --git a/pom-gemini.xml b/pom-gemini.xml
new file mode 100644
index 0000000..4984ff1
--- /dev/null
+++ b/pom-gemini.xml
@@ -0,0 +1,156 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips.jpa
+ tests-gemini
+ 1.0.0-SNAPSHOT
+ pom
+
+ KnowHowLab OSGi JPA tips Eclipse Gemini Tests module
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ equinox
+
+ true
+
+
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ equinox
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/equinox/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.jpa.weaving_1.0.0.RC1.jar@nostart
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.jpa_1.0.0.RC1.jar
+ file:///${project.basedir}/libs/gemini/org.apache.derby_10.5.1.1.jar
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.dbaccess.derby_1.0.0.M1-incubation.jar
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+ felix
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ felix
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/felix-gogo/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.jpa.weaving_1.0.0.RC1.jar@nostart
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.jpa_1.0.0.RC1.jar
+ file:///${project.basedir}/libs/gemini/org.apache.derby_10.5.1.1.jar
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.dbaccess.derby_1.0.0.M1-incubation.jar
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+ kf
+
+ pax:provision
+
+
+ org.ops4j
+ maven-pax-plugin
+ 1.4
+
+ knopflerfish
+
+ --log=error
+ --workingDirectory=target/runner
+ --vmOptions=-Dderby.system.home=.
+
+ mvn:org.knowhowlab.osgi.shell/knopflerfish/1.0.1
+ mvn:org.osgi/org.osgi.compendium/4.2.0
+ mvn:org.osgi/org.osgi.enterprise/4.2.0
+ mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
+ mvn:org.eclipse.persistence/org.eclipse.persistence.jpa/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.core/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.antlr/2.2.0
+ mvn:org.eclipse.persistence/org.eclipse.persistence.asm/2.2.0
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.jpa.weaving_1.0.0.RC1.jar@nostart
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.jpa_1.0.0.RC1.jar
+ file:///${project.basedir}/libs/gemini/org.apache.derby_10.5.1.1.jar
+ file:///${project.basedir}/libs/gemini/org.eclipse.gemini.dbaccess.derby_1.0.0.M1-incubation.jar
+ mvn:org.knowhowlab.tips.jpa/model/1.0.0-SNAPSHOT
+ mvn:org.knowhowlab.tips.jpa/client/1.0.0-SNAPSHOT
+
+
+
+
+
+
+
+
+
+
+ eclipselink repo
+ http://mirror.netcologne.de/eclipse/rt/eclipselink/maven.repo
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a240d55
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,40 @@
+
+
+ 4.0.0
+
+ org.knowhowlab.tips
+ jpa
+ 1.0.0
+ pom
+ KnowHowLab OSGi JPA tips
+ KnowHowLab OSGi JPA tips
+ http://knowhowlab.org
+
+
+
+ Dmytro Pishchukhin
+ GMT+1
+
+
+
+
+ Know-How Lab
+ http://knowhowlab.org
+
+
+
+
+ Apache License 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ client
+ model
+ hibernate
+ eclipselink
+
+
\ No newline at end of file