HHH-10361 - Child module osgi does not exist in hibernate-tutorials
This commit is contained in:
parent
d8865d22ac
commit
1f14ec555c
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
First install the H2 driver using:
|
||||||
|
> install -s mvn:com.h2database/h2/1.3.163
|
||||||
|
|
||||||
|
Then copy this file to the deploy folder
|
||||||
|
-->
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
|
||||||
|
|
||||||
|
<bean id="dataSource" class="org.h2.jdbcx.JdbcDataSource">
|
||||||
|
<property name="URL" value="jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE"/>
|
||||||
|
<property name="user" value="sa"/>
|
||||||
|
<property name="password" value=""/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<service interface="javax.sql.DataSource" ref="dataSource">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="osgi.jndi.service.name" value="jdbc/h2ds"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
</blueprint>
|
1
documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/.gitignore
vendored
Normal file
1
documentation/src/main/asciidoc/quickstart/tutorials/osgi/managed-jpa/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
|
@ -0,0 +1,81 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<features>
|
||||||
|
<feature name="hibernate-test">
|
||||||
|
|
||||||
|
<!-- JTA -->
|
||||||
|
<config name="org.apache.aries.transaction">
|
||||||
|
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
|
||||||
|
</config>
|
||||||
|
<bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/1.0.0</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/1.0.1</bundle>
|
||||||
|
|
||||||
|
<!-- JPA -->
|
||||||
|
<bundle start-level="30">mvn:org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final</bundle>
|
||||||
|
<!-- No container currently supports JPA 2.1. Clone and build Aries from the following fork (upgrades to
|
||||||
|
JPA 2.1). Aries should be upgrading as soon as the spec is out.
|
||||||
|
https://github.com/brmeyer/aries/tree/jpa21 -->
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries/org.apache.aries.util/1.1.1-SNAPSHOT</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/1.0.1-SNAPSHOT</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint.aries/1.0.2-SNAPSHOT</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/1.0.1-SNAPSHOT</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jpa/org.apache.aries.jpa.container.context/1.0.2-SNAPSHOT</bundle>
|
||||||
|
|
||||||
|
<!-- JNDI -->
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries/org.apache.aries.util/1.0.0</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.api/1.0.0</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.core/1.0.0</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.rmi/1.0.0</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.url/1.0.0</bundle>
|
||||||
|
<bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.legacy.support/1.0.0</bundle>
|
||||||
|
|
||||||
|
<!-- Taken from Karaf-Tutorial -->
|
||||||
|
<bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
|
||||||
|
<bundle>mvn:commons-pool/commons-pool/1.5.4</bundle>
|
||||||
|
<bundle>mvn:commons-dbcp/commons-dbcp/1.4</bundle>
|
||||||
|
<bundle>mvn:commons-lang/commons-lang/2.6</bundle>
|
||||||
|
<bundle>wrap:mvn:net.sourceforge.serp/serp/1.13.1</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:com.h2database/h2/1.3.170</bundle>
|
||||||
|
<bundle>blueprint:file:/[PATH]/datasource-h2.xml</bundle>
|
||||||
|
|
||||||
|
<!-- These do not natively support OSGi, so using 3rd party bundles. -->
|
||||||
|
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5</bundle>
|
||||||
|
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5</bundle>
|
||||||
|
|
||||||
|
<!-- These do not natively support OSGi, so wrap with BND. -->
|
||||||
|
<bundle>wrap:mvn:org.jboss/jandex/1.1.0.Final</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:com.fasterxml/classmate/0.8.0</bundle>
|
||||||
|
<bundle>mvn:org.apache.logging.log4j/log4j-api/2.0</bundle>
|
||||||
|
<bundle>mvn:log4j/log4j/1.2.17</bundle>
|
||||||
|
<bundle>mvn:org.jboss.logging/jboss-logging/3.2.1.Final</bundle>
|
||||||
|
<bundle>mvn:org.javassist/javassist/3.18.1-GA</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate.common/hibernate-commons-annotations/4.0.5.Final</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-core/$version</bundle>
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-entitymanager/$version</bundle>
|
||||||
|
|
||||||
|
<!-- TODO: It seems that the persistence unit bundle needs to be started
|
||||||
|
before hibernate-osgi. When the BundleActivator is started,
|
||||||
|
the persistence unit is provided even though managed-jpa
|
||||||
|
hasn't completely started yet. If that happens, you'll get an "illegal
|
||||||
|
bundle state" exception. Is there a way for the activator to
|
||||||
|
watch for bundles with PUs before registering the persistence provider? -->
|
||||||
|
<bundle>mvn:org.hibernate.osgi/managed-jpa/1.0.0</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-osgi/$version</bundle>
|
||||||
|
</feature>
|
||||||
|
</features>
|
|
@ -0,0 +1,70 @@
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.hibernate.osgi</groupId>
|
||||||
|
<artifactId>managed-jpa</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate.javax.persistence</groupId>
|
||||||
|
<artifactId>hibernate-jpa-2.1-api</artifactId>
|
||||||
|
<version>1.0.0.Final</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.core</artifactId>
|
||||||
|
<version>4.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.enterprise</artifactId>
|
||||||
|
<version>4.2.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.karaf.shell</groupId>
|
||||||
|
<artifactId>org.apache.karaf.shell.console</artifactId>
|
||||||
|
<version>2.3.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Bundle-SymbolicName>org.hibernate.osgi.managed-jpa</Bundle-SymbolicName>
|
||||||
|
<Bundle-Name>managed-jpa</Bundle-Name>
|
||||||
|
<Bundle-Version>1.0.0</Bundle-Version>
|
||||||
|
<Export-Package>
|
||||||
|
org.hibernate.osgitest,
|
||||||
|
org.hibernate.osgitest.entity
|
||||||
|
</Export-Package>
|
||||||
|
<Import-Package>
|
||||||
|
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]",
|
||||||
|
<!-- Needed for proxying's Javassist enhancement during runtime -->
|
||||||
|
org.hibernate.proxy,
|
||||||
|
javassist.util.proxy,
|
||||||
|
*
|
||||||
|
</Import-Package>
|
||||||
|
<Meta-Persistence>META-INF/persistence.xml</Meta-Persistence>
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -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<DataPoint> getAll();
|
||||||
|
|
||||||
|
public void deleteAll();
|
||||||
|
}
|
|
@ -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<DataPoint> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<DataPoint> dps = dpService.getAll();
|
||||||
|
for (DataPoint dp : dps) {
|
||||||
|
System.out.println(dp.getId() + ", " + dp.getName());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
version="1.0">
|
||||||
|
<persistence-unit name="managed-jpa" transaction-type="JTA">
|
||||||
|
<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/h2ds)</jta-data-source>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
|
||||||
|
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
|
||||||
|
<property name="hibernate.archive.autodetection" value="class"/>
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
</persistence>
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<blueprint default-activation="eager"
|
||||||
|
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0"
|
||||||
|
xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0">
|
||||||
|
|
||||||
|
<!-- This gets the container-managed EntityManager and injects it into the DataPointServiceImpl bean. -->
|
||||||
|
<bean id="dpService" class="org.hibernate.osgitest.DataPointServiceImpl">
|
||||||
|
<jpa:context unitname="managed-jpa" property="entityManager"/>
|
||||||
|
<tx:transaction method="*" value="Required"/>
|
||||||
|
</bean>
|
||||||
|
<service ref="dpService" interface="org.hibernate.osgitest.DataPointService"/>
|
||||||
|
|
||||||
|
<!-- This demonstrates how to register your custom implementations of Hibernate extension points, such as
|
||||||
|
Integrator and TypeContributor. -->
|
||||||
|
<!-- <bean id="integrator" class="your.package.IntegratorImpl"/>
|
||||||
|
<service ref="integrator" interface="org.hibernate.integrator.spi.Integrator"/>
|
||||||
|
<bean id="typeContributor" class="your.package.TypeContributorImpl"/>
|
||||||
|
<service ref="typeContributor" interface="org.hibernate.metamodel.spi.TypeContributor"/> -->
|
||||||
|
|
||||||
|
<!-- This bundle makes use of Karaf commands to demonstrate core persistence operations. Feel free to remove it. -->
|
||||||
|
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.AddCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.GetAllCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.DeleteAllCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
</command-bundle>
|
||||||
|
</blueprint>
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.hibernate.tutorials</groupId>
|
||||||
|
<artifactId>hibernate-tutorials</artifactId>
|
||||||
|
<version>$version</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>hibernate-tutorial-osgi</artifactId>
|
||||||
|
<name>Hibernate OSGI Tutorials</name>
|
||||||
|
<description>Hibernate tutoriasl illustrating basic set up and use of OSGI</description>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- Skip artifact deployment -->
|
||||||
|
<maven.deploy.skip>true</maven.deploy.skip>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>managed-jpa</module>
|
||||||
|
<module>unmanaged-jpa</module>
|
||||||
|
<module>unmanaged-native</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
</project>
|
1
documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/.gitignore
vendored
Normal file
1
documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-jpa/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<features>
|
||||||
|
<feature name="hibernate-test">
|
||||||
|
|
||||||
|
<!-- JTA -->
|
||||||
|
<bundle start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
|
||||||
|
|
||||||
|
<!-- JPA -->
|
||||||
|
<bundle start-level="30">mvn:org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final</bundle>
|
||||||
|
|
||||||
|
<!-- Taken from Karaf-Tutorial -->
|
||||||
|
<bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
|
||||||
|
<bundle>mvn:commons-pool/commons-pool/1.5.4</bundle>
|
||||||
|
<bundle>mvn:commons-dbcp/commons-dbcp/1.4</bundle>
|
||||||
|
<bundle>mvn:commons-lang/commons-lang/2.6</bundle>
|
||||||
|
<bundle>wrap:mvn:net.sourceforge.serp/serp/1.13.1</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:com.h2database/h2/1.3.170</bundle>
|
||||||
|
|
||||||
|
<!-- These do not natively support OSGi, so using 3rd party bundles. -->
|
||||||
|
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5</bundle>
|
||||||
|
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5</bundle>
|
||||||
|
|
||||||
|
<!-- These do not natively support OSGi, so wrap with BND. -->
|
||||||
|
<bundle>wrap:mvn:org.jboss/jandex/1.1.0.Final</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:com.fasterxml/classmate/0.8.0</bundle>
|
||||||
|
<bundle>mvn:org.apache.logging.log4j/log4j-api/2.0</bundle>
|
||||||
|
<bundle>mvn:log4j/log4j/1.2.17</bundle>
|
||||||
|
<bundle>mvn:org.jboss.logging/jboss-logging/3.2.1.Final</bundle>
|
||||||
|
<bundle>mvn:org.javassist/javassist/3.18.1-GA</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate.common/hibernate-commons-annotations/4.0.5.Final</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-core/$version</bundle>
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-entitymanager/$version</bundle>
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-osgi/$version</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate.osgi/unmanaged-jpa/1.0.0</bundle>
|
||||||
|
</feature>
|
||||||
|
</features>
|
|
@ -0,0 +1,81 @@
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.hibernate.osgi</groupId>
|
||||||
|
<artifactId>unmanaged-jpa</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate.javax.persistence</groupId>
|
||||||
|
<artifactId>hibernate-jpa-2.1-api</artifactId>
|
||||||
|
<version>1.0.0.Final</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.core</artifactId>
|
||||||
|
<version>4.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.enterprise</artifactId>
|
||||||
|
<version>4.2.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.karaf.shell</groupId>
|
||||||
|
<artifactId>org.apache.karaf.shell.console</artifactId>
|
||||||
|
<version>2.3.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-entitymanager</artifactId>
|
||||||
|
<version>$version</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<version>1.3.170</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Bundle-SymbolicName>org.hibernate.osgi.unmanaged-jpa</Bundle-SymbolicName>
|
||||||
|
<Bundle-Name>unmanaged-jpa</Bundle-Name>
|
||||||
|
<Bundle-Version>1.0.0</Bundle-Version>
|
||||||
|
<Export-Package>
|
||||||
|
org.hibernate.osgitest,
|
||||||
|
org.hibernate.osgitest.entity
|
||||||
|
</Export-Package>
|
||||||
|
<Import-Package>
|
||||||
|
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]",
|
||||||
|
<!-- Needed for proxying's Javassist enhancement during runtime -->
|
||||||
|
org.hibernate.proxy,
|
||||||
|
javassist.util.proxy,
|
||||||
|
*
|
||||||
|
</Import-Package>
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -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<DataPoint> getAll();
|
||||||
|
|
||||||
|
public void deleteAll();
|
||||||
|
}
|
|
@ -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<DataPoint> 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<StrategyRegistration> getStrategyRegistrations() {
|
||||||
|
System.out.println("StrategyRegistrationProvider#getStrategyRegistrations");
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<DataPoint> dps = dpService.getAll();
|
||||||
|
for (DataPoint dp : dps) {
|
||||||
|
System.out.println(dp.getId() + ", " + dp.getName());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
version="1.0">
|
||||||
|
<persistence-unit name="unmanaged-jpa">
|
||||||
|
<class>org.hibernate.osgitest.entity.DataPoint</class>
|
||||||
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
|
||||||
|
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
|
||||||
|
<property name="hibernate.connection.url" value="jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE"/>
|
||||||
|
<property name="hibernate.connection.username" value="sa"/>
|
||||||
|
<property name="hibernate.connection.password" value=""/>
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
</persistence>
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<blueprint default-activation="eager"
|
||||||
|
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
|
||||||
|
<bean id="dpService" class="org.hibernate.osgitest.DataPointServiceImpl"/>
|
||||||
|
<service ref="dpService" interface="org.hibernate.osgitest.DataPointService"/>
|
||||||
|
|
||||||
|
<!-- This demonstrates how to register your custom implementations of Hibernate extension points. -->
|
||||||
|
|
||||||
|
<bean id="integrator" class="org.hibernate.osgitest.TestIntegrator"/>
|
||||||
|
<service ref="integrator" interface="org.hibernate.integrator.spi.Integrator"/>
|
||||||
|
|
||||||
|
<bean id="strategyRegistrationProvider" class="org.hibernate.osgitest.TestStrategyRegistrationProvider"/>
|
||||||
|
<service ref="strategyRegistrationProvider"
|
||||||
|
interface="org.hibernate.boot.registry.selector.StrategyRegistrationProvider"/>
|
||||||
|
|
||||||
|
<bean id="typeContributor" class="org.hibernate.osgitest.TestTypeContributor"/>
|
||||||
|
<service ref="typeContributor" interface="org.hibernate.boot.model.TypeContributor"/>
|
||||||
|
|
||||||
|
<!-- This bundle makes use of Karaf commands to demonstrate core persistence operations. Feel free to remove it. -->
|
||||||
|
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.AddCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.UpdateCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.GetAllCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.DeleteAllCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
</command-bundle>
|
||||||
|
</blueprint>
|
1
documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/.gitignore
vendored
Normal file
1
documentation/src/main/asciidoc/quickstart/tutorials/osgi/unmanaged-native/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<features>
|
||||||
|
<feature name="hibernate-test">
|
||||||
|
|
||||||
|
<!--<feature>karaf-framework</feature>-->
|
||||||
|
|
||||||
|
<!-- JTA -->
|
||||||
|
<bundle start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
|
||||||
|
|
||||||
|
<!-- JPA -->
|
||||||
|
<bundle start-level="30">mvn:org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final</bundle>
|
||||||
|
|
||||||
|
<!-- Taken from Karaf-Tutorial -->
|
||||||
|
<bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
|
||||||
|
<bundle>mvn:commons-pool/commons-pool/1.5.4</bundle>
|
||||||
|
<bundle>mvn:commons-dbcp/commons-dbcp/1.4</bundle>
|
||||||
|
<bundle>mvn:commons-lang/commons-lang/2.6</bundle>
|
||||||
|
<bundle>wrap:mvn:net.sourceforge.serp/serp/1.13.1</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:com.h2database/h2/1.3.170</bundle>
|
||||||
|
|
||||||
|
<!-- These do not natively support OSGi, so using 3rd party bundles. -->
|
||||||
|
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5</bundle>
|
||||||
|
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5</bundle>
|
||||||
|
|
||||||
|
<!-- These do not natively support OSGi, so wrap with BND. -->
|
||||||
|
<bundle>wrap:mvn:org.jboss/jandex/1.1.0.Final</bundle>
|
||||||
|
<!-- Optional. Needed to test C3P0 connection pools. -->
|
||||||
|
<!-- <bundle>wrap:mvn:c3p0/c3p0/0.9.1</bundle> -->
|
||||||
|
<!-- Optional. Needed to test Proxool connection pools. -->
|
||||||
|
<!-- <bundle>wrap:mvn:proxool/proxool/0.8.3</bundle> -->
|
||||||
|
<!-- Optional. Needed to test ehcache 2lc. -->
|
||||||
|
<!-- <bundle>wrap:mvn:net.sf.ehcache/ehcache-core/2.4.3</bundle> -->
|
||||||
|
|
||||||
|
<bundle>mvn:com.fasterxml/classmate/0.8.0</bundle>
|
||||||
|
<bundle>mvn:org.apache.logging.log4j/log4j-api/2.0</bundle>
|
||||||
|
<bundle>mvn:log4j/log4j/1.2.17</bundle>
|
||||||
|
<bundle>mvn:org.jboss.logging/jboss-logging/3.2.1.Final</bundle>
|
||||||
|
<bundle>mvn:org.javassist/javassist/3.18.1-GA</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate.common/hibernate-commons-annotations/4.0.5.Final</bundle>
|
||||||
|
|
||||||
|
<!-- JACC is optional. -->
|
||||||
|
<!--<bundle>mvn:javax.servlet/javax.servlet-api/3.0.1</bundle>
|
||||||
|
<bundle>mvn:org.jboss.spec.javax.security.jacc/jboss-jacc-api_1.4_spec/1.0.2.Final</bundle>-->
|
||||||
|
|
||||||
|
<!-- hibernate-validator is optional. -->
|
||||||
|
<!--<bundle>wrap:mvn:javax.validation/validation-api/1.0.0.GA</bundle>
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-validator/4.2.0.Final</bundle>-->
|
||||||
|
|
||||||
|
<!-- Optional. Needed to test infinispan 2lc. -->
|
||||||
|
<!-- IMPORTANT: Infinispan requires the JRE sun.misc package. You
|
||||||
|
MUST enable this in your OSGi container. For Karaf, add
|
||||||
|
"org.osgi.framework.system.packages.extra=sun.misc" to etc/config.properties -->
|
||||||
|
<!-- <bundle>wrap:mvn:org.jboss.marshalling/jboss-marshalling/1.3.17.GA</bundle>
|
||||||
|
<bundle>wrap:mvn:org.jboss.marshalling/jboss-marshalling-river/1.3.17.GA</bundle>
|
||||||
|
<bundle>wrap:mvn:org.jboss/staxmapper/1.1.0.Final</bundle>
|
||||||
|
<bundle>mvn:org.jgroups/jgroups/3.2.8.Final</bundle>
|
||||||
|
<bundle>mvn:org.infinispan/infinispan-core/5.2.0.Beta3</bundle> -->
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-core/$version</bundle>
|
||||||
|
<!-- TODO: Shouldn't need this, but hibernate-osgi's activator is a catch-all for SF and EMF. -->
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-entitymanager/$version</bundle>
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-envers/$version</bundle>
|
||||||
|
<!-- <bundle>mvn:org.hibernate/hibernate-c3p0/$version</bundle> -->
|
||||||
|
<!-- <bundle>mvn:org.hibernate/hibernate-proxool/$version</bundle> -->
|
||||||
|
<!-- <bundle>mvn:org.hibernate/hibernate-ehcache/$version</bundle> -->
|
||||||
|
<!-- <bundle>mvn:org.hibernate/hibernate-infinispan/$version</bundle> -->
|
||||||
|
<bundle>mvn:org.hibernate/hibernate-osgi/$version</bundle>
|
||||||
|
|
||||||
|
<bundle>mvn:org.hibernate.osgi/unmanaged-native/1.0.0</bundle>
|
||||||
|
</feature>
|
||||||
|
</features>
|
|
@ -0,0 +1,89 @@
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.hibernate.osgi</groupId>
|
||||||
|
<artifactId>unmanaged-native</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate.javax.persistence</groupId>
|
||||||
|
<artifactId>hibernate-jpa-2.1-api</artifactId>
|
||||||
|
<version>1.0.0.Final</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.core</artifactId>
|
||||||
|
<version>4.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.enterprise</artifactId>
|
||||||
|
<version>4.2.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.karaf.shell</groupId>
|
||||||
|
<artifactId>org.apache.karaf.shell.console</artifactId>
|
||||||
|
<version>2.3.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-core</artifactId>
|
||||||
|
<version>$version</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-envers</artifactId>
|
||||||
|
<version>$version</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<version>1.3.170</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Bundle-SymbolicName>org.hibernate.osgi.unmanaged-native</Bundle-SymbolicName>
|
||||||
|
<Bundle-Name>unmanaged-native</Bundle-Name>
|
||||||
|
<Bundle-Version>1.0.0</Bundle-Version>
|
||||||
|
<Export-Package>
|
||||||
|
org.hibernate.osgitest,
|
||||||
|
org.hibernate.osgitest.entity
|
||||||
|
</Export-Package>
|
||||||
|
<Import-Package>
|
||||||
|
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]",
|
||||||
|
<!-- Needed for proxying's Javassist enhancement during runtime -->
|
||||||
|
org.hibernate.proxy,
|
||||||
|
javassist.util.proxy,
|
||||||
|
*
|
||||||
|
</Import-Package>
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -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<DataPoint> getAll();
|
||||||
|
|
||||||
|
public Map<Number, DefaultRevisionEntity> getRevisions(long id);
|
||||||
|
|
||||||
|
public void deleteAll();
|
||||||
|
}
|
|
@ -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<DataPoint> getAll() {
|
||||||
|
Session s = hibernateUtil.getSession();
|
||||||
|
s.getTransaction().begin();
|
||||||
|
List list = s.createQuery( "from DataPoint" ).list();
|
||||||
|
s.getTransaction().commit();
|
||||||
|
s.close();
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Number, DefaultRevisionEntity> getRevisions(long id) {
|
||||||
|
Session s = hibernateUtil.getSession();
|
||||||
|
AuditReader reader = AuditReaderFactory.get(s);
|
||||||
|
List<Number> revisionNums = reader.getRevisions( DataPoint.class, id );
|
||||||
|
return reader.findRevisions( DefaultRevisionEntity.class, new HashSet<Number>(revisionNums) );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteAll() {
|
||||||
|
Session s = hibernateUtil.getSession();
|
||||||
|
s.getTransaction().begin();
|
||||||
|
s.createQuery( "delete from DataPoint" ).executeUpdate();
|
||||||
|
s.getTransaction().commit();
|
||||||
|
s.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<StrategyRegistration> getStrategyRegistrations() {
|
||||||
|
System.out.println("StrategyRegistrationProvider#getStrategyRegistrations");
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<DataPoint> dps = dpService.getAll();
|
||||||
|
for (DataPoint dp : dps) {
|
||||||
|
System.out.println(dp.getId() + ", " + dp.getName());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<Number, DefaultRevisionEntity> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<blueprint default-activation="eager"
|
||||||
|
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
>
|
||||||
|
|
||||||
|
<bean id="dpService" class="org.hibernate.osgitest.DataPointServiceImpl"/>
|
||||||
|
<service ref="dpService" interface="org.hibernate.osgitest.DataPointService"/>
|
||||||
|
|
||||||
|
<!-- This demonstrates how to register your custom implementations of Hibernate extension points. -->
|
||||||
|
|
||||||
|
<bean id="integrator" class="org.hibernate.osgitest.TestIntegrator"/>
|
||||||
|
<service ref="integrator" interface="org.hibernate.integrator.spi.Integrator"/>
|
||||||
|
|
||||||
|
<bean id="strategyRegistrationProvider" class="org.hibernate.osgitest.TestStrategyRegistrationProvider"/>
|
||||||
|
<service ref="strategyRegistrationProvider"
|
||||||
|
interface="org.hibernate.boot.registry.selector.StrategyRegistrationProvider"/>
|
||||||
|
|
||||||
|
<bean id="typeContributor" class="org.hibernate.osgitest.TestTypeContributor"/>
|
||||||
|
<service ref="typeContributor" interface="org.hibernate.boot.model.TypeContributor"/>
|
||||||
|
|
||||||
|
<!-- This bundle makes use of Karaf commands to demonstrate core persistence operations. Feel free to remove it. -->
|
||||||
|
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.AddCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.UpdateCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.GetCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.LoadCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.GetAllCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.GetRevisionsCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
<command>
|
||||||
|
<action class="org.hibernate.osgitest.command.DeleteAllCommand">
|
||||||
|
<property name="dpService" ref="dpService"/>
|
||||||
|
</action>
|
||||||
|
</command>
|
||||||
|
</command-bundle>
|
||||||
|
</blueprint>
|
|
@ -0,0 +1,94 @@
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<ehcache>
|
||||||
|
|
||||||
|
<!-- Sets the path to the directory where cache .data files are created.
|
||||||
|
|
||||||
|
If the path is a Java System Property it is replaced by
|
||||||
|
its value in the running VM.
|
||||||
|
|
||||||
|
The following properties are translated:
|
||||||
|
user.home - User's home directory
|
||||||
|
user.dir - User's current working directory
|
||||||
|
java.io.tmpdir - Default temp file path -->
|
||||||
|
<diskStore path="./target/tmp"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!--Default Cache configuration. These will applied to caches programmatically created through
|
||||||
|
the CacheManager.
|
||||||
|
|
||||||
|
The following attributes are required for defaultCache:
|
||||||
|
|
||||||
|
maxInMemory - Sets the maximum number of objects that will be created in memory
|
||||||
|
eternal - Sets whether elements are eternal. If eternal, timeouts are ignored and the element
|
||||||
|
is never expired.
|
||||||
|
timeToIdleSeconds - Sets the time to idle for an element before it expires. Is only used
|
||||||
|
if the element is not eternal. Idle time is now - last accessed time
|
||||||
|
timeToLiveSeconds - Sets the time to live for an element before it expires. Is only used
|
||||||
|
if the element is not eternal. TTL is now - creation time
|
||||||
|
overflowToDisk - Sets whether elements can overflow to disk when the in-memory cache
|
||||||
|
has reached the maxInMemory limit.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<defaultCache
|
||||||
|
maxElementsInMemory="10000"
|
||||||
|
eternal="false"
|
||||||
|
timeToIdleSeconds="120"
|
||||||
|
timeToLiveSeconds="120"
|
||||||
|
overflowToDisk="true"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!--Predefined caches. Add your cache configuration settings here.
|
||||||
|
If you do not have a configuration for your cache a WARNING will be issued when the
|
||||||
|
CacheManager starts
|
||||||
|
|
||||||
|
The following attributes are required for defaultCache:
|
||||||
|
|
||||||
|
name - Sets the name of the cache. This is used to identify the cache. It must be unique.
|
||||||
|
maxInMemory - Sets the maximum number of objects that will be created in memory
|
||||||
|
eternal - Sets whether elements are eternal. If eternal, timeouts are ignored and the element
|
||||||
|
is never expired.
|
||||||
|
timeToIdleSeconds - Sets the time to idle for an element before it expires. Is only used
|
||||||
|
if the element is not eternal. Idle time is now - last accessed time
|
||||||
|
timeToLiveSeconds - Sets the time to live for an element before it expires. Is only used
|
||||||
|
if the element is not eternal. TTL is now - creation time
|
||||||
|
overflowToDisk - Sets whether elements can overflow to disk when the in-memory cache
|
||||||
|
has reached the maxInMemory limit.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Sample cache named sampleCache1
|
||||||
|
This cache contains a maximum in memory of 10000 elements, and will expire
|
||||||
|
an element if it is idle for more than 5 minutes and lives for more than
|
||||||
|
10 minutes.
|
||||||
|
|
||||||
|
If there are more than 10000 elements it will overflow to the
|
||||||
|
disk cache, which in this configuration will go to wherever java.io.tmp is
|
||||||
|
defined on your system. On a standard Linux system this will be /tmp"
|
||||||
|
-->
|
||||||
|
<cache name="sampleCache1"
|
||||||
|
maxElementsInMemory="10000"
|
||||||
|
eternal="false"
|
||||||
|
timeToIdleSeconds="300"
|
||||||
|
timeToLiveSeconds="600"
|
||||||
|
overflowToDisk="true"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- Sample cache named sampleCache2
|
||||||
|
This cache contains 1000 elements. Elements will always be held in memory.
|
||||||
|
They are not expired. -->
|
||||||
|
<cache name="sampleCache2"
|
||||||
|
maxElementsInMemory="1000"
|
||||||
|
eternal="true"
|
||||||
|
timeToIdleSeconds="0"
|
||||||
|
timeToLiveSeconds="0"
|
||||||
|
overflowToDisk="false"
|
||||||
|
/> -->
|
||||||
|
|
||||||
|
<!-- Place configuration for your caches following -->
|
||||||
|
|
||||||
|
</ehcache>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<!--
|
||||||
|
~ 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE hibernate-configuration PUBLIC
|
||||||
|
"-//Hibernate/Hibernate Configuration DTD//EN"
|
||||||
|
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||||
|
|
||||||
|
<hibernate-configuration>
|
||||||
|
<session-factory>
|
||||||
|
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
|
||||||
|
<property name="hibernate.connection.url">jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
|
||||||
|
<property name="hibernate.connection.username">sa</property>
|
||||||
|
<property name="hibernate.connection.password"></property>
|
||||||
|
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
|
||||||
|
<property name="hibernate.hbm2ddl.auto">create-drop</property>
|
||||||
|
|
||||||
|
<!-- <property name="hibernate.connection.pool_size">5</property>
|
||||||
|
<property name="hibernate.c3p0.min_size">50</property>
|
||||||
|
<property name="hibernate.c3p0.max_size">800</property>
|
||||||
|
<property name="hibernate.c3p0.max_statements">50</property>
|
||||||
|
<property name="hibernate.jdbc.batch_size">10</property>
|
||||||
|
<property name="hibernate.c3p0.timeout">300</property>
|
||||||
|
<property name="hibernate.c3p0.idle_test_period">3000</property>
|
||||||
|
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property> -->
|
||||||
|
|
||||||
|
<!-- <property name="hibernate.connection.pool_size">5</property>
|
||||||
|
<property name="hibernate.jdbc.batch_size">10</property>
|
||||||
|
<property name="hibernate.connection.provider_class">proxool</property>
|
||||||
|
<property name="hibernate.proxool.properties">pool-one.properties</property>
|
||||||
|
<property name="hibernate.proxool.pool_alias">pool-one</property> -->
|
||||||
|
|
||||||
|
<!-- <property name="hibernate.cache.region_prefix">hibernate.test</property>
|
||||||
|
<property name="cache.use_query_cache">true</property>
|
||||||
|
<property name="cache.use_second_level_cache">true</property>
|
||||||
|
<property name="cache.use_structured_entries">true</property>
|
||||||
|
<property name="cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</property>
|
||||||
|
<property name="net.sf.ehcache.configurationResourceName">file:///[PATH]/unmanaged-jpa/src/main/resources/ehcache.xml</property> -->
|
||||||
|
|
||||||
|
<!-- <property name="hibernate.cache.region_prefix">hibernate.test</property>
|
||||||
|
<property name="cache.use_query_cache">true</property>
|
||||||
|
<property name="cache.use_second_level_cache">true</property>
|
||||||
|
<property name="cache.use_structured_entries">true</property>
|
||||||
|
<property name="cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</property> -->
|
||||||
|
|
||||||
|
<mapping class="org.hibernate.osgitest.entity.DataPoint"/>
|
||||||
|
</session-factory>
|
||||||
|
|
||||||
|
</hibernate-configuration>
|
|
@ -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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
#
|
||||||
|
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
|
Loading…
Reference in New Issue