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