From 437b6cefe28d8fa6b061f8afeaba4f05c764e878 Mon Sep 17 00:00:00 2001
From: Thorsten Vitt <thorsten.vitt@uni-wuerzburg.de>
Date: Wed, 27 Mar 2013 16:29:58 +0000
Subject: [PATCH] Migrated the aggregator to use CXF 2.7.3.

This resolves the dependency issues which have probably been caused by
our snapshot dependency migrating to CXF 2.7.3 ...

git-svn-id: https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/services/aggregator@13863 7c539038-3410-0410-b1ec-0f2a7bf1c452
---
 pom.xml                                       | 14 +++++++++++--
 .../aggregator/GenericExceptionMapper.java    | 20 ++++++++++---------
 .../aggregator/teicorpus/TEIHeaderStack.java  | 19 +++++++++++-------
 3 files changed, 35 insertions(+), 18 deletions(-)

diff --git a/pom.xml b/pom.xml
index f1111b6..b508a27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,10 +25,10 @@
       <commons-io-version>2.4</commons-io-version>
       <link-rewriter-version>0.0.4-SNAPSHOT</link-rewriter-version>
       <saxon-version>9.4</saxon-version>
-      <cxf-version>2.5.3</cxf-version>
+      <cxf-version>2.7.3</cxf-version>
       <confclient-version>1.0-SNAPSHOT</confclient-version>
       <tgsearch-version>2.1.0-SNAPSHOT</tgsearch-version>
-      <tgcrud-version>2.3.4-SNAPSHOT</tgcrud-version>
+      <tgcrud-version>2.4.0-SNAPSHOT</tgcrud-version>
       <guava-version>13.0.1</guava-version>
       <junit-version>4.10</junit-version>
    </properties>
@@ -130,6 +130,16 @@
 			      <artifactId>commons-io</artifactId>
 			      <version>${commons-io-version}</version>
 		    </dependency>
+		    <dependency>
+		    	<groupId>org.apache.cxf</groupId>
+		    	<artifactId>cxf-rt-transports-http</artifactId>
+		    	<version>${cxf-version}</version>
+		    </dependency>
+		    <dependency>
+		    	<groupId>org.springframework</groupId>
+		    	<artifactId>spring-web</artifactId>
+		    	<version>3.0.6.RELEASE</version>
+		    </dependency>
 	  </dependencies>
 	
 	
diff --git a/src/main/java/info/textgrid/services/aggregator/GenericExceptionMapper.java b/src/main/java/info/textgrid/services/aggregator/GenericExceptionMapper.java
index 1882e5c..036b0aa 100644
--- a/src/main/java/info/textgrid/services/aggregator/GenericExceptionMapper.java
+++ b/src/main/java/info/textgrid/services/aggregator/GenericExceptionMapper.java
@@ -16,7 +16,6 @@
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.Response.StatusType;
 import javax.ws.rs.ext.ExceptionMapper;
 
 import org.springframework.web.util.HtmlUtils;
@@ -63,22 +62,24 @@ public Response toResponse(final Exception exception) {
 		if (exception instanceof WebApplicationException
 				&& exception.getCause() != null) {
 			status = STATUS_MAP.get(exception.getCause().getClass());
-			if (status == null)
+			if (status == null) {
 				status = Status
 				.fromStatusCode(((WebApplicationException) exception)
 						.getResponse().getStatus());
+			}
 			message = exception.getCause().getLocalizedMessage();
 		} else {
 			status = STATUS_MAP.get(exception.getClass());
 			message = exception.getLocalizedMessage();
 		}
-		if (status == null)
+		if (status == null) {
 			status = Status.INTERNAL_SERVER_ERROR;
+		}
 
 		logger.log(Level.WARNING, MessageFormat.format(
 				"{2} {3} returned: caught {0}: {1}", exception.getClass()
 				.getSimpleName(), exception.getMessage(), status
-				.getStatusCode(), status.getReasonPhrase()), exception);
+						.getStatusCode(), status.toString()), exception);
 
 		final Response response = toResponse(status, message, Throwables.getStackTraceAsString(exception));
 		return response;
@@ -91,18 +92,19 @@ public Response toResponse(final Exception exception) {
 	 * @param detail a detail message, e.g., a stack trace. Will be HTML-escaped and displayed in a preformatted way below the status msg.
 	 * @return the generated response.
 	 */
-	public static Response toResponse(final StatusType status, final String message, final String detail) {
+	public static Response toResponse(final Status status,
+			final String message, final String detail) {
 		final ResponseBuilder builder = Response.status(status);
 		builder.type(MediaType.APPLICATION_XHTML_XML_TYPE);
 		builder.entity(prepareXHTMLMessage(status, message, detail));
 		return builder.build();
 	}
 
-	public static String prepareXHTMLMessage(final StatusType status,
+	public static String prepareXHTMLMessage(final Status status,
 			final String message, final String detail) {
-		return MessageFormat.format(HTML_TEMPLATE, status
-				.getStatusCode(), status.getReasonPhrase(), HtmlUtils
-				.htmlEscapeHex(message), HtmlUtils.htmlEscapeHex(detail));
+		return MessageFormat.format(HTML_TEMPLATE, status.getStatusCode(),
+				HtmlUtils.htmlEscapeHex(message),
+				HtmlUtils.htmlEscapeHex(detail));
 	}
 
 
diff --git a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java
index 463cdb0..dcb2a95 100644
--- a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java
+++ b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java
@@ -32,8 +32,8 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.cxf.jaxb.JAXBContextCache;
-import org.apache.cxf.jaxb.JAXBContextCache.CachedContextAndSchemas;
+import org.apache.cxf.common.jaxb.JAXBContextCache;
+import org.apache.cxf.common.jaxb.JAXBContextCache.CachedContextAndSchemas;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -61,13 +61,15 @@ public TEIHeaderStack(final ObjectType object) throws ObjectNotFoundFault,
 		parents.add(object);
 		final PathResponse pathResponse = repository.getPublicSearchClient().getPath(
 				uri);
-		for (final PathGroupType pathGroup : pathResponse.getPathGroup())
-			for (final PathType path : pathGroup.getPath())
+		for (final PathGroupType pathGroup : pathResponse.getPathGroup()) {
+			for (final PathType path : pathGroup.getPath()) {
 				for (final EntryType entry : path.getEntry())
 					if (!entry.getTextgridUri().equals(uri)) {
 						final MetadataContainerType container = repository.getCRUDService().readMetadata(null, "", entry.getTextgridUri());
 						parents.add(0, container.getObject());
 					}
+			}
+		}
 	}
 
 	public void push(final ObjectType object) {
@@ -92,18 +94,21 @@ public Document generateCommonDOM() {
 			try {
 				final CachedContextAndSchemas cachedContextAndSchemas = JAXBContextCache
 						.getCachedContextAndSchemas(ObjectType.class);
-				if (cachedContextAndSchemas != null)
+				if (cachedContextAndSchemas != null) {
 					context = cachedContextAndSchemas.getContext();
+				}
 			} catch (final JAXBException e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
-			if (context == null)
+			if (context == null) {
 				context = JAXBContext.newInstance(ObjectType.class);
+			}
 			final Marshaller marshaller = context.createMarshaller();
 			marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
-			for (final ObjectType object : parents)
+			for (final ObjectType object : parents) {
 				marshaller.marshal(object, rootElement);
+			}
 			return document;
 		} catch (final ParserConfigurationException e) {
 			throw new IllegalStateException(e);
-- 
GitLab