Petclinic seems to work
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@310 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
parent
d5c8a26643
commit
7b12e5f570
|
|
@ -1,5 +1,5 @@
|
||||||
#HSQL Database Engine 1.8.0.9
|
#HSQL Database Engine
|
||||||
#Thu Nov 20 16:03:56 CET 2008
|
#Mon Jan 09 09:39:15 GMT 2006
|
||||||
hsqldb.script_format=0
|
hsqldb.script_format=0
|
||||||
runtime.gc_interval=0
|
runtime.gc_interval=0
|
||||||
sql.enforce_strict_size=false
|
sql.enforce_strict_size=false
|
||||||
|
|
@ -10,6 +10,7 @@ hsqldb.cache_scale=14
|
||||||
version=1.8.0
|
version=1.8.0
|
||||||
hsqldb.default_table_type=memory
|
hsqldb.default_table_type=memory
|
||||||
hsqldb.cache_file_scale=1
|
hsqldb.cache_file_scale=1
|
||||||
|
sql.compare_in_locale=false
|
||||||
hsqldb.log_size=200
|
hsqldb.log_size=200
|
||||||
modified=yes
|
modified=yes
|
||||||
hsqldb.cache_version=1.7.0
|
hsqldb.cache_version=1.7.0
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,6 @@
|
||||||
|
|
||||||
<configurations>
|
<configurations>
|
||||||
<include file="${spring.build.dir}/common/default-ivy-configurations.xml"/>
|
<include file="${spring.build.dir}/common/default-ivy-configurations.xml"/>
|
||||||
<conf name="hibernate" extends="runtime" description="JARs needed to use Hibernate"/>
|
|
||||||
<conf name="jpa" extends="runtime" description="JARs needed to develop JPA beans"/>
|
|
||||||
<conf name="toplink-essentials" extends="jpa" description="JARs needed to use TopLink Essentials JPA"/>
|
|
||||||
</configurations>
|
</configurations>
|
||||||
|
|
||||||
<publications>
|
<publications>
|
||||||
|
|
@ -22,20 +19,23 @@
|
||||||
</publications>
|
</publications>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency org="com.oracle.toplink.essentials" name="com.springsource.oracle.toplink.essentials" rev="2.0.0.b41-beta2" conf="optional, toplink-essentials->compile"/>
|
<dependency org="com.oracle.toplink.essentials" name="com.springsource.oracle.toplink.essentials" rev="2.0.0.b41-beta2" conf="compile->compile"/>
|
||||||
<dependency org="javax.persistence" name="com.springsource.javax.persistence" rev="1.0.0" conf="provided, jpa->compile"/>
|
<dependency org="javax.persistence" name="com.springsource.javax.persistence" rev="1.0.0" conf="compile->compile"/>
|
||||||
<dependency org="javax.servlet" name="com.springsource.javax.servlet" rev="2.4.0" conf="compile->compile"/>
|
<dependency org="javax.servlet" name="com.springsource.javax.servlet" rev="2.4.0" conf="provided->runtime"/>
|
||||||
|
<dependency org="javax.servlet" name="com.springsource.javax.servlet.jsp.jstl" rev="1.1.2" conf="compile->runtime"/>
|
||||||
<dependency org="org.apache.commons" name="com.springsource.org.apache.commons.logging" rev="1.1.1" conf="compile->compile"/>
|
<dependency org="org.apache.commons" name="com.springsource.org.apache.commons.logging" rev="1.1.1" conf="compile->compile"/>
|
||||||
<dependency org="org.apache.log4j" name="com.springsource.org.apache.log4j" rev="1.2.15" conf="compile->compile"/>
|
<dependency org="org.apache.commons" name="com.springsource.org.apache.commons.dbcp" rev="1.2.2.osgi" conf="compile->runtime"/>
|
||||||
|
<dependency org="org.apache.taglibs" name="com.springsource.org.apache.taglibs.standard" rev="1.1.2" conf="compile->runtime"/>
|
||||||
<dependency org="org.aspectj" name="com.springsource.org.aspectj.weaver" rev="1.5.4" conf="compile->compile"/>
|
<dependency org="org.aspectj" name="com.springsource.org.aspectj.weaver" rev="1.5.4" conf="compile->compile"/>
|
||||||
<dependency org="org.hibernate" name="com.springsource.org.hibernate" rev="3.2.6.ga" conf="optional, hibernate->compile"/>
|
<dependency org="org.hibernate" name="com.springsource.org.hibernate" rev="3.2.6.ga" conf="compile->compile"/>
|
||||||
|
<dependency org="org.hsqldb" name="com.springsource.org.hsqldb" rev="1.8.0.9" conf="compile->runtime"/>
|
||||||
|
<dependency org="org.objectweb.asm" name="com.springsource.org.objectweb.asm" rev="2.2.3" conf="compile->compile" />
|
||||||
|
<dependency org="org.objectweb.asm" name="com.springsource.org.objectweb.asm.commons" rev="2.2.3" conf="compile->compile" />
|
||||||
<dependency org="org.springframework" name="org.springframework.orm" rev="latest.integration" conf="compile->compile"/>
|
<dependency org="org.springframework" name="org.springframework.orm" rev="latest.integration" conf="compile->compile"/>
|
||||||
<dependency org="org.springframework" name="org.springframework.web.servlet" rev="latest.integration" conf="compile->compile"/>
|
<dependency org="org.springframework" name="org.springframework.web.servlet" rev="latest.integration" conf="compile->compile"/>
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency org="org.junit" name="com.springsource.org.junit" rev="4.4.0" conf="test->runtime" />
|
<dependency org="org.junit" name="com.springsource.org.junit" rev="4.4.0" conf="test->runtime" />
|
||||||
<dependency org="org.springframework" name="org.springframework.test" rev="latest.integration" conf="test->compile"/>
|
<dependency org="org.springframework" name="org.springframework.test" rev="latest.integration" conf="test->compile"/>
|
||||||
<dependency org="org.objectweb.asm" name="com.springsource.org.objectweb.asm" rev="2.2.3" conf="test->compile" />
|
|
||||||
<dependency org="org.objectweb.asm" name="com.springsource.org.objectweb.asm.commons" rev="2.2.3" conf="test->compile" />
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module relativePaths="true" type="JAVA_MODULE" version="4">
|
<module relativePaths="true" type="JAVA_MODULE" version="4">
|
||||||
<component name="FacetManager">
|
<component name="FacetManager">
|
||||||
<facet type="web" name="Web">
|
<facet type="jpa" name="JPA">
|
||||||
<configuration>
|
<configuration>
|
||||||
<descriptors>
|
<setting name="validation-enabled" value="true" />
|
||||||
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" optional="false" version="2.5" />
|
<setting name="provider-name" value="" />
|
||||||
</descriptors>
|
<setting name="targe-facet" value="" />
|
||||||
<webroots>
|
<datasource-mapping>
|
||||||
<root url="file://$MODULE_DIR$/web" relative="/" />
|
<factory-entry name="PetClinic" />
|
||||||
</webroots>
|
</datasource-mapping>
|
||||||
<building>
|
<deploymentDescriptor name="persistence.xml" url="file://$MODULE_DIR$/src/main/resources/META-INF/persistence.xml" optional="false" version="1.0" />
|
||||||
<setting name="EXPLODED_URL" value="file://$MODULE_DIR$/../out/exploded/petclinicWeb" />
|
|
||||||
<setting name="EXPLODED_ENABLED" value="true" />
|
|
||||||
<setting name="JAR_URL" value="file://" />
|
|
||||||
<setting name="JAR_ENABLED" value="false" />
|
|
||||||
<setting name="EXCLUDE_EXPLODED_DIRECTORY" value="true" />
|
|
||||||
</building>
|
|
||||||
<packaging>
|
|
||||||
<containerElement type="module" name="petclinic">
|
|
||||||
<attribute name="method" value="1" />
|
|
||||||
<attribute name="URI" value="/WEB-INF/classes" />
|
|
||||||
</containerElement>
|
|
||||||
</packaging>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</facet>
|
</facet>
|
||||||
<facet type="web" name="Web2">
|
<facet type="web" name="Web">
|
||||||
<configuration>
|
<configuration>
|
||||||
<descriptors>
|
<descriptors>
|
||||||
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" optional="false" version="2.5" />
|
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" optional="false" version="2.5" />
|
||||||
|
|
@ -32,11 +20,15 @@
|
||||||
<webroots>
|
<webroots>
|
||||||
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
|
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
|
||||||
</webroots>
|
</webroots>
|
||||||
|
<sourceRoots>
|
||||||
|
<root url="file://$MODULE_DIR$/src/main/java" />
|
||||||
|
<root url="file://$MODULE_DIR$/src/main/resources" />
|
||||||
|
</sourceRoots>
|
||||||
<building>
|
<building>
|
||||||
<setting name="EXPLODED_URL" value="file://" />
|
<setting name="EXPLODED_URL" value="file://" />
|
||||||
<setting name="EXPLODED_ENABLED" value="false" />
|
<setting name="EXPLODED_ENABLED" value="false" />
|
||||||
<setting name="JAR_URL" value="file://" />
|
<setting name="JAR_URL" value="file://$MODULE_DIR$/../out/petclinic.war" />
|
||||||
<setting name="JAR_ENABLED" value="false" />
|
<setting name="JAR_ENABLED" value="true" />
|
||||||
<setting name="EXCLUDE_EXPLODED_DIRECTORY" value="true" />
|
<setting name="EXCLUDE_EXPLODED_DIRECTORY" value="true" />
|
||||||
</building>
|
</building>
|
||||||
<packaging>
|
<packaging>
|
||||||
|
|
@ -47,21 +39,14 @@
|
||||||
</packaging>
|
</packaging>
|
||||||
</configuration>
|
</configuration>
|
||||||
</facet>
|
</facet>
|
||||||
<facet type="jpa" name="JPA">
|
|
||||||
<configuration>
|
|
||||||
<setting name="validation-enabled" value="true" />
|
|
||||||
<setting name="provider-name" value="" />
|
|
||||||
<setting name="targe-facet" value="" />
|
|
||||||
<datasource-mapping />
|
|
||||||
<deploymentDescriptor name="persistence.xml" url="file://$MODULE_DIR$/src/main/resources/META-INF/persistence.xml" optional="false" version="1.0" />
|
|
||||||
</configuration>
|
|
||||||
</facet>
|
|
||||||
</component>
|
</component>
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
<exclude-output />
|
<exclude-output />
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" isTestSource="true" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
|
@ -136,6 +121,15 @@
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$APPLICATION_HOME_DIR$/lib/j2ee.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
=========================================
|
||||||
|
== Spring PetClinic sample application ==
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
@author Ken Krebs
|
||||||
|
@author Juergen Hoeller
|
||||||
|
@author Rob Harrop
|
||||||
|
@author Costin Leau
|
||||||
|
@author Sam Brannen
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
1. DATA ACCESS STRATEGIES
|
||||||
|
|
||||||
|
PetClinic features alternative DAO implementations and application
|
||||||
|
configurations for JDBC, Hibernate and JPA, with HSQLDB and MySQL as target
|
||||||
|
databases. The default PetClinic configuration is JDBC on HSQLDB. See
|
||||||
|
"src/jdbc.properties", "war/WEB-INF/web.xml" and
|
||||||
|
"war/WEB-INF/applicationContext-*.xml" for details. A simple comment change in
|
||||||
|
"web.xml" switches between the data access strategies.
|
||||||
|
|
||||||
|
The JDBC and Hibernate versions of PetClinic also demonstrate JMX support via
|
||||||
|
the use of "<context:mbean-export/>" for exporting MBeans. SimpleJdbcClinic
|
||||||
|
exposes the SimpleJdbcClinicMBean management interface via JMX through the use
|
||||||
|
of the @ManagedResource and @ManagedOperation annotations; whereas, the
|
||||||
|
HibernateStatistics service is exposed via JMX through auto-detection of the
|
||||||
|
service MBean. You can start up the JDK's JConsole to manage the exported bean.
|
||||||
|
|
||||||
|
The Spring distribution comes with all required Hibernate and TopLink Essentials
|
||||||
|
(JPA RI) JAR files to be able to build and run PetClinic on those two ORM tools.
|
||||||
|
|
||||||
|
All data access strategies can work with JTA for transaction management, by
|
||||||
|
activating the JtaTransactionManager and a JndiObjectFactoryBean that refers to
|
||||||
|
a transactional container DataSource. The default for JDBC is
|
||||||
|
DataSourceTransactionManager; for Hibernate, HibernateTransactionManager; for
|
||||||
|
JPA, JpaTransactionManager. Those local strategies allow for working with any
|
||||||
|
locally defined DataSource.
|
||||||
|
|
||||||
|
Note that in the default case, the sample configurations for Hibernate and JPA
|
||||||
|
specify Spring's non-pooling DriverManagerDataSource as a local DataSource.
|
||||||
|
You can change the DataSource definition to a Commons DBCP BasicDataSource to
|
||||||
|
get proper connection pooling. See "war/WEB-INF/applicationContext-jdbc.xml" for
|
||||||
|
an example.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
2. BUILD AND DEPLOYMENT
|
||||||
|
|
||||||
|
This directory contains the web app source. For deployment, it needs to be built
|
||||||
|
with Apache Ant 1.6 or higher.
|
||||||
|
|
||||||
|
Run "build.bat" in this directory for available targets (e.g. "build.bat build",
|
||||||
|
"build.bat warfile"). You can use "warfile.bat" as a shortcut for WAR file
|
||||||
|
creation. The WAR file will be created in the "dist" directory.
|
||||||
|
|
||||||
|
You can also invoke an existing installation of Ant with this directory as the
|
||||||
|
execution directory. Note that you must do this in order to execute the "tests"
|
||||||
|
target, as you need the JUnit task from Ant's optional.jar, which is not
|
||||||
|
included in this sample application.
|
||||||
|
|
||||||
|
To execute the web application with its default settings, simply start the
|
||||||
|
HSQLDB instance in the "db/hsqldb" directory, for example using "server.bat".
|
||||||
|
|
||||||
|
For MySQL, you'll need to use the corresponding schema and SQL scripts in the
|
||||||
|
"db/mysql" subdirectory. Follow the steps outlined in
|
||||||
|
"db/mysql/petclinic_db_setup_mysql.txt" for explicit details.
|
||||||
|
|
||||||
|
In you intend to use a local DataSource, the JDBC settings can be adapted in
|
||||||
|
"src/jdbc.properties". To use a JTA DataSource, you need to set up corresponding
|
||||||
|
DataSources in your Java EE container.
|
||||||
|
|
||||||
|
Notes on enabling Log4J:
|
||||||
|
- Log4J is disabled by default, due to JBoss issues
|
||||||
|
- Uncomment the Log4J listener in "WEB-INF/web.xml"
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
3. JPA ON TOMCAT
|
||||||
|
|
||||||
|
Notes on using the Java Persistence API (JPA) on Apache Tomcat 4.x or higher,
|
||||||
|
with a persistence provider that requires class instrumentation (such as TopLink
|
||||||
|
Essentials):
|
||||||
|
|
||||||
|
To use JPA class instrumentation, Tomcat has to be instructed to use a custom
|
||||||
|
class loader which supports instrumentation. See the JPA section of the Spring
|
||||||
|
reference manual for complete details.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
- Copy "spring-tomcat-weaver.jar" from the Spring distribution to
|
||||||
|
"TOMCAT_HOME/server/lib".
|
||||||
|
- If you're running on Tomcat 5.x, modify "TOMCAT_HOME/conf/server.xml"
|
||||||
|
and add a new "<Context>" element for 'petclinic' (see below). You can
|
||||||
|
alternatively deploy the WAR including "META-INF/context.xml" from this
|
||||||
|
sample application's "war" directory, in which case you will need to
|
||||||
|
uncomment the Loader element in that file to enable the use of the
|
||||||
|
TomcatInstrumentableClassLoader.
|
||||||
|
|
||||||
|
<Context path="/petclinic" docBase="/petclinic/location" ...>
|
||||||
|
<!-- please note that useSystemClassLoaderAsParent is available since Tomcat 5.5.20; remove it if previous versions are being used -->
|
||||||
|
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader" useSystemClassLoaderAsParent="false"/>
|
||||||
|
...
|
||||||
|
</Context>
|
||||||
Loading…
Reference in New Issue