You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by jb...@apache.org on 2010/06/17 17:45:32 UTC

svn commit: r955645 - in /servicemix/components/engines/servicemix-pdfcomposer/trunk/src: main/java/org/apache/servicemix/pdfcomposer/ main/java/org/apache/servicemix/pdfcomposer/marshaler/ test/java/org/apache/servicemix/pdfcomposer/marshaler/

Author: jbonofre
Date: Thu Jun 17 15:45:32 2010
New Revision: 955645

URL: http://svn.apache.org/viewvc?rev=955645&view=rev
Log:
Add XPath marshaler and rename the default one as JAXB marshaler.

Added:
    servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/JaxbPdfComposerMarshaler.java
      - copied, changed from r955593, servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshaler.java
    servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/XpathPdfComposerMarshaler.java   (with props)
Removed:
    servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshaler.java
Modified:
    servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/PdfComposerEndpoint.java
    servicemix/components/engines/servicemix-pdfcomposer/trunk/src/test/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshalerTest.java

Modified: servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/PdfComposerEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/PdfComposerEndpoint.java?rev=955645&r1=955644&r2=955645&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/PdfComposerEndpoint.java (original)
+++ servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/PdfComposerEndpoint.java Thu Jun 17 15:45:32 2010
@@ -29,7 +29,7 @@ import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.servicemix.common.endpoints.ProviderEndpoint;
-import org.apache.servicemix.pdfcomposer.marshaler.DefaultPdfComposerMarshaler;
+import org.apache.servicemix.pdfcomposer.marshaler.JaxbPdfComposerMarshaler;
 import org.apache.servicemix.pdfcomposer.marshaler.PdfComposerDataField;
 import org.apache.servicemix.pdfcomposer.marshaler.PdfComposerMarshalerSupport;
 import org.apache.servicemix.pdfcomposer.marshaler.PdfComposerRequest;
@@ -56,7 +56,7 @@ public class PdfComposerEndpoint extends
     private String template; // the template can be static (define in the endpoint descriptor) or provided in the "in" message
     private String templatesBasedir = "."; // the location where to looking for template files
     private Resource wsdl; // the abstract WSDL describing the endpoint behavior
-    private PdfComposerMarshalerSupport marshaler = new DefaultPdfComposerMarshaler();
+    private PdfComposerMarshalerSupport marshaler = new JaxbPdfComposerMarshaler();
     
     public String getTemplate() {
         return this.template;

Copied: servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/JaxbPdfComposerMarshaler.java (from r955593, servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshaler.java)
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/JaxbPdfComposerMarshaler.java?p2=servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/JaxbPdfComposerMarshaler.java&p1=servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshaler.java&r1=955593&r2=955645&rev=955645&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshaler.java (original)
+++ servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/JaxbPdfComposerMarshaler.java Thu Jun 17 15:45:32 2010
@@ -25,14 +25,14 @@ import org.apache.commons.logging.LogFac
 
 /**
  * <p>
- * Default PDF Composer marshaler that uses JAXB to marshal and unmarshal PdfComposerRequest/Response.
+ * JAXB PDF Composer marshaler that uses JAXB to marshal and unmarshal PdfComposerRequest/Response.
  * </p>
  * 
  * @author jbonofre
  */
-public class DefaultPdfComposerMarshaler implements PdfComposerMarshalerSupport {
+public class JaxbPdfComposerMarshaler implements PdfComposerMarshalerSupport {
     
-    private final static transient Log LOG = LogFactory.getLog(DefaultPdfComposerMarshaler.class);
+    private final static transient Log LOG = LogFactory.getLog(JaxbPdfComposerMarshaler.class);
     
     /*
      * (non-Javadoc)

Added: servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/XpathPdfComposerMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/XpathPdfComposerMarshaler.java?rev=955645&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/XpathPdfComposerMarshaler.java (added)
+++ servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/XpathPdfComposerMarshaler.java Thu Jun 17 15:45:32 2010
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicemix.pdfcomposer.marshaler;
+
+import javax.jbi.messaging.NormalizedMessage;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.jdom.xpath.XPath;
+import org.w3c.dom.Node;
+
+/**
+ * <p>
+ * XPath PDF composer marshaler.
+ * </p>
+ * 
+ * @author jbonofre
+ */
+public class XpathPdfComposerMarshaler implements PdfComposerMarshalerSupport {
+    
+    private final static transient Log LOG = LogFactory.getLog(XpathPdfComposerMarshaler.class);
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.servicemix.pdfcomposer.marshaler.PdfComposerMarshalerSupport#unmarshal(javax.jbi.messaging.NormalizedMessage)
+     */
+    public PdfComposerRequest unmarshal(NormalizedMessage in) throws Exception {
+        // TODO check performance issue by using stream
+        
+        LOG.debug("Create the PDF composer request.");
+        PdfComposerRequest request = new PdfComposerRequest();
+
+        LOG.debug("Transform the in NoramlizedMessage to XML node.");
+        SourceTransformer transformer = new SourceTransformer();
+        Node root = transformer.toDOMNode(in);
+        
+        LOG.debug("Extract template.");
+        XPath templateXPath = XPath.newInstance("//template");
+        request.setTemplate(templateXPath.valueOf(root));
+        
+        //LOG.debug("Extract rows.");
+        //XPath rowsXPath = XPath.newInstance("*/row");
+        //List rows = rowsXPath.selectNodes(root);
+        
+        return request;
+    }
+
+}

Propchange: servicemix/components/engines/servicemix-pdfcomposer/trunk/src/main/java/org/apache/servicemix/pdfcomposer/marshaler/XpathPdfComposerMarshaler.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: servicemix/components/engines/servicemix-pdfcomposer/trunk/src/test/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshalerTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-pdfcomposer/trunk/src/test/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshalerTest.java?rev=955645&r1=955644&r2=955645&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-pdfcomposer/trunk/src/test/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshalerTest.java (original)
+++ servicemix/components/engines/servicemix-pdfcomposer/trunk/src/test/java/org/apache/servicemix/pdfcomposer/marshaler/DefaultPdfComposerMarshalerTest.java Thu Jun 17 15:45:32 2010
@@ -46,7 +46,7 @@ public class DefaultPdfComposerMarshaler
      * @see junit.framework.TestCase#setUp()
      */
     public void setUp() {
-        this.marshaler = new DefaultPdfComposerMarshaler();
+        this.marshaler = new JaxbPdfComposerMarshaler();
         this.factory = new MessageExchangeFactoryImpl(new IdGenerator(), new AtomicBoolean(false));
     }