Adds initial state of tutorial branch safepoint_02_datasource
diff --git a/greenpages/greenpages.db/pom.xml b/greenpages/greenpages.db/pom.xml index 3d993e9..dac8577 100644 --- a/greenpages/greenpages.db/pom.xml +++ b/greenpages/greenpages.db/pom.xml
@@ -30,9 +30,6 @@ <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> - <Import-Bundle> - com.springsource.org.eclipse.persistence.jpa;version="[2, 3)" - </Import-Bundle> <Import-Package> org.h2;version="[1.0.71,2)", * @@ -45,23 +42,11 @@ <dependencies> <dependency> - <groupId>javax.persistence</groupId> - <artifactId>com.springsource.javax.persistence</artifactId> - </dependency> - <dependency> <groupId>org.springframework</groupId> <artifactId>org.springframework.spring-library</artifactId> <type>libd</type> </dependency> <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>com.springsource.org.eclipse.persistence</artifactId> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>com.springsource.org.eclipse.persistence.jpa</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>com.springsource.org.apache.commons.dbcp</artifactId> </dependency>
diff --git a/greenpages/greenpages.db/src/main/java/greenpages/db/internal/SqlCommandProvider.java b/greenpages/greenpages.db/src/main/java/greenpages/db/internal/SqlCommandProvider.java new file mode 100644 index 0000000..bf4171e --- /dev/null +++ b/greenpages/greenpages.db/src/main/java/greenpages/db/internal/SqlCommandProvider.java
@@ -0,0 +1,36 @@ +package greenpages.db.internal; + +import org.springframework.jdbc.core.JdbcOperations; +import org.springframework.util.StringUtils; + +/** + * TODO 2.5 Insert test data via OSGi console +sql:execute DROP TABLE IF EXISTS LISTING + +sql:execute CREATE TABLE LISTING(LISTING_NUMBER INT PRIMARY KEY, FIRST_NAME VARCHAR(255), LAST_NAME VARCHAR(255), EMAIL_ADDRESS VARCHAR(255)) + +sql:execute INSERT INTO LISTING VALUES(1, \'Markus\', \'Knauer\', \'mknauer@eclipsesource.com\') +sql:execute INSERT INTO LISTING VALUES(2, \'Johannes\', \'Eickhold\', \'jeick@eclipsesource.com\') +sql:execute INSERT INTO LISTING VALUES(3, \'Florian\', \'Waibel\', \'fwaibel@eclipsesource.com\') + +sql:queryForInt SELECT COUNT(*) FROM LISTING + */ +public class SqlCommandProvider { + + private JdbcOperations jdbcTemplate; + + public void setJdbcTemplate(JdbcOperations jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + public void execute(String[] args) { + String sql = StringUtils.arrayToDelimitedString(args, " "); + // TODO 2.3 Implement SQL commands + } + + public int queryForInt(String[] args) { + String sql = StringUtils.arrayToDelimitedString(args, " "); + // TODO 2.3 Implement SQL commands + return -1; + } +}
diff --git a/greenpages/greenpages.db/src/main/resources/META-INF/MANIFEST.MF b/greenpages/greenpages.db/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index 698edc1..0000000 --- a/greenpages/greenpages.db/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null
@@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Bundle-Vendor: SpringSource -Bundle-Classpath: . -Bundle-Version: 3.0.0 -Tool: Bundlor 1.1.2.RELEASE -Bundle-Name: GreenPages DataSource -Bundle-ManifestVersion: 2 -Import-Package: javax.sql;version="0",org.apache.commons.dbcp;version= - "[1.2.2.osgi, 1.2.2.osgi]",org.h2;version="[1.0.71, 1.0.71]" -Bundle-SymbolicName: greenpages.db -
diff --git a/greenpages/greenpages.db/src/main/resources/META-INF/spring/module-context.xml b/greenpages/greenpages.db/src/main/resources/META-INF/spring/module-context.xml index 5337e8a..86508a1 100644 --- a/greenpages/greenpages.db/src/main/resources/META-INF/spring/module-context.xml +++ b/greenpages/greenpages.db/src/main/resources/META-INF/spring/module-context.xml
@@ -4,9 +4,18 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" xmlns:p="http://www.springframework.org/schema/p"> - <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" - p:driverClassName="org.h2.Driver" p:url="jdbc:h2:~/greenpages-db/greenpages" - p:username="greenpages" p:password="pass" - init-method="createDataSource" destroy-method="close"/> + <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" + p:driverClassName="org.h2.Driver" p:url="jdbc:h2:~/greenpages-db/greenpages" + p:username="greenpages" p:password="pass" init-method="createDataSource" + destroy-method="close" /> + + <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" + p:dataSource-ref="dataSource" /> + + <!-- TODO 2.4 Add OSGi Console Commands + <bean id="sqlCommandProvider" + class="greenpages.db.internal.SqlCommandProvider" + p:jdbcTemplate-ref="jdbcTemplate" /> + --> </beans>
diff --git a/greenpages/greenpages.db/src/main/resources/META-INF/spring/osgi-context.xml b/greenpages/greenpages.db/src/main/resources/META-INF/spring/osgi-context.xml index 92962cd..909c283 100644 --- a/greenpages/greenpages.db/src/main/resources/META-INF/spring/osgi-context.xml +++ b/greenpages/greenpages.db/src/main/resources/META-INF/spring/osgi-context.xml
@@ -4,7 +4,21 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd" xmlns:osgi="http://www.springframework.org/schema/osgi"> - - <osgi:service ref="dataSource" interface="javax.sql.DataSource"/> - + + <!-- TODO 2.1 export spring bean "dataSource" with interface "javax.sql.DataSource" --> + + <!-- TODO 2.2 add OSGi console commands "execute" and "queryForInt" + <osgi:service ref="sqlCommandProvider" auto-export="all-classes"> + <osgi:service-properties> + <entry key="osgi.command.scope"> + <value>sql</value> + </entry> + <entry key="osgi.command.function"> + <array value-type="java.lang.String"> + </array> + </entry> + </osgi:service-properties> + </osgi:service> + --> + </beans>
diff --git a/greenpages/greenpages.jpa/pom.xml b/greenpages/greenpages.jpa/pom.xml deleted file mode 100644 index 1340dbb..0000000 --- a/greenpages/greenpages.jpa/pom.xml +++ /dev/null
@@ -1,132 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<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/maven-v4_0_0.xsd"> - - <parent> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.parent</artifactId> - <version>3.0.0.RELEASE</version> - <relativePath>../greenpages.parent</relativePath> - </parent> - - <modelVersion>4.0.0</modelVersion> - <artifactId>greenpages.jpa</artifactId> - <name>GreenPages JPA</name> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <includes> - <include>META-INF/spring/*</include> - <include>META-INF/*</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <configuration> - <instructions> - <Import-Bundle> - com.springsource.org.eclipse.persistence;version="[2.0.0, - 2.1.0)", - com.springsource.org.eclipse.persistence.jpa;version="[2.0.0, - 2.1.0)" - </Import-Bundle> - <Import-Package> - org.springframework.context.weaving;version="[3, - 4)", - org.springframework.transaction.aspectj;version="[3.0, 3.5)", - javax.persistence.criteria;version="[2, 2.1)", - javax.persistence;version="[2, 2.1)", - javax.sql;version="0", - * - </Import-Package> - </instructions> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>org.springframework.spring-library</artifactId> - <type>libd</type> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.persistence</groupId> - <artifactId>persistence-api</artifactId> - <version>1.0.2</version> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>javax.persistence</artifactId> - <version>2.0.0</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>com.springsource.org.eclipse.persistence.internal.libraries.antlr</artifactId> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>com.springsource.org.eclipse.persistence</artifactId> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>com.springsource.org.eclipse.persistence.jpa</artifactId> - </dependency> - <dependency> - <groupId>org.junit</groupId> - <artifactId>com.springsource.org.junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>org.springframework.test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>org.springframework.instrument</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>org.springframework.aspects</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>com.springsource.org.apache.commons.dbcp</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>com.springsource.org.apache.commons.logging</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>com.springsource.org.h2</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>com.springsource.org.aspectj.weaver</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - -</project>
diff --git a/greenpages/greenpages.jpa/src/main/java/greenpages/jpa/JpaDirectory.java b/greenpages/greenpages.jpa/src/main/java/greenpages/jpa/JpaDirectory.java deleted file mode 100644 index c51200d..0000000 --- a/greenpages/greenpages.jpa/src/main/java/greenpages/jpa/JpaDirectory.java +++ /dev/null
@@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 VMware Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VMware Inc. - initial contribution - *******************************************************************************/ - -package greenpages.jpa; - -import greenpages.Directory; -import greenpages.Listing; - -import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -/** - * Implementation of {@link Directory} that uses JPA for persistence.<p /> - * - * This class is marked as {@link Transactional}. The Spring configuration for this module, enables AspectJ weaving for - * adding transaction demarcation to classes annotated with <code>@Transactional</code>. - */ -@Transactional -@Repository -final class JpaDirectory implements Directory { - - private static final String SEARCH_QUERY = "select l from Listing l where upper(l.lastName) like :term"; - - /** - * Spring will inject a managed JPA {@link EntityManager} into this field. - */ - @PersistenceContext - private EntityManager em; - - public Listing findListing(int id) { - return em.find(JpaListing.class, id); - } - - @SuppressWarnings("unchecked") - public List<Listing> search(String term) { - return em.createQuery(SEARCH_QUERY).setParameter("term", "%" + term.toUpperCase() + "%").getResultList(); - } - -}
diff --git a/greenpages/greenpages.jpa/src/main/java/greenpages/jpa/JpaListing.java b/greenpages/greenpages.jpa/src/main/java/greenpages/jpa/JpaListing.java deleted file mode 100644 index 1965495..0000000 --- a/greenpages/greenpages.jpa/src/main/java/greenpages/jpa/JpaListing.java +++ /dev/null
@@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 VMware Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VMware Inc. - initial contribution - *******************************************************************************/ - -package greenpages.jpa; - -import greenpages.Listing; - -/** - * Basic implementation of {@link Listing} that is configured as a persistent type in JPA. - */ -public class JpaListing implements Listing { - - private Integer listingNumber; - - private String firstName; - - private String lastName; - - private String emailAddress; - - public Integer getListingNumber() { - return listingNumber; - } - - public void setListingNumber(Integer listingNumber) { - this.listingNumber = listingNumber; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getEmailAddress() { - return emailAddress; - } - - public void setEmailAddress(String emailAddress) { - this.emailAddress = emailAddress; - } - -}
diff --git a/greenpages/greenpages.jpa/src/main/resources/META-INF/orm.xml b/greenpages/greenpages.jpa/src/main/resources/META-INF/orm.xml deleted file mode 100644 index 66352f0..0000000 --- a/greenpages/greenpages.jpa/src/main/resources/META-INF/orm.xml +++ /dev/null
@@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" - version="1.0"> - <package>greenpages.jpa</package> - <entity class="greenpages.jpa.JpaListing" name="Listing"> - <table name="LISTING"/> - <attributes> - <id name="listingNumber"> - <column name="LISTING_NUMBER"/> - <generated-value strategy="TABLE"/> - </id> - <basic name="firstName"> - <column name="FIRST_NAME"/> - </basic> - <basic name="lastName"> - <column name="LAST_NAME"/> - </basic> - <basic name="emailAddress"> - <column name="EMAIL_ADDRESS"/> - </basic> - </attributes> - </entity> -</entity-mappings> \ No newline at end of file
diff --git a/greenpages/greenpages.jpa/src/main/resources/META-INF/persistence.xml b/greenpages/greenpages.jpa/src/main/resources/META-INF/persistence.xml deleted file mode 100644 index df42af5..0000000 --- a/greenpages/greenpages.jpa/src/main/resources/META-INF/persistence.xml +++ /dev/null
@@ -1,10 +0,0 @@ -<persistence xmlns="http://java.sun.com/xml/ns/persistence" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" - version="1.0"> - - <persistence-unit name="GreenPages" transaction-type="RESOURCE_LOCAL"> - <class>greenpages.jpa.JpaListing</class> - </persistence-unit> - -</persistence>
diff --git a/greenpages/greenpages.jpa/src/main/resources/META-INF/spring/module-context.xml b/greenpages/greenpages.jpa/src/main/resources/META-INF/spring/module-context.xml deleted file mode 100644 index 3fc3b2a..0000000 --- a/greenpages/greenpages.jpa/src/main/resources/META-INF/spring/module-context.xml +++ /dev/null
@@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Application context definition for GreenPages JPA. ---> -<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:p="http://www.springframework.org/schema/p" - xmlns:context="http://www.springframework.org/schema/context" - xmlns:tx="http://www.springframework.org/schema/tx" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd - http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> - - <!-- ========================= RESOURCE DEFINITIONS ========================= --> - - <!-- - Activates a load-time weaver for the context. Any bean within the context that - implements LoadTimeWeaverAware (such as LocalContainerEntityManagerFactoryBean) - will receive a reference to the autodetected load-time weaver. - --> - <context:load-time-weaver aspectj-weaving="on"/> - - <!-- JPA EntityManagerFactory --> - <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:dataSource-ref="dataSource"> - <property name="jpaVendorAdapter"> - <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter" - p:databasePlatform="org.eclipse.persistence.platform.database.HSQLPlatform" p:showSql="true"/> - </property> - </bean> - - <!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) --> - <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" - p:entityManagerFactory-ref="entityManagerFactory"/> - - - <!-- ========================= BUSINESS OBJECT DEFINITIONS ========================= --> - - <!-- - Activates various annotations to be detected in bean classes: Spring's - @Required and @Autowired, as well as JSR 250's @PostConstruct, - @PreDestroy and @Resource (if available) and JPA's @PersistenceContext - and @PersistenceUnit (if available). - --> - <context:annotation-config/> - - <!-- - Instruct Spring to perform declarative transaction management - automatically on annotated classes. - --> - <tx:annotation-driven mode="aspectj"/> - - <!-- - Post-processor to perform exception translation on @Repository classes (from native - exceptions such as JPA PersistenceExceptions to Spring's DataAccessException hierarchy). - --> - <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/> - - <!-- - Will automatically be transactional due to @Transactional. - EntityManager will be auto-injected due to @PersistenceContext. - PersistenceExceptions will be auto-translated due to @Repository. - --> - <bean id="directory" class="greenpages.jpa.JpaDirectory"/> - -</beans>
diff --git a/greenpages/greenpages.jpa/src/main/resources/META-INF/spring/osgi-context.xml b/greenpages/greenpages.jpa/src/main/resources/META-INF/spring/osgi-context.xml deleted file mode 100644 index c527d76..0000000 --- a/greenpages/greenpages.jpa/src/main/resources/META-INF/spring/osgi-context.xml +++ /dev/null
@@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd" - xmlns:osgi="http://www.springframework.org/schema/osgi"> - - <!-- import the DataSource from OSGi --> - <osgi:reference id="dataSource" interface="javax.sql.DataSource"/> - - - <!-- export the directory bean to OSGi under the Directory interface --> - <osgi:service ref="directory" interface="greenpages.Directory"/> - - -</beans>
diff --git a/greenpages/greenpages.jpa/src/test/java/greenpages/jpa/JpaDirectorySpringContextTests.java b/greenpages/greenpages.jpa/src/test/java/greenpages/jpa/JpaDirectorySpringContextTests.java deleted file mode 100644 index 7ecd706..0000000 --- a/greenpages/greenpages.jpa/src/test/java/greenpages/jpa/JpaDirectorySpringContextTests.java +++ /dev/null
@@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 VMware Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VMware Inc. - initial contribution - *******************************************************************************/ - -package greenpages.jpa; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import greenpages.Directory; -import greenpages.Listing; - -import java.util.List; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.TestExecutionListeners; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations = { "classpath:/META-INF/spring/module-context.xml", "classpath:/META-INF/spring/test-context.xml" }) -@TestExecutionListeners(value = DependencyInjectionTestExecutionListener.class) -public class JpaDirectorySpringContextTests { - - @Autowired - private Directory directory; - - @Test - public void search() { - List<Listing> results = this.directory.search("johnson"); - assertNotNull(results); - assertEquals(1, results.size()); - - Listing listing = results.get(0); - assertNotNull(listing); - assertEquals("Johnson", listing.getLastName()); - } -}
diff --git a/greenpages/greenpages.jpa/src/test/java/greenpages/jpa/TestDataPopulator.java b/greenpages/greenpages.jpa/src/test/java/greenpages/jpa/TestDataPopulator.java deleted file mode 100644 index 24f779b..0000000 --- a/greenpages/greenpages.jpa/src/test/java/greenpages/jpa/TestDataPopulator.java +++ /dev/null
@@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 VMware Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VMware Inc. - initial contribution - *******************************************************************************/ - -package greenpages.jpa; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.StringWriter; -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; - -import javax.sql.DataSource; - -import org.springframework.core.io.Resource; - -/** - * A class that populates a datasource with test data - */ -public class TestDataPopulator { - - private final DataSource dataSource; - - private final Resource testDataLocation; - - public TestDataPopulator(DataSource dataSource, Resource testDataLocation) { - this.dataSource = dataSource; - this.testDataLocation = testDataLocation; - } - - public void populate() { - Connection connection = null; - try { - connection = dataSource.getConnection(); - insertTestData(connection); - } catch (SQLException e) { - throw new RuntimeException("SQL exception occurred acquiring connection", e); - } finally { - if (connection != null) { - try { - connection.close(); - } catch (SQLException e) { - } - } - } - } - - private void insertTestData(Connection connection) { - try { - String sql = parseSqlIn(testDataLocation); - executeSql(sql, connection); - } catch (IOException e) { - throw new RuntimeException("I/O exception occurred accessing the test data file", e); - } catch (SQLException e) { - throw new RuntimeException("SQL exception occurred loading test data", e); - } - } - - private String parseSqlIn(Resource resource) throws IOException { - InputStream is = null; - try { - is = resource.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(is)); - - StringWriter sw = new StringWriter(); - BufferedWriter writer = new BufferedWriter(sw); - - for (int c = reader.read(); c != -1; c = reader.read()) { - writer.write(c); - } - writer.flush(); - return sw.toString(); - - } finally { - if (is != null) { - is.close(); - } - } - } - - private void executeSql(String sql, Connection connection) throws SQLException { - Statement statement = connection.createStatement(); - statement.execute(sql); - } -}
diff --git a/greenpages/greenpages.jpa/src/test/resources/META-INF/spring/test-context.xml b/greenpages/greenpages.jpa/src/test/resources/META-INF/spring/test-context.xml deleted file mode 100644 index bc0e415..0000000 --- a/greenpages/greenpages.jpa/src/test/resources/META-INF/spring/test-context.xml +++ /dev/null
@@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:p="http://www.springframework.org/schema/p" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - - <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" - p:driverClassName="org.h2.Driver" p:url="jdbc:h2:.~/greenpages-db/greenpages" - p:username="greenpages" p:password="pass" - init-method="createDataSource" destroy-method="close"/> - - <bean class="greenpages.jpa.TestDataPopulator" init-method="populate"> - <constructor-arg ref="dataSource"/> - <constructor-arg value="file:../db/db.sql"/> - </bean> - -</beans>
diff --git a/greenpages/greenpages.par/META-INF/MANIFEST.MF b/greenpages/greenpages.par/META-INF/MANIFEST.MF deleted file mode 100644 index db1a5d7..0000000 --- a/greenpages/greenpages.par/META-INF/MANIFEST.MF +++ /dev/null
@@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Application-SymbolicName: greenpages -Application-Version: 3.0.0.RELEASE -Application-Name: Greenpages PAR -
diff --git a/greenpages/greenpages.par/com.springsource.org.h2-1.0.71.jar b/greenpages/greenpages.par/com.springsource.org.h2-1.0.71.jar deleted file mode 100644 index 41dc982..0000000 --- a/greenpages/greenpages.par/com.springsource.org.h2-1.0.71.jar +++ /dev/null Binary files differ
diff --git a/greenpages/greenpages.par/pom.xml b/greenpages/greenpages.par/pom.xml deleted file mode 100644 index 86780a2..0000000 --- a/greenpages/greenpages.par/pom.xml +++ /dev/null
@@ -1,122 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<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/maven-v4_0_0.xsd"> - - <parent> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.parent</artifactId> - <version>3.0.0.RELEASE</version> - <relativePath>../greenpages.parent</relativePath> - </parent> - - <modelVersion>4.0.0</modelVersion> - <artifactId>greenpages.par</artifactId> - <name>greenpages.par</name> - <description>GreenPages PAR</description> - <packaging>par</packaging> - - <dependencies> - <dependency> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.jpa</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.db</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.web</artifactId> - <version>${project.version}</version> - </dependency> - <!-- Needs to be included in the PAR so that its classes are loadable via the PAR's synthetic context class loader --> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>com.springsource.org.h2</artifactId> - </dependency> - <!-- Required for the web bundle as dependencies are not propagated up from war build types --> - <dependency> - <groupId>org.freemarker</groupId> - <artifactId>com.springsource.freemarker</artifactId> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-par-plugin</artifactId> - <version>1.0.0.RELEASE</version> - <configuration> - <applicationSymbolicName>greenpages</applicationSymbolicName> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <configuration> - <outputDirectory>${project.build.directory}/par-provided</outputDirectory> - <overWriteIfNewer>true</overWriteIfNewer> - <excludeGroupIds>org.eclipse.virgo,org.apache.log4j,com.h2database</excludeGroupIds> - </configuration> - <executions> - <execution> - <id>copy-dependencies</id> - <phase>package</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - <pluginManagement> - <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId> - org.apache.maven.plugins - </groupId> - <artifactId> - maven-dependency-plugin - </artifactId> - <versionRange> - [2.1,) - </versionRange> - <goals> - <goal> - copy-dependencies - </goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore></ignore> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - </plugins> - </pluginManagement> - </build> - -</project>
diff --git a/greenpages/greenpages.par/src/main/resources/.gitignore b/greenpages/greenpages.par/src/main/resources/.gitignore deleted file mode 100644 index e69de29..0000000 --- a/greenpages/greenpages.par/src/main/resources/.gitignore +++ /dev/null
diff --git a/greenpages/greenpages.web/pom.xml b/greenpages/greenpages.web/pom.xml index 890dc5d..7f5669a 100644 --- a/greenpages/greenpages.web/pom.xml +++ b/greenpages/greenpages.web/pom.xml
@@ -45,10 +45,6 @@ <Import-Library> org.springframework.spring;version="[3.1, 3.5)" </Import-Library> - <Import-Bundle> - com.springsource.org.eclipse.persistence;version="[2.0.0, 2.1.0)", - com.springsource.org.eclipse.persistence.jpa;version="[2.0.0, 2.1.0)" - </Import-Bundle> <Import-Package> javax.servlet.jsp.jstl.core;version="[1.2.0, 2)", javax.servlet;version="[3.0.0, 3.1)", @@ -95,12 +91,6 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>org.eclipse.virgo</groupId> - <artifactId>greenpages.jpa</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.junit</groupId> <artifactId>com.springsource.org.junit</artifactId> <scope>test</scope>
diff --git a/greenpages/pom.xml b/greenpages/pom.xml index ec58208..6cac630 100644 --- a/greenpages/pom.xml +++ b/greenpages/pom.xml
@@ -14,8 +14,6 @@ <module>greenpages.parent</module> <module>greenpages.db</module> <module>greenpages.core</module> - <module>greenpages.jpa</module> <module>greenpages.web</module> - <module>greenpages.par</module> </modules> </project>