Return-Path: X-Original-To: apmail-chemistry-commits-archive@www.apache.org Delivered-To: apmail-chemistry-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3394396A5 for ; Sat, 25 Feb 2012 13:44:35 +0000 (UTC) Received: (qmail 77555 invoked by uid 500); 25 Feb 2012 13:44:35 -0000 Delivered-To: apmail-chemistry-commits-archive@chemistry.apache.org Received: (qmail 77509 invoked by uid 500); 25 Feb 2012 13:44:35 -0000 Mailing-List: contact commits-help@chemistry.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@chemistry.apache.org Delivered-To: mailing list commits@chemistry.apache.org Received: (qmail 77499 invoked by uid 99); 25 Feb 2012 13:44:35 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 25 Feb 2012 13:44:35 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 25 Feb 2012 13:44:24 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 204FF2388A67; Sat, 25 Feb 2012 13:43:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1293600 [6/9] - in /chemistry/opencmis/branches/android: ./ chemistry-opencmis-client/chemistry-opencmis-client-bindings/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindi... Date: Sat, 25 Feb 2012 13:43:34 -0000 To: commits@chemistry.apache.org From: fmui@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120225134339.204FF2388A67@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java Sat Feb 25 13:43:31 2012 @@ -29,8 +29,8 @@ import org.apache.chemistry.opencmis.jcr import org.apache.chemistry.opencmis.jcr.impl.DefaultUnversionedDocumentTypeHandler; import org.apache.chemistry.opencmis.jcr.type.JcrTypeHandlerManager; import org.apache.chemistry.opencmis.server.support.CmisServiceWrapper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.imageio.spi.ServiceRegistry; import javax.jcr.Repository; @@ -48,7 +48,7 @@ import java.util.Map; * A {@link CmisServiceFactory} implementation which returns {@link JcrService} instances. */ public class JcrServiceFactory extends AbstractServiceFactory { - private static final Log log = LogFactory.getLog(JcrServiceFactory.class); + private static final Logger log = LoggerFactory.getLogger(JcrServiceFactory.class); public static final String MOUNT_PATH_CONFIG = "mount-path"; public static final String PREFIX_JCR_CONFIG = "jcr."; Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java Sat Feb 25 13:43:31 2012 @@ -45,8 +45,8 @@ import org.apache.chemistry.opencmis.com import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl; import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl; import org.apache.chemistry.opencmis.server.support.TypeManager; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.math.BigInteger; import java.util.ArrayList; @@ -59,7 +59,7 @@ import java.util.Map; * Type Manager. */ public class JcrTypeManager implements TypeManager { - private static final Log log = LogFactory.getLog(JcrTypeManager.class); + private static final Logger log = LoggerFactory.getLogger(JcrTypeManager.class); public static final String DOCUMENT_TYPE_ID = "cmis:document"; public static final String FOLDER_TYPE_ID = "cmis:folder"; Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java Sat Feb 25 13:43:31 2012 @@ -29,8 +29,8 @@ import org.apache.chemistry.opencmis.com import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl; import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl; import org.apache.chemistry.opencmis.jcr.type.JcrTypeHandlerManager; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -47,7 +47,7 @@ import java.util.Set; * JCR Node. */ public abstract class JcrVersionBase extends JcrDocument { - private static final Log log = LogFactory.getLog(JcrVersionBase.class); + private static final Logger log = LoggerFactory.getLogger(JcrVersionBase.class); protected JcrVersionBase(Node node, JcrTypeManager typeManager, PathManager pathManager, JcrTypeHandlerManager typeHandlerManager) { super(node, typeManager, pathManager, typeHandlerManager); Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java Sat Feb 25 13:43:31 2012 @@ -21,8 +21,8 @@ package org.apache.chemistry.opencmis.jc import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException; import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -31,7 +31,7 @@ import javax.jcr.RepositoryException; * Utility class for mapping JCR paths to CMIS paths */ public class PathManager { - private static final Log log = LogFactory.getLog(PathManager.class); + private static final Logger log = LoggerFactory.getLogger(PathManager.class); /** * Identifier of the root folder Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java Sat Feb 25 13:43:31 2012 @@ -35,8 +35,8 @@ import org.apache.chemistry.opencmis.jcr import org.apache.chemistry.opencmis.jcr.JcrVersionBase; import org.apache.chemistry.opencmis.jcr.query.IdentifierMap; import org.apache.chemistry.opencmis.jcr.type.JcrDocumentTypeHandler; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.jcr.Binary; import javax.jcr.Node; @@ -53,7 +53,7 @@ import java.io.IOException; */ public class DefaultDocumentTypeHandler extends AbstractJcrTypeHandler implements JcrDocumentTypeHandler { - private static final Log log = LogFactory.getLog(JcrFolder.class); + private static final Logger log = LoggerFactory.getLogger(JcrFolder.class); public String getTypeId() { return BaseTypeId.CMIS_DOCUMENT.value(); Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java Sat Feb 25 13:43:31 2012 @@ -27,8 +27,8 @@ import org.apache.chemistry.opencmis.jcr import org.apache.chemistry.opencmis.jcr.JcrTypeManager; import org.apache.chemistry.opencmis.jcr.query.IdentifierMap; import org.apache.chemistry.opencmis.jcr.type.JcrFolderTypeHandler; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -39,7 +39,7 @@ import javax.jcr.nodetype.NodeType; */ public class DefaultFolderTypeHandler extends AbstractJcrTypeHandler implements JcrFolderTypeHandler { - private static final Log log = LogFactory.getLog(DefaultFolderTypeHandler.class); + private static final Logger log = LoggerFactory.getLogger(DefaultFolderTypeHandler.class); private static class FolderIdentifierMap extends DefaultIdentifierMapBase { Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/type/JcrTypeHandlerManager.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/type/JcrTypeHandlerManager.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/type/JcrTypeHandlerManager.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/type/JcrTypeHandlerManager.java Sat Feb 25 13:43:31 2012 @@ -25,8 +25,8 @@ import org.apache.chemistry.opencmis.jcr import org.apache.chemistry.opencmis.jcr.PathManager; import org.apache.chemistry.opencmis.jcr.query.IdentifierMap; import org.apache.chemistry.opencmis.jcr.util.Predicate; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -38,7 +38,7 @@ import java.util.Map; */ public class JcrTypeHandlerManager { - private static final Log log = LogFactory.getLog(JcrTypeHandlerManager.class); + private static final Logger log = LoggerFactory.getLogger(JcrTypeHandlerManager.class); private final PathManager pathManager; private final JcrTypeManager typeManager; Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisQueryWalker.g URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisQueryWalker.g?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisQueryWalker.g (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisQueryWalker.g Sat Feb 25 13:43:31 2012 @@ -61,12 +61,12 @@ options { package org.apache.chemistry.opencmis.server.support.query; import java.math.BigDecimal; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; } @members { - private static Log LOG = LogFactory.getLog(CmisQueryWalker.class); + private static final Logger log = LoggerFactory.getLogger(CmisQueryWalker.class); private QueryObject queryObj; private Tree wherePredicateTree; @@ -298,7 +298,9 @@ search_condition } | value_expression { - LOG.debug(" add node to where: " + $value_expression.start + " id: " + System.identityHashCode($value_expression.start)); + if (log.isDebugEnabled()) { + log.debug(" add node to where: " + $value_expression.start + " id: " + System.identityHashCode($value_expression.start)); + } queryObj.addWhereReference($value_expression.start, $value_expression.result); } | literal Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java Sat Feb 25 13:43:31 2012 @@ -53,8 +53,8 @@ import org.apache.chemistry.opencmis.com import org.apache.chemistry.opencmis.commons.server.CmisService; import org.apache.chemistry.opencmis.commons.server.ObjectInfo; import org.apache.chemistry.opencmis.commons.spi.Holder; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Service wrapper. @@ -63,7 +63,7 @@ public class CmisServiceWrapperAclPropagation.REPOSITORYDETERMINED if value is - * null. + * Returns the AclPropagation.REPOSITORYDETERMINED if + * value is null. */ protected AclPropagation getDefault(AclPropagation value) { if (value == null) { @@ -329,9 +328,8 @@ public class CmisServiceWrapperRelationshipDirection.SOURCE if value is - * null . + * Returns the RelationshipDirection.SOURCE if + * value is null . */ protected RelationshipDirection getDefault(RelationshipDirection value) { if (value == null) { Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeValidator.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeValidator.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeValidator.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeValidator.java Sat Feb 25 13:43:31 2012 @@ -29,8 +29,6 @@ import org.apache.chemistry.opencmis.com import org.apache.chemistry.opencmis.commons.data.Acl; import org.apache.chemistry.opencmis.commons.data.Properties; import org.apache.chemistry.opencmis.commons.data.PropertyData; -import org.apache.chemistry.opencmis.commons.data.PropertyDecimal; -import org.apache.chemistry.opencmis.commons.data.PropertyInteger; import org.apache.chemistry.opencmis.commons.definitions.Choice; import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition; import org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition; Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java Sat Feb 25 13:43:31 2012 @@ -1,602 +1,600 @@ -/* - * 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.chemistry.opencmis.server.support.filter; - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; -import java.io.Writer; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.Scanner; - -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletInputStream; -import javax.servlet.ServletOutputStream; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpServletResponseWrapper; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Source; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class LoggingFilter implements Filter { - - private static final Log log = LogFactory.getLog(LoggingFilter.class); - private static int REQUEST_NO = 0; - private static final SimpleDateFormat FORMAT = new SimpleDateFormat("EEE MMM dd hh:mm:ss a z yyyy", Locale.US); - private String logDir; - private boolean prettyPrint = true; - private boolean logHeaders = true; - private int indent = -1; - - public void init(FilterConfig cfg) throws ServletException { - - String val; - logDir = cfg.getInitParameter("LogDir"); - if (null == logDir || logDir.length() == 0) - logDir = System.getProperty("java.io.tmpdir"); - if (null == logDir|| logDir.length() == 0) - logDir = "." + File.separator; - - if (!logDir.endsWith(File.separator)) - logDir += File.separator; - - val = cfg.getInitParameter("Indent"); - if (null != val) - indent = Integer.parseInt(val); - if (indent < 0) - indent = 4; - - val = cfg.getInitParameter("PrettyPrint"); - if (null != val) - prettyPrint = Boolean.parseBoolean(val); - - val = cfg.getInitParameter("LogHeaders"); - if (null != val) - logHeaders = Boolean.parseBoolean(val); - } - - public void destroy() { - } - - public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, - ServletException { - log.debug("Logging filter doFilter"); - - if (resp instanceof HttpServletResponse && req instanceof HttpServletRequest) { - LoggingRequestWrapper logReq = new LoggingRequestWrapper((HttpServletRequest)req); - LoggingResponseWrapper logResponse = new LoggingResponseWrapper((HttpServletResponse)resp); - - chain.doFilter(logReq, logResponse); - - int reqNo = getNextRequestNumber(); - String requestFileName = getRequestFileName(reqNo); - String cType = logReq.getContentType(); - String xmlRequest = logReq.getPayload(); - StringBuffer sb = new StringBuffer(); - - if (logHeaders) - logHeaders(logReq, sb); - - if (xmlRequest == null || xmlRequest.length() == 0) - xmlRequest = ""; - - if (prettyPrint && cType != null) { - if (cType.startsWith("multipart")) { - xmlRequest = processMultipart(cType, xmlRequest); - } else if (cType.contains("xml")) { - xmlRequest = prettyPrintXml(xmlRequest, indent); - } - } - - xmlRequest = sb.toString() + xmlRequest; - log.debug("Found request: " + requestFileName + ": " + xmlRequest); - writeTextToFile(requestFileName, xmlRequest); - - - sb = new StringBuffer(); - cType = logResponse.getContentType(); - String xmlResponse = logResponse.getPayload(); - String responseFileName = getResponseFileName(reqNo); - - if (logHeaders) { - logHeaders(logResponse, req.getProtocol(), sb); - } - - if (xmlResponse == null || xmlResponse.length() == 0) - xmlResponse = ""; - - if (prettyPrint && cType != null) { - if (cType.startsWith("multipart")) { - xmlResponse = processMultipart(cType, xmlResponse); - } else if (cType.contains("xml")) { - xmlResponse = prettyPrintXml(xmlResponse, indent); - } else if (cType.contains("json")) { - xmlResponse = prettyPrintJson(xmlResponse, indent); - } - } - - xmlResponse = sb.toString() + xmlResponse; - log.debug("Found response: " + responseFileName + ": " + xmlResponse); - writeTextToFile(responseFileName, xmlResponse); - } else { - chain.doFilter(req, resp); - } - } - - private void writeTextToFile(String filename, String content) { - PrintWriter pw = null; - FileWriter fw = null; - try { - fw = new FileWriter(filename); - pw = new PrintWriter(fw); - - Scanner scanner = new Scanner(content); - while (scanner.hasNextLine()) { - String line = scanner.nextLine(); - pw.println(line); - } - - pw.flush(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (pw != null) - pw.close(); - if (fw != null) - try { - fw.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - private static String prettyPrintXml(String input, int indent) { - try { - Source xmlInput = new StreamSource(new StringReader(input)); - StringWriter stringWriter = new StringWriter(); - StreamResult xmlOutput = new StreamResult(stringWriter); - TransformerFactory transformerFactory = TransformerFactory.newInstance(); - transformerFactory.setAttribute("indent-number", indent); - Transformer transformer = transformerFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.transform(xmlInput, xmlOutput); - return xmlOutput.getWriter().toString(); - } catch (Exception e) { - throw new RuntimeException(e); // simple exception handling, please review it - } - } - - private static String prettyPrintJson(String input, int indent) { - JsonPrettyPrinter pp = new JsonPrettyPrinter(indent); - return pp.prettyPrint(input); - } - - private String processMultipart(String cType, String messageBody) throws IOException { - int beginIndex = cType.indexOf("boundary=\"") + 10; - int endIndex = cType.indexOf("\"", beginIndex); - if (endIndex < 0) - endIndex = cType.length(); - String boundary = "--" + cType.substring(beginIndex, endIndex); - log.debug("Boundary = " + boundary); - BufferedReader in = new BufferedReader(new StringReader(messageBody)); - StringBuffer out = new StringBuffer(); - String line; - ByteArrayOutputStream xmlBodyBuffer = new ByteArrayOutputStream(); - boolean boundaryFound; - - boolean inXmlOrJsonBody = false; - boolean inXmlOrJsonPart = false; - boolean isXml; - while ((line = in.readLine()) != null) { - if (inXmlOrJsonPart) { - if (line.startsWith(" 0) { - sb.append("?"); - sb.append(queryString); - } - sb.append(" "); - sb.append(req.getProtocol()); - sb.append("\n"); - Enumeration headerNames = req.getHeaderNames(); - while (headerNames.hasMoreElements()) { - String headerName = headerNames.nextElement().toString(); - headerName = headerName.substring(0, 1).toUpperCase() + headerName.substring(1); - sb.append(headerName + ": "); - sb.append(req.getHeader(headerName)); - sb.append("\n"); - } - sb.append("\n"); - } - - private void logHeaders(LoggingResponseWrapper resp, String protocol, StringBuffer sb) { - sb.append(protocol); - sb.append(" "); - sb.append(String.valueOf(resp.getStatus())); - sb.append("\n"); - Map headers = resp.getHeaders(); - for ( Map.Entry header: headers.entrySet()) { - sb.append(header.getKey()); - sb.append(": "); - sb.append(header.getValue()); - sb.append("\n"); - } - sb.append("\n"); - } - - private String getRequestFileName(int no) { - return logDir + String.format("%05d-request.log", no); - } - - private String getResponseFileName(int no) { - return logDir + String.format("%05d-response.log", no); - } - - private static synchronized int getNextRequestNumber() { - return REQUEST_NO++; - } - - private class LoggingRequestWrapper extends HttpServletRequestWrapper { - - private LoggingInputStream is; - - public LoggingRequestWrapper(HttpServletRequest request) throws IOException { - super(request); - } - - @Override - public ServletInputStream getInputStream() throws IOException { - this.is = new LoggingInputStream(super.getInputStream()); - return is; - } - - public String getPayload() { - return null == is ? "" : is.getPayload(); - } - } - - private class LoggingInputStream extends ServletInputStream { - - private ByteArrayOutputStream baous = new ByteArrayOutputStream(); - private ServletInputStream is; - - public LoggingInputStream(ServletInputStream is) { - super(); - this.is = is; - } - - // Since we are not sure which method is used just overwrite all 4 of them: - @Override - public int read() throws IOException { - int ch = is.read(); - if (ch != -1) { - baous.write(ch); - } - return ch; - } - - @Override - public int read(byte[] b) throws IOException { - int ch = is.read(b); - if (ch != -1) { - baous.write(b, 0, ch); - } - return ch; - } - - @Override - public int read(byte[] b, int o, int l) throws IOException { - int ch = is.read(b, o, l); - if (ch != -1) { - baous.write(b, o, ch); - } - return ch; - } - - @Override - public int readLine(byte[] b, int o, int l) throws IOException { - int ch = is.readLine(b, o, l); - if (ch != -1) { - baous.write(b, o, ch); - } - return ch; - } - - public String getPayload() { - return baous.toString(); - } - } - - private class LoggingResponseWrapper extends HttpServletResponseWrapper { - - private LoggingOutputStream os; - private PrintWriter writer; - private int statusCode; - private Map headers = new HashMap(); - String encoding; - - public LoggingResponseWrapper(HttpServletResponse response) throws IOException { - super(response); - this.os = new LoggingOutputStream(response.getOutputStream()); - } - - @Override - public PrintWriter getWriter() { - try { - if (null == writer) - writer = new PrintWriter(this.getOutputStream()); - return writer; - } catch (IOException e) { - log.error("Failed to get PrintWriter in LoggingFilter: "+ e); - e.printStackTrace(); - return null; - } - } - - @Override - public ServletOutputStream getOutputStream() throws IOException { - return os; - } - - public String getPayload() { - return os.getPayload(); - } - - @Override - public void addCookie(Cookie cookie) { - super.addCookie(cookie); - String value; - if (headers.containsKey("Cookie")) { - value = headers.get("Cookie") + "; " + cookie.toString(); - } else - value = cookie.toString(); - headers.put("Cookie", value); - } - - @Override - public void setContentType(String type) { - super.setContentType(type); - if (headers.containsKey("Content-Type")) { - String cType = headers.get("Content-Type"); - int pos = cType.indexOf(";charset="); - if (pos < 0 && encoding != null) - type = cType + ";charset=" + encoding; - else if (pos >= 0) - encoding = null; - } - headers.put("Content-Type", type); - } - - @Override - public void setCharacterEncoding(java.lang.String charset) { - super.setCharacterEncoding(charset); - encoding = charset; - if (headers.containsKey("Content-Type")) { - String cType = headers.get("Content-Type"); - int pos = cType.indexOf(";charset="); - if (pos >=0) - cType = cType.substring(0, pos) + ";charset=" + encoding; - else - cType = cType + ";charset=" + encoding; - headers.put("Content-Type", cType); - } - } - - @Override - public void setContentLength(int len) { - super.setContentLength(len); - headers.put("Content-Length", String.valueOf(len)); - } - - private String getDateString(long date) { - return FORMAT.format(new Date(date)); - } - - @Override - public void setDateHeader(String name, long date) { - super.setDateHeader(name, date); - headers.put(name, String.valueOf(getDateString(date))); - } - - @Override - public void addDateHeader(String name, long date) { - super.addDateHeader(name, date); - if (headers.containsKey(name)) { - headers.put(name, headers.get(name) + "; " + getDateString(date)); - } else { - headers.put(name, String.valueOf(getDateString(date))); - } - } - - @Override - public void setHeader(String name, String value) { - super.setHeader(name, value); - headers.put(name, String.valueOf(value)); - } - - @Override - public void addHeader(String name, String value) { - super.addHeader(name, value); - if (headers.containsKey(name)) { - headers.put(name, headers.get(name) + "; " + value); - } else { - headers.put(name, String.valueOf(value)); - } - } - - @Override - public void setIntHeader(String name, int value) { - super.setIntHeader(name, value); - headers.put(name, String.valueOf(value)); - } - - @Override - public void addIntHeader(String name, int value) { - super.addIntHeader(name, value); - if (headers.containsKey(name)) { - headers.put(name, headers.get(name) + "; " + String.valueOf(value)); - } else { - headers.put(name, String.valueOf(value)); - } - } - - @Override - public void sendError(int sc) throws IOException { - statusCode = sc; - super.sendError(sc); - } - - @Override - public void sendError(int sc, String msg) throws IOException { - statusCode = sc; - super.sendError(sc, msg); - } - - @Override - public void sendRedirect(String location) throws IOException { - statusCode = 302; - super.sendRedirect(location); - } - - @Override - public void setStatus(int sc) { - statusCode = sc; - super.setStatus(sc); - } - - public int getStatus() { - return statusCode; - } - - public Map getHeaders() { - return headers; - } - } - - private class LoggingOutputStream extends ServletOutputStream { - private ByteArrayOutputStream baous = new ByteArrayOutputStream(); - private ServletOutputStream os; - - public LoggingOutputStream(ServletOutputStream os) { - super(); - this.os = os; - } - - public String getPayload() { - return new String(baous.toString()); - } - - @Override - public void write(byte[] b, int off, int len) { - try { - baous.write(b, off, len); - os.write(b, off, len); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public - void write(byte[] b) { - try { - baous.write(b); - os.write(b); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public void write(int ch) throws IOException { - baous.write(ch); - os.write(ch); - } - } -} +/* + * 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.chemistry.opencmis.server.support.filter; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringReader; +import java.io.StringWriter; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Scanner; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.ServletOutputStream; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class LoggingFilter implements Filter { + + private static final Logger log = LoggerFactory.getLogger(LoggingFilter.class); + private static int REQUEST_NO = 0; + private static final SimpleDateFormat FORMAT = new SimpleDateFormat("EEE MMM dd hh:mm:ss a z yyyy", Locale.US); + private String logDir; + private boolean prettyPrint = true; + private boolean logHeaders = true; + private int indent = -1; + + public void init(FilterConfig cfg) throws ServletException { + + String val; + logDir = cfg.getInitParameter("LogDir"); + if (null == logDir || logDir.length() == 0) + logDir = System.getProperty("java.io.tmpdir"); + if (null == logDir|| logDir.length() == 0) + logDir = "." + File.separator; + + if (!logDir.endsWith(File.separator)) + logDir += File.separator; + + val = cfg.getInitParameter("Indent"); + if (null != val) + indent = Integer.parseInt(val); + if (indent < 0) + indent = 4; + + val = cfg.getInitParameter("PrettyPrint"); + if (null != val) + prettyPrint = Boolean.parseBoolean(val); + + val = cfg.getInitParameter("LogHeaders"); + if (null != val) + logHeaders = Boolean.parseBoolean(val); + } + + public void destroy() { + } + + public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, + ServletException { + log.debug("Logging filter doFilter"); + + if (resp instanceof HttpServletResponse && req instanceof HttpServletRequest) { + LoggingRequestWrapper logReq = new LoggingRequestWrapper((HttpServletRequest)req); + LoggingResponseWrapper logResponse = new LoggingResponseWrapper((HttpServletResponse)resp); + + chain.doFilter(logReq, logResponse); + + int reqNo = getNextRequestNumber(); + String requestFileName = getRequestFileName(reqNo); + String cType = logReq.getContentType(); + String xmlRequest = logReq.getPayload(); + StringBuffer sb = new StringBuffer(); + + if (logHeaders) + logHeaders(logReq, sb); + + if (xmlRequest == null || xmlRequest.length() == 0) + xmlRequest = ""; + + if (prettyPrint && cType != null) { + if (cType.startsWith("multipart")) { + xmlRequest = processMultipart(cType, xmlRequest); + } else if (cType.contains("xml")) { + xmlRequest = prettyPrintXml(xmlRequest, indent); + } + } + + xmlRequest = sb.toString() + xmlRequest; + log.debug("Found request: " + requestFileName + ": " + xmlRequest); + writeTextToFile(requestFileName, xmlRequest); + + + sb = new StringBuffer(); + cType = logResponse.getContentType(); + String xmlResponse = logResponse.getPayload(); + String responseFileName = getResponseFileName(reqNo); + + if (logHeaders) { + logHeaders(logResponse, req.getProtocol(), sb); + } + + if (xmlResponse == null || xmlResponse.length() == 0) + xmlResponse = ""; + + if (prettyPrint && cType != null) { + if (cType.startsWith("multipart")) { + xmlResponse = processMultipart(cType, xmlResponse); + } else if (cType.contains("xml")) { + xmlResponse = prettyPrintXml(xmlResponse, indent); + } else if (cType.contains("json")) { + xmlResponse = prettyPrintJson(xmlResponse, indent); + } + } + + xmlResponse = sb.toString() + xmlResponse; + log.debug("Found response: " + responseFileName + ": " + xmlResponse); + writeTextToFile(responseFileName, xmlResponse); + } else { + chain.doFilter(req, resp); + } + } + + private void writeTextToFile(String filename, String content) { + PrintWriter pw = null; + FileWriter fw = null; + try { + fw = new FileWriter(filename); + pw = new PrintWriter(fw); + + Scanner scanner = new Scanner(content); + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + pw.println(line); + } + + pw.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (pw != null) + pw.close(); + if (fw != null) + try { + fw.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + private static String prettyPrintXml(String input, int indent) { + try { + Source xmlInput = new StreamSource(new StringReader(input)); + StringWriter stringWriter = new StringWriter(); + StreamResult xmlOutput = new StreamResult(stringWriter); + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformerFactory.setAttribute("indent-number", indent); + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.transform(xmlInput, xmlOutput); + return xmlOutput.getWriter().toString(); + } catch (Exception e) { + throw new RuntimeException(e); // simple exception handling, please review it + } + } + + private static String prettyPrintJson(String input, int indent) { + JsonPrettyPrinter pp = new JsonPrettyPrinter(indent); + return pp.prettyPrint(input); + } + + private String processMultipart(String cType, String messageBody) throws IOException { + int beginIndex = cType.indexOf("boundary=\"") + 10; + int endIndex = cType.indexOf("\"", beginIndex); + if (endIndex < 0) + endIndex = cType.length(); + String boundary = "--" + cType.substring(beginIndex, endIndex); + log.debug("Boundary = " + boundary); + BufferedReader in = new BufferedReader(new StringReader(messageBody)); + StringBuffer out = new StringBuffer(); + String line; + ByteArrayOutputStream xmlBodyBuffer = new ByteArrayOutputStream(); + boolean boundaryFound; + + boolean inXmlOrJsonBody = false; + boolean inXmlOrJsonPart = false; + boolean isXml; + while ((line = in.readLine()) != null) { + if (inXmlOrJsonPart) { + if (line.startsWith(" 0) { + sb.append("?"); + sb.append(queryString); + } + sb.append(" "); + sb.append(req.getProtocol()); + sb.append("\n"); + Enumeration headerNames = req.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement().toString(); + headerName = headerName.substring(0, 1).toUpperCase() + headerName.substring(1); + sb.append(headerName + ": "); + sb.append(req.getHeader(headerName)); + sb.append("\n"); + } + sb.append("\n"); + } + + private void logHeaders(LoggingResponseWrapper resp, String protocol, StringBuffer sb) { + sb.append(protocol); + sb.append(" "); + sb.append(String.valueOf(resp.getStatus())); + sb.append("\n"); + Map headers = resp.getHeaders(); + for ( Map.Entry header: headers.entrySet()) { + sb.append(header.getKey()); + sb.append(": "); + sb.append(header.getValue()); + sb.append("\n"); + } + sb.append("\n"); + } + + private String getRequestFileName(int no) { + return logDir + String.format("%05d-request.log", no); + } + + private String getResponseFileName(int no) { + return logDir + String.format("%05d-response.log", no); + } + + private static synchronized int getNextRequestNumber() { + return REQUEST_NO++; + } + + private class LoggingRequestWrapper extends HttpServletRequestWrapper { + + private LoggingInputStream is; + + public LoggingRequestWrapper(HttpServletRequest request) throws IOException { + super(request); + } + + @Override + public ServletInputStream getInputStream() throws IOException { + this.is = new LoggingInputStream(super.getInputStream()); + return is; + } + + public String getPayload() { + return null == is ? "" : is.getPayload(); + } + } + + private class LoggingInputStream extends ServletInputStream { + + private ByteArrayOutputStream baous = new ByteArrayOutputStream(); + private ServletInputStream is; + + public LoggingInputStream(ServletInputStream is) { + super(); + this.is = is; + } + + // Since we are not sure which method is used just overwrite all 4 of them: + @Override + public int read() throws IOException { + int ch = is.read(); + if (ch != -1) { + baous.write(ch); + } + return ch; + } + + @Override + public int read(byte[] b) throws IOException { + int ch = is.read(b); + if (ch != -1) { + baous.write(b, 0, ch); + } + return ch; + } + + @Override + public int read(byte[] b, int o, int l) throws IOException { + int ch = is.read(b, o, l); + if (ch != -1) { + baous.write(b, o, ch); + } + return ch; + } + + @Override + public int readLine(byte[] b, int o, int l) throws IOException { + int ch = is.readLine(b, o, l); + if (ch != -1) { + baous.write(b, o, ch); + } + return ch; + } + + public String getPayload() { + return baous.toString(); + } + } + + private class LoggingResponseWrapper extends HttpServletResponseWrapper { + + private LoggingOutputStream os; + private PrintWriter writer; + private int statusCode; + private Map headers = new HashMap(); + String encoding; + + public LoggingResponseWrapper(HttpServletResponse response) throws IOException { + super(response); + this.os = new LoggingOutputStream(response.getOutputStream()); + } + + @Override + public PrintWriter getWriter() { + try { + if (null == writer) + writer = new PrintWriter(this.getOutputStream()); + return writer; + } catch (IOException e) { + log.error("Failed to get PrintWriter in LoggingFilter: "+ e); + e.printStackTrace(); + return null; + } + } + + @Override + public ServletOutputStream getOutputStream() throws IOException { + return os; + } + + public String getPayload() { + return os.getPayload(); + } + + @Override + public void addCookie(Cookie cookie) { + super.addCookie(cookie); + String value; + if (headers.containsKey("Cookie")) { + value = headers.get("Cookie") + "; " + cookie.toString(); + } else + value = cookie.toString(); + headers.put("Cookie", value); + } + + @Override + public void setContentType(String type) { + super.setContentType(type); + if (headers.containsKey("Content-Type")) { + String cType = headers.get("Content-Type"); + int pos = cType.indexOf(";charset="); + if (pos < 0 && encoding != null) + type = cType + ";charset=" + encoding; + else if (pos >= 0) + encoding = null; + } + headers.put("Content-Type", type); + } + + @Override + public void setCharacterEncoding(java.lang.String charset) { + super.setCharacterEncoding(charset); + encoding = charset; + if (headers.containsKey("Content-Type")) { + String cType = headers.get("Content-Type"); + int pos = cType.indexOf(";charset="); + if (pos >=0) + cType = cType.substring(0, pos) + ";charset=" + encoding; + else + cType = cType + ";charset=" + encoding; + headers.put("Content-Type", cType); + } + } + + @Override + public void setContentLength(int len) { + super.setContentLength(len); + headers.put("Content-Length", String.valueOf(len)); + } + + private String getDateString(long date) { + return FORMAT.format(new Date(date)); + } + + @Override + public void setDateHeader(String name, long date) { + super.setDateHeader(name, date); + headers.put(name, String.valueOf(getDateString(date))); + } + + @Override + public void addDateHeader(String name, long date) { + super.addDateHeader(name, date); + if (headers.containsKey(name)) { + headers.put(name, headers.get(name) + "; " + getDateString(date)); + } else { + headers.put(name, String.valueOf(getDateString(date))); + } + } + + @Override + public void setHeader(String name, String value) { + super.setHeader(name, value); + headers.put(name, String.valueOf(value)); + } + + @Override + public void addHeader(String name, String value) { + super.addHeader(name, value); + if (headers.containsKey(name)) { + headers.put(name, headers.get(name) + "; " + value); + } else { + headers.put(name, String.valueOf(value)); + } + } + + @Override + public void setIntHeader(String name, int value) { + super.setIntHeader(name, value); + headers.put(name, String.valueOf(value)); + } + + @Override + public void addIntHeader(String name, int value) { + super.addIntHeader(name, value); + if (headers.containsKey(name)) { + headers.put(name, headers.get(name) + "; " + String.valueOf(value)); + } else { + headers.put(name, String.valueOf(value)); + } + } + + @Override + public void sendError(int sc) throws IOException { + statusCode = sc; + super.sendError(sc); + } + + @Override + public void sendError(int sc, String msg) throws IOException { + statusCode = sc; + super.sendError(sc, msg); + } + + @Override + public void sendRedirect(String location) throws IOException { + statusCode = 302; + super.sendRedirect(location); + } + + @Override + public void setStatus(int sc) { + statusCode = sc; + super.setStatus(sc); + } + + public int getStatus() { + return statusCode; + } + + public Map getHeaders() { + return headers; + } + } + + private class LoggingOutputStream extends ServletOutputStream { + private ByteArrayOutputStream baous = new ByteArrayOutputStream(); + private ServletOutputStream os; + + public LoggingOutputStream(ServletOutputStream os) { + super(); + this.os = os; + } + + public String getPayload() { + return new String(baous.toString()); + } + + @Override + public void write(byte[] b, int off, int len) { + try { + baous.write(b, off, len); + os.write(b, off, len); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public + void write(byte[] b) { + try { + baous.write(b); + os.write(b); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public void write(int ch) throws IOException { + baous.write(ch); + os.write(ch); + } + } +} Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java Sat Feb 25 13:43:31 2012 @@ -31,8 +31,8 @@ import org.antlr.runtime.tree.Tree; import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition; import org.apache.chemistry.opencmis.server.support.TypeManager; import org.apache.chemistry.opencmis.server.support.TypeValidator; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** @@ -44,7 +44,7 @@ import org.apache.commons.logging.LogFac */ public class QueryObject { - private static final Log LOG = LogFactory.getLog(QueryObject.class); + private static final Logger LOG = LoggerFactory.getLogger(QueryObject.class); // For error handling see: // http://www.antlr.org/pipermail/antlr-interest/2008-April/027600.html Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/AbstractParserTest.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/AbstractParserTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/AbstractParserTest.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/AbstractParserTest.java Sat Feb 25 13:43:31 2012 @@ -31,8 +31,8 @@ import org.antlr.runtime.Lexer; import org.antlr.runtime.TokenStream; import org.antlr.runtime.tree.CommonTree; import org.antlr.stringtemplate.StringTemplate; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This class is clone of org.antlr.gunit.gUnitBase class adapted to Java style @@ -42,7 +42,7 @@ import org.apache.commons.logging.LogFac */ public class AbstractParserTest{ - private static final Log log = LogFactory.getLog(AbstractParserTest.class); + private static final Logger log = LoggerFactory.getLogger(AbstractParserTest.class); protected String superGrammarName; Class lexer; Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/StringUtilTest.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/StringUtilTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/StringUtilTest.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/StringUtilTest.java Sat Feb 25 13:43:31 2012 @@ -18,7 +18,8 @@ */ package org.apache.chemistry.opencmis.server.support.query; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; import org.junit.Test; Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserExt.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserExt.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserExt.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserExt.java Sat Feb 25 13:43:31 2012 @@ -18,15 +18,15 @@ */ package org.apache.chemistry.opencmis.server.support.query; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class TestParserExt extends AbstractParserTest { - private static final Log log = LogFactory.getLog(TestParserStrict.class); + private static final Logger log = LoggerFactory.getLogger(TestParserStrict.class); @Before public void setUp() throws Exception { Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java?rev=1293600&r1=1293599&r2=1293600&view=diff ============================================================================== --- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java (original) +++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java Sat Feb 25 13:43:31 2012 @@ -18,11 +18,11 @@ */ package org.apache.chemistry.opencmis.server.support.query; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author Jens @@ -30,7 +30,7 @@ import org.junit.Test; */ public class TestParserStrict extends AbstractParserTest{ - private static final Log log = LogFactory.getLog(TestParserStrict.class); + private static final Logger log = LoggerFactory.getLogger(TestParserStrict.class); @Before public void setUp() {