diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/datasource-h2.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/datasource-h2.xml new file mode 100644 index 0000000000..3bf738fd7a --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/datasource-h2.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/.gitignore b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/.gitignore @@ -0,0 +1 @@ +/target diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/features.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/features.xml new file mode 100644 index 0000000000..8dfbc793b6 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/features.xml @@ -0,0 +1,81 @@ + + + + + + + + aries.transaction.recoverable = true + aries.transaction.timeout = 600 + aries.transaction.howl.logFileDir = /tmp/karaf/txlog + aries.transaction.howl.maxLogFiles = 2 + aries.transaction.howl.maxBlocksPerFile = 512 + aries.transaction.howl.bufferSizeKBytes = 4 + + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/1.0.0 + mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/1.0.1 + + + mvn:org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final + + mvn:org.apache.aries/org.apache.aries.util/1.1.1-SNAPSHOT + mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/1.0.1-SNAPSHOT + mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint.aries/1.0.2-SNAPSHOT + mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/1.0.1-SNAPSHOT + mvn:org.apache.aries.jpa/org.apache.aries.jpa.container.context/1.0.2-SNAPSHOT + + + mvn:org.apache.aries/org.apache.aries.util/1.0.0 + mvn:org.apache.aries.jndi/org.apache.aries.jndi.api/1.0.0 + mvn:org.apache.aries.jndi/org.apache.aries.jndi.core/1.0.0 + mvn:org.apache.aries.jndi/org.apache.aries.jndi.rmi/1.0.0 + mvn:org.apache.aries.jndi/org.apache.aries.jndi.url/1.0.0 + mvn:org.apache.aries.jndi/org.apache.aries.jndi.legacy.support/1.0.0 + + + mvn:commons-collections/commons-collections/3.2.1 + mvn:commons-pool/commons-pool/1.5.4 + mvn:commons-dbcp/commons-dbcp/1.4 + mvn:commons-lang/commons-lang/2.6 + wrap:mvn:net.sourceforge.serp/serp/1.13.1 + + mvn:com.h2database/h2/1.3.170 + blueprint:file:/[PATH]/datasource-h2.xml + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5 + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5 + + + wrap:mvn:org.jboss/jandex/1.1.0.Final + + mvn:com.fasterxml/classmate/0.8.0 + mvn:org.apache.logging.log4j/log4j-api/2.0 + mvn:log4j/log4j/1.2.17 + mvn:org.jboss.logging/jboss-logging/3.2.1.Final + mvn:org.javassist/javassist/3.18.1-GA + + mvn:org.hibernate.common/hibernate-commons-annotations/4.0.5.Final + + mvn:org.hibernate/hibernate-core/$version + mvn:org.hibernate/hibernate-entitymanager/$version + + + mvn:org.hibernate.osgi/managed-jpa/1.0.0 + + mvn:org.hibernate/hibernate-osgi/$version + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/pom.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/pom.xml new file mode 100644 index 0000000000..55ccacd3c9 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + org.hibernate.osgi + managed-jpa + 1.0.0 + bundle + + + + org.hibernate.javax.persistence + hibernate-jpa-2.1-api + 1.0.0.Final + + + org.osgi + org.osgi.core + 4.3.1 + + + org.osgi + org.osgi.enterprise + 4.2.0 + + + org.apache.karaf.shell + org.apache.karaf.shell.console + 2.3.0 + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.hibernate.osgi.managed-jpa + managed-jpa + 1.0.0 + + org.hibernate.osgitest, + org.hibernate.osgitest.entity + + + org.apache.felix.service.command, + org.apache.felix.gogo.commands, + org.apache.karaf.shell.console, + org.apache.karaf.shell.commands, + javax.persistence;version="[1.0.0,2.1.0]", + + org.hibernate.proxy, + javassist.util.proxy, + * + + META-INF/persistence.xml + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointService.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointService.java new file mode 100644 index 0000000000..bdeaace115 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointService.java @@ -0,0 +1,37 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.List; + +import org.hibernate.osgitest.entity.DataPoint; + +/** + * @author Brett Meyer + */ +public interface DataPointService { + + public void add(DataPoint dp); + + public List getAll(); + + public void deleteAll(); +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java new file mode 100644 index 0000000000..f324889603 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java @@ -0,0 +1,58 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.List; + +import javax.persistence.EntityManager; + +import org.hibernate.osgitest.entity.DataPoint; + +/** + * @author Brett Meyer + */ +public class DataPointServiceImpl implements DataPointService { + + private EntityManager entityManager; + + public void add(DataPoint dp) { + entityManager.persist( dp ); + entityManager.flush(); + } + + public List getAll() { + return entityManager.createQuery( "select d from DataPoint d", DataPoint.class ).getResultList(); + } + + public void deleteAll() { + entityManager.createQuery( "delete from DataPoint" ).executeUpdate(); + entityManager.flush(); + } + + public EntityManager getEntityManager() { + return entityManager; + } + + public void setEntityManager(EntityManager entityManager) { + this.entityManager = entityManager; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/AddCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/AddCommand.java new file mode 100644 index 0000000000..9e9844c331 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/AddCommand.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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "add") +public class AddCommand implements Action { + @Argument(index=0, name="Name", required=true, description="Name", multiValued=false) + String name; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = new DataPoint(); + dp.setName( name ); + dpService.add( dp ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java new file mode 100644 index 0000000000..d6c4ccf676 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java @@ -0,0 +1,37 @@ +/* + * 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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; + +@Command(scope = "dp", name = "deleteAll") +public class DeleteAllCommand implements Action { +private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + dpService.deleteAll(); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java new file mode 100644 index 0000000000..ebdac60ea2 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java @@ -0,0 +1,43 @@ +/* + * 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.hibernate.osgitest.command; + +import java.util.List; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "getAll") +public class GetAllCommand implements Action { + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + List dps = dpService.getAll(); + for (DataPoint dp : dps) { + System.out.println(dp.getId() + ", " + dp.getName()); + } + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/entity/DataPoint.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/entity/DataPoint.java new file mode 100644 index 0000000000..2a566d8829 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/entity/DataPoint.java @@ -0,0 +1,53 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest.entity; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +/** + * @author Brett Meyer + */ +@Entity +public class DataPoint { + @Id + @GeneratedValue + private long id; + + private String name; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/resources/META-INF/persistence.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000000..77555cb42c --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,21 @@ + + + + + osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/h2ds) + + + + + + + + + \ No newline at end of file diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 0000000000..2436aa7467 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/pom.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/pom.xml new file mode 100644 index 0000000000..c1f714da9b --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/pom.xml @@ -0,0 +1,35 @@ + + + + + 4.0.0 + + + org.hibernate.tutorials + hibernate-tutorials + $version + ../pom.xml + + + hibernate-tutorial-osgi + Hibernate OSGI Tutorials + Hibernate tutoriasl illustrating basic set up and use of OSGI + pom + + + + true + + + + managed-jpa + unmanaged-jpa + unmanaged-native + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/.gitignore b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/.gitignore @@ -0,0 +1 @@ +/target diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/features.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/features.xml new file mode 100644 index 0000000000..0a2894d0dc --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/features.xml @@ -0,0 +1,47 @@ + + + + + + + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + + + mvn:org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final + + + mvn:commons-collections/commons-collections/3.2.1 + mvn:commons-pool/commons-pool/1.5.4 + mvn:commons-dbcp/commons-dbcp/1.4 + mvn:commons-lang/commons-lang/2.6 + wrap:mvn:net.sourceforge.serp/serp/1.13.1 + + mvn:com.h2database/h2/1.3.170 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5 + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5 + + + wrap:mvn:org.jboss/jandex/1.1.0.Final + + mvn:com.fasterxml/classmate/0.8.0 + mvn:org.apache.logging.log4j/log4j-api/2.0 + mvn:log4j/log4j/1.2.17 + mvn:org.jboss.logging/jboss-logging/3.2.1.Final + mvn:org.javassist/javassist/3.18.1-GA + + mvn:org.hibernate.common/hibernate-commons-annotations/4.0.5.Final + + mvn:org.hibernate/hibernate-core/$version + mvn:org.hibernate/hibernate-entitymanager/$version + mvn:org.hibernate/hibernate-osgi/$version + + mvn:org.hibernate.osgi/unmanaged-jpa/1.0.0 + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/pom.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/pom.xml new file mode 100644 index 0000000000..47be9d48d6 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/pom.xml @@ -0,0 +1,81 @@ + + + 4.0.0 + org.hibernate.osgi + unmanaged-jpa + 1.0.0 + bundle + + + + org.hibernate.javax.persistence + hibernate-jpa-2.1-api + 1.0.0.Final + + + org.osgi + org.osgi.core + 4.3.1 + + + org.osgi + org.osgi.enterprise + 4.2.0 + + + org.apache.karaf.shell + org.apache.karaf.shell.console + 2.3.0 + + + org.hibernate + hibernate-entitymanager + $version + + + com.h2database + h2 + 1.3.170 + + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.hibernate.osgi.unmanaged-jpa + unmanaged-jpa + 1.0.0 + + org.hibernate.osgitest, + org.hibernate.osgitest.entity + + + org.apache.felix.service.command, + org.apache.felix.gogo.commands, + org.apache.karaf.shell.console, + org.apache.karaf.shell.commands, + org.h2, + javax.persistence;version="[1.0.0,2.1.0]", + + org.hibernate.proxy, + javassist.util.proxy, + * + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/DataPointService.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/DataPointService.java new file mode 100644 index 0000000000..de8c960c1f --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/DataPointService.java @@ -0,0 +1,41 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.List; + +import org.hibernate.osgitest.entity.DataPoint; + +/** + * @author Brett Meyer + */ +public interface DataPointService { + + public void add(DataPoint dp); + + public void update(DataPoint dp); + + public DataPoint get(long id); + + public List getAll(); + + public void deleteAll(); +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java new file mode 100644 index 0000000000..dba3609e97 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java @@ -0,0 +1,78 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.List; + +import javax.persistence.EntityManager; + +import org.hibernate.osgitest.entity.DataPoint; + +/** + * @author Brett Meyer + */ +public class DataPointServiceImpl implements DataPointService { + + private HibernateUtil hibernateUtil = new HibernateUtil(); + + public void add(DataPoint dp) { + EntityManager em = hibernateUtil.getEntityManager(); + em.getTransaction().begin(); + em.persist( dp ); + em.getTransaction().commit(); + em.close(); + } + + public void update(DataPoint dp) { + EntityManager em = hibernateUtil.getEntityManager(); + em.getTransaction().begin(); + em.merge( dp ); + em.getTransaction().commit(); + em.close(); + } + + public DataPoint get(long id) { + EntityManager em = hibernateUtil.getEntityManager(); + em.getTransaction().begin(); + DataPoint dp = (DataPoint) em.createQuery( "from DataPoint dp where dp.id=" + id ).getSingleResult(); + em.getTransaction().commit(); + em.close(); + return dp; + } + + public List getAll() { + EntityManager em = hibernateUtil.getEntityManager(); + em.getTransaction().begin(); + List list = em.createQuery( "from DataPoint" ).getResultList(); + em.getTransaction().commit(); + em.close(); + return list; + } + + public void deleteAll() { + EntityManager em = hibernateUtil.getEntityManager(); + em.getTransaction().begin(); + em.createQuery( "delete from DataPoint" ).executeUpdate(); + em.getTransaction().commit(); + em.close(); + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/HibernateUtil.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/HibernateUtil.java new file mode 100644 index 0000000000..0927f15f7d --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/HibernateUtil.java @@ -0,0 +1,57 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.spi.PersistenceProvider; + +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.ServiceReference; + +/** + * @author Brett Meyer + */ + +public class HibernateUtil { + + private EntityManagerFactory emf; + + public EntityManager getEntityManager() { + return getEntityManagerFactory().createEntityManager(); + } + + private EntityManagerFactory getEntityManagerFactory() { + if ( emf == null ) { + Bundle thisBundle = FrameworkUtil.getBundle( HibernateUtil.class ); + // Could get this by wiring up OsgiTestBundleActivator as well. + BundleContext context = thisBundle.getBundleContext(); + + ServiceReference serviceReference = context.getServiceReference( PersistenceProvider.class.getName() ); + PersistenceProvider persistenceProvider = (PersistenceProvider) context.getService( serviceReference ); + + emf = persistenceProvider.createEntityManagerFactory( "unmanaged-jpa", null ); + } + return emf; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestIntegrator.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestIntegrator.java new file mode 100644 index 0000000000..f4436346cc --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestIntegrator.java @@ -0,0 +1,45 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import org.hibernate.boot.Metadata; +import org.hibernate.engine.spi.SessionFactoryImplementor; +import org.hibernate.integrator.spi.Integrator; +import org.hibernate.service.spi.SessionFactoryServiceRegistry; + + +/** + * @author Brett Meyer + */ +public class TestIntegrator implements Integrator { + + public void integrate( + Metadata metadata, + SessionFactoryImplementor sessionFactory, + SessionFactoryServiceRegistry serviceRegistry) { + System.out.println("Integrator#integrate"); + } + + public void disintegrate(SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { + System.out.println("Integrator#disintegrate"); + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestStrategyRegistrationProvider.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestStrategyRegistrationProvider.java new file mode 100644 index 0000000000..f7ad26f593 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestStrategyRegistrationProvider.java @@ -0,0 +1,37 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.Collections; + +import org.hibernate.boot.registry.selector.StrategyRegistration; +import org.hibernate.boot.registry.selector.StrategyRegistrationProvider; + +/** + * @author Brett Meyer + */ +public class TestStrategyRegistrationProvider implements StrategyRegistrationProvider { + + public Iterable getStrategyRegistrations() { + System.out.println("StrategyRegistrationProvider#getStrategyRegistrations"); + return Collections.EMPTY_LIST; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestTypeContributor.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestTypeContributor.java new file mode 100644 index 0000000000..0da11cb60a --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/TestTypeContributor.java @@ -0,0 +1,37 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import org.hibernate.boot.model.TypeContributions; +import org.hibernate.boot.model.TypeContributor; +import org.hibernate.service.ServiceRegistry; + + +/** + * @author Brett Meyer + */ +public class TestTypeContributor implements TypeContributor { + + public void contribute(TypeContributions typeContributions, ServiceRegistry serviceRegistry) { + System.out.println("TypeContributor#contribute"); + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/AddCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/AddCommand.java new file mode 100644 index 0000000000..c1b906c012 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/AddCommand.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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "addJPA") +public class AddCommand implements Action { + @Argument(index=0, name="Name", required=true, description="Name", multiValued=false) + String name; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = new DataPoint(); + dp.setName( name ); + dpService.add( dp ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java new file mode 100644 index 0000000000..0d404ae1a1 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java @@ -0,0 +1,37 @@ +/* + * 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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; + +@Command(scope = "dp", name = "deleteAllJPA") +public class DeleteAllCommand implements Action { +private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + dpService.deleteAll(); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java new file mode 100644 index 0000000000..6873e46303 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java @@ -0,0 +1,43 @@ +/* + * 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.hibernate.osgitest.command; + +import java.util.List; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "getAllJPA") +public class GetAllCommand implements Action { + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + List dps = dpService.getAll(); + for (DataPoint dp : dps) { + System.out.println(dp.getId() + ", " + dp.getName()); + } + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/UpdateCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/UpdateCommand.java new file mode 100644 index 0000000000..5de8983dd9 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/command/UpdateCommand.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 org.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "updateJPA") +public class UpdateCommand implements Action { + @Argument(index=0, name="Id", required=true, description="Id", multiValued=false) + String id; + + @Argument(index=1, name="Name", required=true, description="Name", multiValued=false) + String name; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = dpService.get( Long.valueOf( id ) ); + dp.setName( name ); + dpService.update( dp ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/entity/DataPoint.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/entity/DataPoint.java new file mode 100644 index 0000000000..2a566d8829 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/java/org/hibernate/osgitest/entity/DataPoint.java @@ -0,0 +1,53 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest.entity; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +/** + * @author Brett Meyer + */ +@Entity +public class DataPoint { + @Id + @GeneratedValue + private long id; + + private String name; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/resources/META-INF/persistence.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000000..b0ebfe7053 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,24 @@ + + + + + org.hibernate.osgitest.entity.DataPoint + true + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 0000000000..283ee1073a --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/.gitignore b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/.gitignore @@ -0,0 +1 @@ +/target diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/features.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/features.xml new file mode 100644 index 0000000000..7d64858033 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/features.xml @@ -0,0 +1,79 @@ + + + + + + + + + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + + + mvn:org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final + + + mvn:commons-collections/commons-collections/3.2.1 + mvn:commons-pool/commons-pool/1.5.4 + mvn:commons-dbcp/commons-dbcp/1.4 + mvn:commons-lang/commons-lang/2.6 + wrap:mvn:net.sourceforge.serp/serp/1.13.1 + + mvn:com.h2database/h2/1.3.170 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5 + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5 + + + wrap:mvn:org.jboss/jandex/1.1.0.Final + + + + + + + + mvn:com.fasterxml/classmate/0.8.0 + mvn:org.apache.logging.log4j/log4j-api/2.0 + mvn:log4j/log4j/1.2.17 + mvn:org.jboss.logging/jboss-logging/3.2.1.Final + mvn:org.javassist/javassist/3.18.1-GA + + mvn:org.hibernate.common/hibernate-commons-annotations/4.0.5.Final + + + + + + + + + + + + mvn:org.hibernate/hibernate-core/$version + + mvn:org.hibernate/hibernate-entitymanager/$version + mvn:org.hibernate/hibernate-envers/$version + + + + + mvn:org.hibernate/hibernate-osgi/$version + + mvn:org.hibernate.osgi/unmanaged-native/1.0.0 + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/pom.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/pom.xml new file mode 100644 index 0000000000..06cac74b0d --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/pom.xml @@ -0,0 +1,89 @@ + + + 4.0.0 + org.hibernate.osgi + unmanaged-native + 1.0.0 + bundle + + + + org.hibernate.javax.persistence + hibernate-jpa-2.1-api + 1.0.0.Final + + + org.osgi + org.osgi.core + 4.3.1 + + + org.osgi + org.osgi.enterprise + 4.2.0 + + + org.apache.karaf.shell + org.apache.karaf.shell.console + 2.3.0 + + + org.hibernate + hibernate-core + $version + + + org.hibernate + hibernate-envers + $version + + + com.h2database + h2 + 1.3.170 + + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.hibernate.osgi.unmanaged-native + unmanaged-native + 1.0.0 + + org.hibernate.osgitest, + org.hibernate.osgitest.entity + + + org.apache.felix.service.command, + org.apache.felix.gogo.commands, + org.apache.karaf.shell.console, + org.apache.karaf.shell.commands, + org.h2, + org.hibernate, + org.hibernate.cfg, + org.hibernate.service, + javax.persistence;version="[1.0.0,2.1.0]", + + org.hibernate.proxy, + javassist.util.proxy, + * + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/DataPointService.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/DataPointService.java new file mode 100644 index 0000000000..12fb79a95a --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/DataPointService.java @@ -0,0 +1,47 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.List; +import java.util.Map; + +import org.hibernate.envers.DefaultRevisionEntity; +import org.hibernate.osgitest.entity.DataPoint; + +/** + * @author Brett Meyer + */ +public interface DataPointService { + + public void add(DataPoint dp); + + public void update(DataPoint dp); + + public DataPoint get(long id); + + public DataPoint load(long id); + + public List getAll(); + + public Map getRevisions(long id); + + public void deleteAll(); +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java new file mode 100644 index 0000000000..a8f6f72023 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java @@ -0,0 +1,103 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; +import org.hibernate.envers.AuditReader; +import org.hibernate.envers.AuditReaderFactory; +import org.hibernate.envers.DefaultRevisionEntity; +import org.hibernate.osgitest.entity.DataPoint; + +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +/** + * @author Brett Meyer + */ +public class DataPointServiceImpl implements DataPointService { + + private HibernateUtil hibernateUtil = new HibernateUtil(); + + public void add(DataPoint dp) { + Session s = hibernateUtil.getSession(); + s.getTransaction().begin(); + s.persist( dp ); + s.getTransaction().commit(); + s.close(); + } + + public void update(DataPoint dp) { + Session s = hibernateUtil.getSession(); + s.getTransaction().begin(); + s.update( dp ); + s.getTransaction().commit(); + s.close(); + } + + public DataPoint get(long id) { + Session s = hibernateUtil.getSession(); + s.getTransaction().begin(); + DataPoint dp = (DataPoint) s.createCriteria( DataPoint.class ).add( + Restrictions.eq( "id", id ) ).uniqueResult(); + s.getTransaction().commit(); + s.close(); + return dp; + } + + // Test lazy loading (mainly to make sure the proxy classes work in OSGi) + public DataPoint load(long id) { + Session s = hibernateUtil.getSession(); + s.getTransaction().begin(); + DataPoint dp = (DataPoint) s.load( DataPoint.class, new Long(id) ); + // initialize + dp.getName(); + s.getTransaction().commit(); + s.close(); + return dp; + } + + public List getAll() { + Session s = hibernateUtil.getSession(); + s.getTransaction().begin(); + List list = s.createQuery( "from DataPoint" ).list(); + s.getTransaction().commit(); + s.close(); + return list; + } + + public Map getRevisions(long id) { + Session s = hibernateUtil.getSession(); + AuditReader reader = AuditReaderFactory.get(s); + List revisionNums = reader.getRevisions( DataPoint.class, id ); + return reader.findRevisions( DefaultRevisionEntity.class, new HashSet(revisionNums) ); + } + + public void deleteAll() { + Session s = hibernateUtil.getSession(); + s.getTransaction().begin(); + s.createQuery( "delete from DataPoint" ).executeUpdate(); + s.getTransaction().commit(); + s.close(); + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/HibernateUtil.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/HibernateUtil.java new file mode 100644 index 0000000000..15fb4c7db1 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/HibernateUtil.java @@ -0,0 +1,53 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.ServiceReference; + +/** + * @author Brett Meyer + */ + +public class HibernateUtil { + + private SessionFactory sf; + + public Session getSession() { + return getSessionFactory().openSession(); + } + + private SessionFactory getSessionFactory() { + if ( sf == null ) { + Bundle thisBundle = FrameworkUtil.getBundle( HibernateUtil.class ); + // Could get this by wiring up OsgiTestBundleActivator as well. + BundleContext context = thisBundle.getBundleContext(); + + ServiceReference sr = context.getServiceReference( SessionFactory.class.getName() ); + sf = (SessionFactory) context.getService( sr ); + } + return sf; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestIntegrator.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestIntegrator.java new file mode 100644 index 0000000000..95b2e631db --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestIntegrator.java @@ -0,0 +1,45 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import org.hibernate.boot.Metadata; +import org.hibernate.engine.spi.SessionFactoryImplementor; +import org.hibernate.integrator.spi.Integrator; +import org.hibernate.service.spi.SessionFactoryServiceRegistry; + + +/** + * @author Brett Meyer + */ +public class TestIntegrator implements Integrator { + + public void integrate( + Metadata metadata, + SessionFactoryImplementor sessionFactory, + SessionFactoryServiceRegistry serviceRegistry) { + System.out.println("Integrator#integrate"); + } + + public void disintegrate(SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { + System.out.println("Integrator#disintegrate"); + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestStrategyRegistrationProvider.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestStrategyRegistrationProvider.java new file mode 100644 index 0000000000..f7ad26f593 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestStrategyRegistrationProvider.java @@ -0,0 +1,37 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import java.util.Collections; + +import org.hibernate.boot.registry.selector.StrategyRegistration; +import org.hibernate.boot.registry.selector.StrategyRegistrationProvider; + +/** + * @author Brett Meyer + */ +public class TestStrategyRegistrationProvider implements StrategyRegistrationProvider { + + public Iterable getStrategyRegistrations() { + System.out.println("StrategyRegistrationProvider#getStrategyRegistrations"); + return Collections.EMPTY_LIST; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestTypeContributor.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestTypeContributor.java new file mode 100644 index 0000000000..87a8384176 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/TestTypeContributor.java @@ -0,0 +1,37 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest; + +import org.hibernate.boot.model.TypeContributions; +import org.hibernate.boot.model.TypeContributor; +import org.hibernate.service.ServiceRegistry; + + +/** + * @author Brett Meyer + */ +public class TestTypeContributor implements TypeContributor { + + public void contribute(TypeContributions typeContributions, ServiceRegistry serviceRegistry) { + System.out.println("TypeContributor#contribute"); + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/AddCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/AddCommand.java new file mode 100644 index 0000000000..9e9844c331 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/AddCommand.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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "add") +public class AddCommand implements Action { + @Argument(index=0, name="Name", required=true, description="Name", multiValued=false) + String name; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = new DataPoint(); + dp.setName( name ); + dpService.add( dp ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java new file mode 100644 index 0000000000..d6c4ccf676 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/DeleteAllCommand.java @@ -0,0 +1,37 @@ +/* + * 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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; + +@Command(scope = "dp", name = "deleteAll") +public class DeleteAllCommand implements Action { +private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + dpService.deleteAll(); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java new file mode 100644 index 0000000000..ebdac60ea2 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetAllCommand.java @@ -0,0 +1,43 @@ +/* + * 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.hibernate.osgitest.command; + +import java.util.List; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "getAll") +public class GetAllCommand implements Action { + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + List dps = dpService.getAll(); + for (DataPoint dp : dps) { + System.out.println(dp.getId() + ", " + dp.getName()); + } + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetCommand.java new file mode 100644 index 0000000000..0597d709dd --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetCommand.java @@ -0,0 +1,43 @@ +/* + * 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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "get") +public class GetCommand implements Action { + @Argument(index = 0, name = "Id", required = true, description = "Id", multiValued = false) + String id; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = dpService.get( Long.valueOf( id ) ); + System.out.println( dp.getId() + ", " + dp.getName() ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetRevisionsCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetRevisionsCommand.java new file mode 100644 index 0000000000..b4573f6200 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/GetRevisionsCommand.java @@ -0,0 +1,48 @@ +/* + * 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.hibernate.osgitest.command; + +import java.util.Map; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.envers.DefaultRevisionEntity; +import org.hibernate.osgitest.DataPointService; + +@Command(scope = "dp", name = "getRevisions") +public class GetRevisionsCommand implements Action { + @Argument(index=0, name="Id", required=true, description="Id", multiValued=false) + String id; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + Map revisions = dpService.getRevisions(Long.valueOf( id )); + for (Number revisionNum : revisions.keySet()) { + DefaultRevisionEntity dre = revisions.get( revisionNum ); + System.out.println(revisionNum + ": " + dre.getId() + ", " + dre.getTimestamp()); + } + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/LoadCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/LoadCommand.java new file mode 100644 index 0000000000..3451a986ba --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/LoadCommand.java @@ -0,0 +1,43 @@ +/* + * 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.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "load") +public class LoadCommand implements Action { + @Argument(index = 0, name = "Id", required = true, description = "Id", multiValued = false) + String id; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = dpService.load( Long.valueOf( id ) ); + System.out.println( dp.getId() + ", " + dp.getName() ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/UpdateCommand.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/UpdateCommand.java new file mode 100644 index 0000000000..f694967444 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/command/UpdateCommand.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 org.hibernate.osgitest.command; + +import org.apache.felix.gogo.commands.Action; +import org.apache.felix.gogo.commands.Argument; +import org.apache.felix.gogo.commands.Command; +import org.apache.felix.service.command.CommandSession; +import org.hibernate.osgitest.DataPointService; +import org.hibernate.osgitest.entity.DataPoint; + +@Command(scope = "dp", name = "update") +public class UpdateCommand implements Action { + @Argument(index=0, name="Id", required=true, description="Id", multiValued=false) + String id; + + @Argument(index=1, name="Name", required=true, description="Name", multiValued=false) + String name; + + private DataPointService dpService; + + public void setDpService(DataPointService dpService) { + this.dpService = dpService; + } + + public Object execute(CommandSession session) throws Exception { + DataPoint dp = dpService.get( Long.valueOf( id ) ); + dp.setName( name ); + dpService.update( dp ); + return null; + } + +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/entity/DataPoint.java b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/entity/DataPoint.java new file mode 100644 index 0000000000..2e5ef72422 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/java/org/hibernate/osgitest/entity/DataPoint.java @@ -0,0 +1,58 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * JBoss, Home of Professional Open Source + * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +package org.hibernate.osgitest.entity; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +import org.hibernate.envers.Audited; + +/** + * @author Brett Meyer + */ +@Entity +@Audited +public class DataPoint implements Serializable { + @Id + @GeneratedValue + private long id; + + private String name; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 0000000000..f62626a14d --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/ehcache.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/ehcache.xml new file mode 100644 index 0000000000..52d198d65f --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/ehcache.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + --> + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/hibernate.cfg.xml b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000000..7f9f2380c9 --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,52 @@ + + + + + + + org.h2.Driver + jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE + sa + + org.hibernate.dialect.H2Dialect + create-drop + + + + + + + + + + + + + diff --git a/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/pool-one.properties b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/pool-one.properties new file mode 100644 index 0000000000..7e1c4cf1ba --- /dev/null +++ b/documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/src/main/resources/pool-one.properties @@ -0,0 +1,13 @@ +# +# Hibernate, Relational Persistence for Idiomatic Java +# +# License: GNU Lesser General Public License (LGPL), version 2.1 or later. +# See the lgpl.txt file in the root directory or . +# +jdbc-0.proxool.alias=pool-one +jdbc-0.proxool.driver-url=jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE +jdbc-0.proxool.driver-class=org.h2.Driver +jdbc-0.user=sa +jdbc-0.password= +jdbc-0.proxool.maximum-connection-count=2 +jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE \ No newline at end of file