001 /* 002 * JBoss, Home of Professional Open Source. 003 * Copyright 2008, Red Hat Middleware LLC, and individual contributors 004 * as indicated by the @author tags. See the copyright.txt file in the 005 * distribution for a full listing of individual contributors. 006 * 007 * This is free software; you can redistribute it and/or modify it 008 * under the terms of the GNU Lesser General Public License as 009 * published by the Free Software Foundation; either version 2.1 of 010 * the License, or (at your option) any later version. 011 * 012 * This software is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this software; if not, write to the Free 019 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 020 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 021 */ 022 package org.jboss.dna.graph.requests.processor; 023 024 import org.jboss.dna.common.util.CheckArg; 025 import org.jboss.dna.common.util.Logger; 026 import org.jboss.dna.graph.GraphI18n; 027 import org.jboss.dna.graph.requests.CompositeRequest; 028 import org.jboss.dna.graph.requests.CopyBranchRequest; 029 import org.jboss.dna.graph.requests.CreateNodeRequest; 030 import org.jboss.dna.graph.requests.DeleteBranchRequest; 031 import org.jboss.dna.graph.requests.MoveBranchRequest; 032 import org.jboss.dna.graph.requests.ReadAllChildrenRequest; 033 import org.jboss.dna.graph.requests.ReadAllPropertiesRequest; 034 import org.jboss.dna.graph.requests.ReadBlockOfChildrenRequest; 035 import org.jboss.dna.graph.requests.ReadBranchRequest; 036 import org.jboss.dna.graph.requests.ReadNextBlockOfChildrenRequest; 037 import org.jboss.dna.graph.requests.ReadNodeRequest; 038 import org.jboss.dna.graph.requests.ReadPropertyRequest; 039 import org.jboss.dna.graph.requests.RemovePropertiesRequest; 040 import org.jboss.dna.graph.requests.RenameNodeRequest; 041 import org.jboss.dna.graph.requests.Request; 042 import org.jboss.dna.graph.requests.UpdatePropertiesRequest; 043 044 /** 045 * A {@link RequestProcessor} implementation that wraps another and that logs messages at the supplied level. 046 * 047 * @author Randall Hauch 048 */ 049 public class LoggingRequestProcessor extends RequestProcessor { 050 051 private final RequestProcessor delegate; 052 private final Logger logger; 053 private final Logger.Level level; 054 055 /** 056 * @param delegate the processor to which this processor delegates 057 * @param logger the logger that should be used 058 * @param level the level of the log messages; defaults to {@link Logger.Level#TRACE} 059 */ 060 public LoggingRequestProcessor( RequestProcessor delegate, 061 Logger logger, 062 Logger.Level level ) { 063 super(delegate.getSourceName(), delegate.getExecutionContext()); 064 CheckArg.isNotNull(logger, "logger"); 065 this.delegate = delegate; 066 this.logger = logger; 067 this.level = level != null ? level : Logger.Level.TRACE; 068 } 069 070 /** 071 * {@inheritDoc} 072 * 073 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.CopyBranchRequest) 074 */ 075 @Override 076 public void process( CopyBranchRequest request ) { 077 logger.log(level, GraphI18n.executingRequest, request); 078 delegate.process(request); 079 logger.log(level, GraphI18n.executedRequest, request); 080 } 081 082 /** 083 * {@inheritDoc} 084 * 085 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.CreateNodeRequest) 086 */ 087 @Override 088 public void process( CreateNodeRequest request ) { 089 logger.log(level, GraphI18n.executingRequest, request); 090 delegate.process(request); 091 logger.log(level, GraphI18n.executedRequest, request); 092 } 093 094 /** 095 * {@inheritDoc} 096 * 097 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.DeleteBranchRequest) 098 */ 099 @Override 100 public void process( DeleteBranchRequest request ) { 101 logger.log(level, GraphI18n.executingRequest, request); 102 delegate.process(request); 103 logger.log(level, GraphI18n.executedRequest, request); 104 } 105 106 /** 107 * {@inheritDoc} 108 * 109 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.MoveBranchRequest) 110 */ 111 @Override 112 public void process( MoveBranchRequest request ) { 113 logger.log(level, GraphI18n.executingRequest, request); 114 delegate.process(request); 115 logger.log(level, GraphI18n.executedRequest, request); 116 } 117 118 /** 119 * {@inheritDoc} 120 * 121 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadAllChildrenRequest) 122 */ 123 @Override 124 public void process( ReadAllChildrenRequest request ) { 125 logger.log(level, GraphI18n.executingRequest, request); 126 delegate.process(request); 127 logger.log(level, GraphI18n.executedRequest, request); 128 } 129 130 /** 131 * {@inheritDoc} 132 * 133 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadAllPropertiesRequest) 134 */ 135 @Override 136 public void process( ReadAllPropertiesRequest request ) { 137 logger.log(level, GraphI18n.executingRequest, request); 138 delegate.process(request); 139 logger.log(level, GraphI18n.executedRequest, request); 140 } 141 142 /** 143 * {@inheritDoc} 144 * 145 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.UpdatePropertiesRequest) 146 */ 147 @Override 148 public void process( UpdatePropertiesRequest request ) { 149 logger.log(level, GraphI18n.executingRequest, request); 150 delegate.process(request); 151 logger.log(level, GraphI18n.executedRequest, request); 152 } 153 154 /** 155 * {@inheritDoc} 156 * 157 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.CompositeRequest) 158 */ 159 @Override 160 public void process( CompositeRequest request ) { 161 logger.log(level, GraphI18n.executingRequest, request); 162 delegate.process(request); 163 logger.log(level, GraphI18n.executedRequest, request); 164 } 165 166 /** 167 * {@inheritDoc} 168 * 169 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadBlockOfChildrenRequest) 170 */ 171 @Override 172 public void process( ReadBlockOfChildrenRequest request ) { 173 logger.log(level, GraphI18n.executingRequest, request); 174 delegate.process(request); 175 logger.log(level, GraphI18n.executedRequest, request); 176 } 177 178 /** 179 * {@inheritDoc} 180 * 181 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadNextBlockOfChildrenRequest) 182 */ 183 @Override 184 public void process( ReadNextBlockOfChildrenRequest request ) { 185 logger.log(level, GraphI18n.executingRequest, request); 186 delegate.process(request); 187 logger.log(level, GraphI18n.executedRequest, request); 188 } 189 190 /** 191 * {@inheritDoc} 192 * 193 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadBranchRequest) 194 */ 195 @Override 196 public void process( ReadBranchRequest request ) { 197 logger.log(level, GraphI18n.executingRequest, request); 198 delegate.process(request); 199 logger.log(level, GraphI18n.executedRequest, request); 200 } 201 202 /** 203 * {@inheritDoc} 204 * 205 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadNodeRequest) 206 */ 207 @Override 208 public void process( ReadNodeRequest request ) { 209 logger.log(level, GraphI18n.executingRequest, request); 210 delegate.process(request); 211 logger.log(level, GraphI18n.executedRequest, request); 212 } 213 214 /** 215 * {@inheritDoc} 216 * 217 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.ReadPropertyRequest) 218 */ 219 @Override 220 public void process( ReadPropertyRequest request ) { 221 logger.log(level, GraphI18n.executingRequest, request); 222 delegate.process(request); 223 logger.log(level, GraphI18n.executedRequest, request); 224 } 225 226 /** 227 * {@inheritDoc} 228 * 229 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.RemovePropertiesRequest) 230 */ 231 @Override 232 public void process( RemovePropertiesRequest request ) { 233 logger.log(level, GraphI18n.executingRequest, request); 234 delegate.process(request); 235 logger.log(level, GraphI18n.executedRequest, request); 236 } 237 238 /** 239 * {@inheritDoc} 240 * 241 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.RenameNodeRequest) 242 */ 243 @Override 244 public void process( RenameNodeRequest request ) { 245 logger.log(level, GraphI18n.executingRequest, request); 246 delegate.process(request); 247 logger.log(level, GraphI18n.executedRequest, request); 248 } 249 250 /** 251 * {@inheritDoc} 252 * 253 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#process(org.jboss.dna.graph.requests.Request) 254 */ 255 @Override 256 public void process( Request request ) { 257 logger.log(level, GraphI18n.executingRequest, request); 258 delegate.process(request); 259 logger.log(level, GraphI18n.executedRequest, request); 260 } 261 262 /** 263 * {@inheritDoc} 264 * 265 * @see org.jboss.dna.graph.requests.processor.RequestProcessor#close() 266 */ 267 @Override 268 public void close() { 269 logger.log(level, GraphI18n.closingRequestProcessor); 270 delegate.close(); 271 logger.log(level, GraphI18n.closingRequestProcessor); 272 } 273 274 }