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 }