diff --git a/pom.xml b/pom.xml
index 277927bfa..3aef08369 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,12 +70,6 @@
org.springframework
spring-context-support
-
- org.springframework
- spring-oxm
-
-
-
@@ -204,12 +198,6 @@
datatables-export-itext
${dandelion.datatables.version}
-
-
- com.googlecode.json-simple
- json-simple
-
diff --git a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java
index 470b62236..d1b31feed 100644
--- a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java
+++ b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java
@@ -16,36 +16,16 @@
package org.springframework.samples.petclinic;
-import com.github.dandelion.core.web.DandelionFilter;
-import com.github.dandelion.core.web.DandelionServlet;
-import net.sf.ehcache.config.CacheConfiguration;
-import net.sf.ehcache.config.PersistenceConfiguration;
-import net.sf.ehcache.config.PersistenceConfiguration.Strategy;
-import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.context.embedded.FilterRegistrationBean;
-import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.boot.context.web.SpringBootServletInitializer;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.annotation.CachingConfigurerSupport;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.cache.ehcache.EhCacheCacheManager;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.oxm.jaxb.Jaxb2Marshaller;
-import org.springframework.samples.petclinic.model.Vets;
-import org.springframework.web.servlet.view.xml.MarshallingView;
/**
* PetClinic Spring Boot Application.
*
*/
-@Configuration
-@EnableAutoConfiguration
-@ComponentScan
+@SpringBootApplication
public class PetClinicApplication extends SpringBootServletInitializer {
@Override
diff --git a/src/main/java/org/springframework/samples/petclinic/config/CustomViewsConfiguration.java b/src/main/java/org/springframework/samples/petclinic/config/CustomViewsConfiguration.java
deleted file mode 100644
index 9bfdd1cdc..000000000
--- a/src/main/java/org/springframework/samples/petclinic/config/CustomViewsConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2002-2016 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.samples.petclinic.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.oxm.jaxb.Jaxb2Marshaller;
-import org.springframework.samples.petclinic.model.Vets;
-import org.springframework.web.servlet.view.BeanNameViewResolver;
-import org.springframework.web.servlet.view.xml.MarshallingView;
-
-/**
- *
- * {@link BeanNameViewResolver} is used to resolve the Atom and Xml views. So, the
- * following beans names must match the name of the JSP you want to override and the
- * file extension will indicate which bean to use for resolving.
- *
- */
-@Configuration
-public class CustomViewsConfiguration {
-
- @Bean(name = "vets/vetList.xml")
- public MarshallingView vetsXmlView() {
- Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
- marshaller.setClassesToBeBound(Vets.class);
- return new MarshallingView(marshaller);
- }
-}
diff --git a/src/main/java/org/springframework/samples/petclinic/web/VetController.java b/src/main/java/org/springframework/samples/petclinic/web/VetController.java
index 3121e60e8..54baf395a 100644
--- a/src/main/java/org/springframework/samples/petclinic/web/VetController.java
+++ b/src/main/java/org/springframework/samples/petclinic/web/VetController.java
@@ -18,6 +18,7 @@ package org.springframework.samples.petclinic.web;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
import org.springframework.samples.petclinic.model.Vets;
import org.springframework.samples.petclinic.service.ClinicService;
import org.springframework.stereotype.Controller;
@@ -41,7 +42,7 @@ public class VetController {
this.clinicService = clinicService;
}
- @RequestMapping(value = {"/vets.xml", "/vets.html"})
+ @RequestMapping(value = {"/vets.html"})
public String showVetList(Map model) {
// Here we are returning an object of type 'Vets' rather than a collection of Vet objects
// so it is simpler for Object-Xml mapping
@@ -51,7 +52,7 @@ public class VetController {
return "vets/vetList";
}
- @RequestMapping("/vets.json")
+ @RequestMapping(value = {"/vets.json", "/vets.xml"})
public
@ResponseBody
Vets showResourcesVetList() {
diff --git a/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java
index c15ee2552..6f7722391 100644
--- a/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java
@@ -1,5 +1,6 @@
package org.springframework.samples.petclinic.web;
+import org.hamcrest.xml.HasXPath;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -14,6 +15,7 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import static org.hamcrest.xml.HasXPath.hasXPath;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@@ -36,14 +38,12 @@ public class VetControllerTests {
this.mockMvc = MockMvcBuilders.standaloneSetup(vetController).build();
}
- @Test
- public void testShowVetListXml() throws Exception {
- testShowVetList("/vets.xml");
- }
-
@Test
public void testShowVetListHtml() throws Exception {
- testShowVetList("/vets.html");
+ mockMvc.perform(get("/vets.html"))
+ .andExpect(status().isOk())
+ .andExpect(model().attributeExists("vets"))
+ .andExpect(view().name("vets/vetList"));
}
@Test
@@ -54,12 +54,12 @@ public class VetControllerTests {
.andExpect(jsonPath("$.vetList[0].id").value(1));
}
- private void testShowVetList(String url) throws Exception {
- mockMvc.perform(get(url))
+ @Test
+ public void testShowVetListXml() throws Exception {
+ mockMvc.perform(get("/vets.xml").accept(MediaType.APPLICATION_XML))
.andExpect(status().isOk())
- .andExpect(model().attributeExists("vets"))
- .andExpect(view().name("vets/vetList"));
+ .andExpect(content().contentType(MediaType.APPLICATION_XML_VALUE))
+ .andExpect(content().node(hasXPath("/vets/vetList[id=1]/id")));
}
-
}