petclinic-uncached
Changes
org.springframework.samples.petclinic/.settings/org.eclipse.jst.common.project.facet.core.prefs 3(+3 -0)
org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.project.facet.core.xml 7(+7 -0)
org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.beans.core.prefs 3(+3 -0)
org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.core.prefs 67(+67 -0)
org.springframework.samples.petclinic/pom.xml 106(+106 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/HomeController.java 14(+14 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/Owner.java 26(+26 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java 36(+36 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java 13(+13 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnersController.java 39(+39 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Gender.java 5(+5 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Pet.java 25(+25 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetController.java 41(+41 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetRepository.java 9(+9 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Measurement.java 10(+10 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/ResponseContext.java 9(+9 -0)
Details
diff --git a/org.springframework.samples.petclinic/.classpath b/org.springframework.samples.petclinic/.classpath
new file mode 100644
index 0000000..5c40e0b
--- /dev/null
+++ b/org.springframework.samples.petclinic/.classpath
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.springframework.samples.petclinic/.project b/org.springframework.samples.petclinic/.project
new file mode 100644
index 0000000..ed4ca5e
--- /dev/null
+++ b/org.springframework.samples.petclinic/.project
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.springframework.samples.petclinic</name>
+ <comment></comment>
+ <projects>
+ <project>Servers</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.springframework.ide.eclipse.core.springbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.springframework.ide.eclipse.core.springnature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.springframework.samples.petclinic/.settings/com.springsource.server.ide.jdt.core.xml b/org.springframework.samples.petclinic/.settings/com.springsource.server.ide.jdt.core.xml
new file mode 100644
index 0000000..0a4413c
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/com.springsource.server.ide.jdt.core.xml
@@ -0,0 +1,2 @@
+<classpath>
+</classpath>
diff --git a/org.springframework.samples.petclinic/.settings/org.eclipse.jdt.core.prefs b/org.springframework.samples.petclinic/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..9ec44e3
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Tue Mar 17 10:00:21 EDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.springframework.samples.petclinic/.settings/org.eclipse.jst.common.project.facet.core.prefs b/org.springframework.samples.petclinic/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100644
index 0000000..763a150
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.eclipse.jst.common.project.facet.core.prefs
@@ -0,0 +1,3 @@
+#Tue Mar 17 09:59:19 EDT 2009
+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.launching.macosx.MacOSXType\:\:JVM\ 1.5.0\ (MacOS\ X\ Default)/owners=jst.java\:5.0
+eclipse.preferences.version=1
diff --git a/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.component b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..89d4f2a
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="org.springframework.samples.petclinic">
+ <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
+ <property name="java-output-path" value="target/classes"/>
+ <property name="context-root" value="petclinic"/>
+ </wb-module>
+</project-modules>
diff --git a/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.project.facet.core.xml b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..d24a733
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <fixed facet="jst.web"/>
+ <fixed facet="jst.java"/>
+ <installed facet="jst.java" version="5.0"/>
+ <installed facet="jst.web" version="2.5"/>
+</faceted-project>
diff --git a/org.springframework.samples.petclinic/.settings/org.eclipse.wst.validation.prefs b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..75abca5
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,6 @@
+#Fri Jun 06 17:00:12 BST 2008
+DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
+USER_PREFERENCE=overrideGlobalPreferencesfalse
+eclipse.preferences.version=1
diff --git a/org.springframework.samples.petclinic/.settings/org.maven.ide.eclipse.prefs b/org.springframework.samples.petclinic/.settings/org.maven.ide.eclipse.prefs
new file mode 100644
index 0000000..0b75108
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.maven.ide.eclipse.prefs
@@ -0,0 +1,9 @@
+#Tue Mar 17 14:28:16 EDT 2009
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.beans.core.prefs b/org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.beans.core.prefs
new file mode 100644
index 0000000..a7eb2b3
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.beans.core.prefs
@@ -0,0 +1,3 @@
+#Wed Dec 17 01:09:03 EST 2008
+eclipse.preferences.version=1
+org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false
diff --git a/org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.core.prefs b/org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.core.prefs
new file mode 100644
index 0000000..e096d67
--- /dev/null
+++ b/org.springframework.samples.petclinic/.settings/org.springframework.ide.eclipse.core.prefs
@@ -0,0 +1,67 @@
+#Tue Mar 17 10:00:21 EDT 2009
+eclipse.preferences.version=1
+org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true
+org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=false
+org.springframework.ide.eclipse.core.builders.enable.osgibundleupdater=true
+org.springframework.ide.eclipse.core.enable.project.preferences=false
+org.springframework.ide.eclipse.core.validator.enable.com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.server.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivationPolicyRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivatorRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleManifestVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.exportPackageRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.importRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.parsingProblemsRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.requireBundleRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.AvoidDriverManagerDataSource-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ImportElementsAtTopRulee-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ParentBeanSpecifiesAbstractClassRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.RefElementRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.TooManyBeansInFileRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UnnecessaryValueElementRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UseBeanInheritance-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.legacyxmlusage.jndiobjectfactory-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importLibraryVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importPackageVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.requireBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
diff --git a/org.springframework.samples.petclinic/.springBeans b/org.springframework.samples.petclinic/.springBeans
new file mode 100644
index 0000000..24e2d65
--- /dev/null
+++ b/org.springframework.samples.petclinic/.springBeans
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beansProjectDescription>
+ <version>1</version>
+ <pluginVersion><![CDATA[2.2.3.RELEASE]]></pluginVersion>
+ <configSuffixes>
+ <configSuffix><![CDATA[xml]]></configSuffix>
+ </configSuffixes>
+ <enableImports><![CDATA[true]]></enableImports>
+ <configs>
+ </configs>
+ <configSets>
+ </configSets>
+</beansProjectDescription>
org.springframework.samples.petclinic/pom.xml 106(+106 -0)
diff --git a/org.springframework.samples.petclinic/pom.xml b/org.springframework.samples.petclinic/pom.xml
new file mode 100644
index 0000000..e383597
--- /dev/null
+++ b/org.springframework.samples.petclinic/pom.xml
@@ -0,0 +1,106 @@
+<?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">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.springframework</groupId>
+ <artifactId>samples</artifactId>
+ <name>org.springframework.samples.petclinic</name>
+ <packaging>war</packaging>
+ <version>1.0.0-SNAPSHOT</version>
+ <properties>
+ <spring.version>2.5.6</spring.version>
+ </properties>
+ <dependencies>
+ <!-- Compile dependencies -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>org.tuckey</groupId>
+ <artifactId>urlrewritefilter</artifactId>
+ <version>3.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+ <!-- Container-provided dependencies-->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>install</id>
+ <phase>install</phase>
+ <goals>
+ <goal>sources</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/HomeController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/HomeController.java
new file mode 100644
index 0000000..b11f02c
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/HomeController.java
@@ -0,0 +1,14 @@
+package org.springframework.samples.petclinic;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+@Controller
+public class HomeController {
+
+ @RequestMapping(value="/", method = RequestMethod.GET)
+ public void getHome() {
+ }
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/Owner.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/Owner.java
new file mode 100644
index 0000000..4321ce3
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/Owner.java
@@ -0,0 +1,26 @@
+package org.springframework.samples.petclinic.owner;
+
+
+public class Owner {
+
+ private Long id;
+
+ private String firstName;
+
+ private String lastName;
+
+ private String address;
+
+ private String city;
+
+ private String telephone;
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return lastName;
+ }
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java
new file mode 100644
index 0000000..548889c
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java
@@ -0,0 +1,36 @@
+package org.springframework.samples.petclinic.owner;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.samples.petclinic.util.ResponseContext;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+@Controller
+@RequestMapping(value="/owners/{owner}")
+public class OwnerController {
+
+ private final OwnerRepository repository;
+
+ @Autowired
+ public OwnerController(OwnerRepository repository) {
+ this.repository = repository;
+ }
+
+ @RequestMapping(method=RequestMethod.GET)
+ public Owner get(Long owner) {
+ return repository.getOwner(owner);
+ }
+
+ @RequestMapping(value="/edit", method=RequestMethod.GET)
+ public Owner getEditForm(Long owner) {
+ return repository.getOwner(owner);
+ }
+
+ @RequestMapping(method = RequestMethod.PUT)
+ public void put(Owner owner, ResponseContext response) {
+ repository.saveOwner(owner);
+ response.redirect(owner.getName());
+ }
+
+}
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java
new file mode 100644
index 0000000..e151f45
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java
@@ -0,0 +1,13 @@
+package org.springframework.samples.petclinic.owner;
+
+import java.util.Collection;
+
+public interface OwnerRepository {
+
+ Collection<Owner> findOwnersByLastName(String lastName);
+
+ Owner getOwner(Long id);
+
+ void saveOwner(Owner owner);
+
+}
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnersController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnersController.java
new file mode 100644
index 0000000..9c547d9
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owner/OwnersController.java
@@ -0,0 +1,39 @@
+package org.springframework.samples.petclinic.owner;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.samples.petclinic.util.ResponseContext;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@Controller
+@RequestMapping("/owners")
+public class OwnersController {
+
+ private final OwnerRepository repository;
+
+ @Autowired
+ public OwnersController(OwnerRepository repository) {
+ this.repository = repository;
+ }
+
+ @RequestMapping(method = RequestMethod.GET)
+ public Collection<Owner> get(@RequestParam String lastName) {
+ return repository.findOwnersByLastName(lastName);
+ }
+
+ @RequestMapping(value="/new", method = RequestMethod.GET)
+ public Owner getNewForm() {
+ return new Owner();
+ }
+
+ @RequestMapping(method = RequestMethod.POST)
+ public void post(Owner owner, ResponseContext response) {
+ repository.saveOwner(owner);
+ response.redirect(owner.getName());
+ }
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Gender.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Gender.java
new file mode 100644
index 0000000..e67a95a
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Gender.java
@@ -0,0 +1,5 @@
+package org.springframework.samples.petclinic.pet;
+
+public enum Gender {
+ MALE, FEMALE
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Pet.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Pet.java
new file mode 100644
index 0000000..e0765ee
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/Pet.java
@@ -0,0 +1,25 @@
+package org.springframework.samples.petclinic.pet;
+
+import java.util.Date;
+
+import org.springframework.samples.petclinic.util.Measurement;
+
+public class Pet {
+
+ private String name;
+
+ private String species;
+
+ private String breed;
+
+ private Gender gender;
+
+ private Date birthDate;
+
+ private Measurement weight;
+
+ public String getName() {
+ return name;
+ }
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetController.java
new file mode 100644
index 0000000..1067540
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetController.java
@@ -0,0 +1,41 @@
+package org.springframework.samples.petclinic.pet;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.samples.petclinic.util.ResponseContext;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+@Controller
+@RequestMapping(value="/owners/{owner}/pets/{pet}")
+public class PetController {
+
+ private final PetRepository repository;
+
+ @Autowired
+ public PetController(PetRepository repository) {
+ this.repository = repository;
+ }
+
+ @RequestMapping(method=RequestMethod.GET)
+ public Pet get(Long owner, String pet) {
+ return repository.getPet(owner, pet);
+ }
+
+ @RequestMapping(value="/edit", method=RequestMethod.GET)
+ public Pet getEditForm(Long owner, String pet) {
+ return repository.getPet(owner, pet);
+ }
+
+ @RequestMapping(method = RequestMethod.PUT)
+ public void put(Pet pet, ResponseContext response) {
+ repository.savePet(pet);
+ response.redirect(pet.getName());
+ }
+
+ @RequestMapping(method = RequestMethod.DELETE)
+ public void delete(Long owner, String pet, ResponseContext context) {
+ context.forResource("owners").redirect(owner);
+ }
+
+}
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetRepository.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetRepository.java
new file mode 100644
index 0000000..c3b52f4
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/pet/PetRepository.java
@@ -0,0 +1,9 @@
+package org.springframework.samples.petclinic.pet;
+
+public interface PetRepository {
+
+ Pet getPet(Long owner, String name);
+
+ void savePet(Pet pet);
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Measurement.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Measurement.java
new file mode 100644
index 0000000..9120e58
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Measurement.java
@@ -0,0 +1,10 @@
+package org.springframework.samples.petclinic.util;
+
+import java.math.BigDecimal;
+
+public class Measurement {
+
+ private BigDecimal amount;
+
+ private Unit unit;
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/ResponseContext.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/ResponseContext.java
new file mode 100644
index 0000000..fd9d5f6
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/ResponseContext.java
@@ -0,0 +1,9 @@
+package org.springframework.samples.petclinic.util;
+
+public interface ResponseContext {
+
+ void redirect(Object resource);
+
+ ResponseContext forResource(Object resource);
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Unit.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Unit.java
new file mode 100644
index 0000000..6bcf4e2
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/util/Unit.java
@@ -0,0 +1,5 @@
+package org.springframework.samples.petclinic.util;
+
+public enum Unit {
+ POUNDS
+}
diff --git a/org.springframework.samples.petclinic/src/main/resources/log4j.xml b/org.springframework.samples.petclinic/src/main/resources/log4j.xml
new file mode 100644
index 0000000..d65fd37
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/resources/log4j.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <!-- Appenders -->
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p: %c - %m%n" />
+ </layout>
+ </appender>>
+
+ <!-- Application Loggers -->
+ <logger name="org.springframework.samples">
+ <level value="info" />
+ </logger>
+
+ <!-- 3rdparty Loggers -->
+ <logger name="org.springframework.core">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.beans">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.context">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.web">
+ <level value="info" />
+ </logger>
+
+ <!-- Root Logger -->
+ <root>
+ <priority value="warn" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp
new file mode 100644
index 0000000..b37beed
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp
@@ -0,0 +1,12 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ page session="false" %>
+<html>
+<head>
+ <title>Welcome</title>
+</head>
+<body>
+<h1>
+ Congratulations! You're running Spring!
+</h1>
+</body>
+</html>
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/app-config.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/app-config.xml
new file mode 100644
index 0000000..63165f8
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/app-config.xml
@@ -0,0 +1,14 @@
+<?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:context="http://www.springframework.org/schema/context"
+ 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">
+
+ <!-- Scans within the base package of the application for @Components to configure as beans -->
+ <context:component-scan base-package="org.springframework.samples.petclinic" />
+
+</beans>
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml
new file mode 100644
index 0000000..c9833d6
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml
@@ -0,0 +1,36 @@
+<?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:context="http://www.springframework.org/schema/context"
+ 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">
+
+ <!-- HANDLER MAPPING RULES -->
+
+ <!-- Maps requests to @Controllers based on @RequestMapping("path") annotation values
+ If no annotation-based path mapping is found, Spring MVC proceeds to the next HandlerMapping (order=2 below). -->
+ <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
+ <property name="order" value="1" />
+ </bean>
+
+ <!-- Maps requests to @Controllers based on controller class name convention; e.g. a request for /hotels or a /hotels sub-resource maps to HotelsController
+ If no class mapping is found, Spring MVC sends a 404 response and logs a pageNotFound warning. -->
+ <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
+ <property name="order" value="2" />
+ </bean>
+
+ <!-- REGISTERED HANDLER TYPES -->
+
+ <!-- Enables annotated @Controllers; responsible for invoking an annotated POJO @Controller when one is mapped. -->
+ <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
+
+ <!-- VIEW RESOLUTION AND RENDERING -->
+
+ <!-- Resolves view names to protected .jsp resources within the /WEB-INF directory -->
+ <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+ <property name="prefix" value="/WEB-INF/"/>
+ <property name="suffix" value=".jsp"/>
+ </bean>
+
+</beans>
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml
new file mode 100644
index 0000000..26672b6
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
+<urlrewrite default-match-type="wildcard">
+ <rule>
+ <from>/**</from>
+ <to>/app/$1</to>
+ </rule>
+ <outbound-rule>
+ <from>/app/**</from>
+ <to>/$1</to>
+ </outbound-rule>
+</urlrewrite>
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..95239d4
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+ <!-- Enables clean URLs with JSP views e.g. /welcome instead of /app/welcome -->
+ <filter>
+ <filter-name>UrlRewriteFilter</filter-name>
+ <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>UrlRewriteFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- Handles all requests into the application -->
+ <servlet>
+ <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>
+ /WEB-INF/spring/*.xml
+ </param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <!-- Maps all /app requests to the DispatcherServlet for handling -->
+ <servlet-mapping>
+ <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
+ <url-pattern>/app/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
diff --git a/org.springframework.samples.petclinic/src/test/resources/log4j.xml b/org.springframework.samples.petclinic/src/test/resources/log4j.xml
new file mode 100644
index 0000000..6cd5957
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/test/resources/log4j.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <!-- Appenders -->
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p: %c - %m%n" />
+ </layout>
+ </appender>>
+
+ <!-- Application Loggers -->
+ <logger name="org.springframework.samples">
+ <level value="debug" />
+ </logger>
+
+ <!-- 3rdparty Loggers -->
+ <logger name="org.springframework.core">
+ <level value="debug" />
+ </logger>
+
+ <logger name="org.springframework.beans">
+ <level value="debug" />
+ </logger>
+
+ <logger name="org.springframework.context">
+ <level value="debug" />
+ </logger>
+
+ <logger name="org.springframework.web">
+ <level value="debug" />
+ </logger>
+
+ <!-- Root Logger -->
+ <root>
+ <priority value="warn" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>