diff --git a/org.springframework.samples.petclinic/.classpath b/org.springframework.samples.petclinic/.classpath new file mode 100644 index 000000000..5c40e0b3f --- /dev/null +++ b/org.springframework.samples.petclinic/.classpath @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/org.springframework.samples.petclinic/.project b/org.springframework.samples.petclinic/.project new file mode 100644 index 000000000..ed4ca5e5a --- /dev/null +++ b/org.springframework.samples.petclinic/.project @@ -0,0 +1,42 @@ + + + org.springframework.samples.petclinic + + + Servers + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.maven.ide.eclipse.maven2Nature + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.common.modulecore.ModuleCoreNature + + 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 000000000..0a4413c52 --- /dev/null +++ b/org.springframework.samples.petclinic/.settings/com.springsource.server.ide.jdt.core.xml @@ -0,0 +1,2 @@ + + 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 000000000..9ec44e3e6 --- /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 000000000..763a1503d --- /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 000000000..89d4f2ab5 --- /dev/null +++ b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + 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 000000000..d24a733bd --- /dev/null +++ b/org.springframework.samples.petclinic/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,7 @@ + + + + + + + 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 000000000..75abca5ce --- /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 000000000..0b751087c --- /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 000000000..a7eb2b337 --- /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 000000000..e096d67b6 --- /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 000000000..24e2d6593 --- /dev/null +++ b/org.springframework.samples.petclinic/.springBeans @@ -0,0 +1,13 @@ + + + 1 + + + + + + + + + + diff --git a/org.springframework.samples.petclinic/pom.xml b/org.springframework.samples.petclinic/pom.xml new file mode 100644 index 000000000..e38359706 --- /dev/null +++ b/org.springframework.samples.petclinic/pom.xml @@ -0,0 +1,106 @@ + + + 4.0.0 + org.springframework + samples + org.springframework.samples.petclinic + war + 1.0.0-SNAPSHOT + + 2.5.6 + + + + + javax.servlet + jstl + 1.2 + + + log4j + log4j + 1.2.14 + + + org.tuckey + urlrewritefilter + 3.1.0 + + + org.springframework + spring-core + ${spring.version} + + + org.springframework + spring-beans + ${spring.version} + + + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-web + ${spring.version} + + + org.springframework + spring-webmvc + ${spring.version} + + + org.springframework + spring-jdbc + ${spring.version} + + + + javax.servlet + servlet-api + 2.4 + provided + + + javax.servlet.jsp + jsp-api + 2.1 + provided + + + + junit + junit + 4.5 + test + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + + + org.apache.maven.plugins + maven-dependency-plugin + + + install + install + + sources + + + + + + + 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 000000000..b11f02cec --- /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 000000000..4321ce3bd --- /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 000000000..548889c7e --- /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 000000000..e151f45e2 --- /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 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 000000000..9c547d9d0 --- /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 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 000000000..e67a95aa6 --- /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 000000000..e0765ee4c --- /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 000000000..106754071 --- /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 000000000..c3b52f4f1 --- /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 000000000..9120e5838 --- /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 000000000..fd9d5f674 --- /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 000000000..6bcf4e2e7 --- /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 000000000..d65fd3775 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/resources/log4j.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 000000000..b37beeda4 --- /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" %> + + + Welcome + + +

+ Congratulations! You're running Spring! +

+ + 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 000000000..63165f80e --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/app-config.xml @@ -0,0 +1,14 @@ + + + + + + + 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 000000000..c9833d687 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 000000000..26672b6cd --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml @@ -0,0 +1,12 @@ + + + + + /** + /app/$1 + + + /app/** + /$1 + + 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 000000000..95239d4a2 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,36 @@ + + + + + + UrlRewriteFilter + org.tuckey.web.filters.urlrewrite.UrlRewriteFilter + + + + UrlRewriteFilter + /* + + + + + Spring MVC Dispatcher Servlet + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + + /WEB-INF/spring/*.xml + + + 1 + + + + + Spring MVC Dispatcher Servlet + /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 000000000..6cd59573d --- /dev/null +++ b/org.springframework.samples.petclinic/src/test/resources/log4j.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +