View Javadoc

1   /*
2    * ModeShape (http://www.modeshape.org)
3    * See the COPYRIGHT.txt file distributed with this work for information
4    * regarding copyright ownership.  Some portions may be licensed
5    * to Red Hat, Inc. under one or more contributor license agreements.
6    * See the AUTHORS.txt file in the distribution for a full listing of 
7    * individual contributors. 
8    *
9    * ModeShape is free software. Unless otherwise indicated, all code in ModeShape
10   * is licensed to you under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation; either version 2.1 of
12   * the License, or (at your option) any later version.
13   *
14   * ModeShape is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17   * Lesser General Public License for more details.
18   *
19   * You should have received a copy of the GNU Lesser General Public
20   * License along with this software; if not, write to the Free
21   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
22   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
23   */
24  package org.modeshape.graph.request.processor;
25  
26  import net.jcip.annotations.Immutable;
27  import org.modeshape.common.util.CheckArg;
28  import org.modeshape.common.util.Logger;
29  import org.modeshape.graph.GraphI18n;
30  import org.modeshape.graph.request.AccessQueryRequest;
31  import org.modeshape.graph.request.CloneBranchRequest;
32  import org.modeshape.graph.request.CloneWorkspaceRequest;
33  import org.modeshape.graph.request.CompositeRequest;
34  import org.modeshape.graph.request.CopyBranchRequest;
35  import org.modeshape.graph.request.CreateNodeRequest;
36  import org.modeshape.graph.request.CreateWorkspaceRequest;
37  import org.modeshape.graph.request.DeleteBranchRequest;
38  import org.modeshape.graph.request.DeleteChildrenRequest;
39  import org.modeshape.graph.request.DestroyWorkspaceRequest;
40  import org.modeshape.graph.request.FullTextSearchRequest;
41  import org.modeshape.graph.request.GetWorkspacesRequest;
42  import org.modeshape.graph.request.LockBranchRequest;
43  import org.modeshape.graph.request.MoveBranchRequest;
44  import org.modeshape.graph.request.ReadAllChildrenRequest;
45  import org.modeshape.graph.request.ReadAllPropertiesRequest;
46  import org.modeshape.graph.request.ReadBlockOfChildrenRequest;
47  import org.modeshape.graph.request.ReadBranchRequest;
48  import org.modeshape.graph.request.ReadNextBlockOfChildrenRequest;
49  import org.modeshape.graph.request.ReadNodeRequest;
50  import org.modeshape.graph.request.ReadPropertyRequest;
51  import org.modeshape.graph.request.RemovePropertyRequest;
52  import org.modeshape.graph.request.RenameNodeRequest;
53  import org.modeshape.graph.request.Request;
54  import org.modeshape.graph.request.SetPropertyRequest;
55  import org.modeshape.graph.request.UnlockBranchRequest;
56  import org.modeshape.graph.request.UpdatePropertiesRequest;
57  import org.modeshape.graph.request.UpdateValuesRequest;
58  import org.modeshape.graph.request.VerifyNodeExistsRequest;
59  import org.modeshape.graph.request.VerifyWorkspaceRequest;
60  
61  /**
62   * A {@link RequestProcessor} implementation that wraps another and that logs messages at the supplied level.
63   */
64  @Immutable
65  public class LoggingRequestProcessor extends RequestProcessor {
66  
67      private final RequestProcessor delegate;
68      private static final Logger LOGGER = Logger.getLogger(LoggingRequestProcessor.class);
69      private final Logger.Level level;
70  
71      /**
72       * @param delegate the processor to which this processor delegates
73       * @param logger the LOGGER that should be used
74       * @param level the level of the log messages; defaults to {@link Logger.Level#TRACE}
75       */
76      public LoggingRequestProcessor( RequestProcessor delegate,
77                                      Logger logger,
78                                      Logger.Level level ) {
79          super(delegate.getSourceName(), delegate.getExecutionContext(), null);
80          CheckArg.isNotNull(logger, "logger");
81          this.delegate = delegate;
82          this.level = level != null ? level : Logger.Level.TRACE;
83      }
84  
85      /**
86       * {@inheritDoc}
87       * 
88       * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.VerifyWorkspaceRequest)
89       */
90      @Override
91      public void process( VerifyWorkspaceRequest request ) {
92          LOGGER.log(level, GraphI18n.executingRequest, request);
93          delegate.process(request);
94          // LOGGER.log(level, GraphI18n.executedRequest, request);
95      }
96  
97      /**
98       * {@inheritDoc}
99       * 
100      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.GetWorkspacesRequest)
101      */
102     @Override
103     public void process( GetWorkspacesRequest request ) {
104         LOGGER.log(level, GraphI18n.executingRequest, request);
105         delegate.process(request);
106         LOGGER.log(level, GraphI18n.executedRequest, request);
107     }
108 
109     /**
110      * {@inheritDoc}
111      * 
112      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.CreateWorkspaceRequest)
113      */
114     @Override
115     public void process( CreateWorkspaceRequest request ) {
116         LOGGER.log(level, GraphI18n.executingRequest, request);
117         delegate.process(request);
118         LOGGER.log(level, GraphI18n.executedRequest, request);
119     }
120 
121     /**
122      * {@inheritDoc}
123      * 
124      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.CloneBranchRequest)
125      */
126     @Override
127     public void process( CloneBranchRequest request ) {
128         LOGGER.log(level, GraphI18n.executingRequest, request);
129         delegate.process(request);
130         LOGGER.log(level, GraphI18n.executedRequest, request);
131     }
132 
133     /**
134      * {@inheritDoc}
135      * 
136      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.CloneWorkspaceRequest)
137      */
138     @Override
139     public void process( CloneWorkspaceRequest request ) {
140         LOGGER.log(level, GraphI18n.executingRequest, request);
141         delegate.process(request);
142         LOGGER.log(level, GraphI18n.executedRequest, request);
143     }
144 
145     /**
146      * {@inheritDoc}
147      * 
148      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.DestroyWorkspaceRequest)
149      */
150     @Override
151     public void process( DestroyWorkspaceRequest request ) {
152         LOGGER.log(level, GraphI18n.executingRequest, request);
153         delegate.process(request);
154         LOGGER.log(level, GraphI18n.executedRequest, request);
155     }
156 
157     /**
158      * {@inheritDoc}
159      * 
160      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.CopyBranchRequest)
161      */
162     @Override
163     public void process( CopyBranchRequest request ) {
164         LOGGER.log(level, GraphI18n.executingRequest, request);
165         delegate.process(request);
166         LOGGER.log(level, GraphI18n.executedRequest, request);
167     }
168 
169     /**
170      * {@inheritDoc}
171      * 
172      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.CreateNodeRequest)
173      */
174     @Override
175     public void process( CreateNodeRequest request ) {
176         LOGGER.log(level, GraphI18n.executingRequest, request);
177         delegate.process(request);
178         LOGGER.log(level, GraphI18n.executedRequest, request);
179     }
180 
181     /**
182      * {@inheritDoc}
183      * 
184      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.DeleteBranchRequest)
185      */
186     @Override
187     public void process( DeleteBranchRequest request ) {
188         LOGGER.log(level, GraphI18n.executingRequest, request);
189         delegate.process(request);
190         LOGGER.log(level, GraphI18n.executedRequest, request);
191     }
192 
193     /**
194      * {@inheritDoc}
195      * 
196      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.DeleteChildrenRequest)
197      */
198     @Override
199     public void process( DeleteChildrenRequest request ) {
200         LOGGER.log(level, GraphI18n.executingRequest, request);
201         delegate.process(request);
202         LOGGER.log(level, GraphI18n.executedRequest, request);
203     }
204 
205     /**
206      * {@inheritDoc}
207      * 
208      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.MoveBranchRequest)
209      */
210     @Override
211     public void process( MoveBranchRequest request ) {
212         LOGGER.log(level, GraphI18n.executingRequest, request);
213         delegate.process(request);
214         LOGGER.log(level, GraphI18n.executedRequest, request);
215     }
216 
217     /**
218      * {@inheritDoc}
219      * 
220      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.VerifyNodeExistsRequest)
221      */
222     @Override
223     public void process( VerifyNodeExistsRequest request ) {
224         LOGGER.log(level, GraphI18n.executingRequest, request);
225         delegate.process(request);
226         LOGGER.log(level, GraphI18n.executedRequest, request);
227     }
228 
229     /**
230      * {@inheritDoc}
231      * 
232      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadAllChildrenRequest)
233      */
234     @Override
235     public void process( ReadAllChildrenRequest request ) {
236         LOGGER.log(level, GraphI18n.executingRequest, request);
237         delegate.process(request);
238         LOGGER.log(level, GraphI18n.executedRequest, request);
239     }
240 
241     /**
242      * {@inheritDoc}
243      * 
244      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadAllPropertiesRequest)
245      */
246     @Override
247     public void process( ReadAllPropertiesRequest request ) {
248         LOGGER.log(level, GraphI18n.executingRequest, request);
249         delegate.process(request);
250         LOGGER.log(level, GraphI18n.executedRequest, request);
251     }
252 
253     /**
254      * {@inheritDoc}
255      * 
256      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.UpdatePropertiesRequest)
257      */
258     @Override
259     public void process( UpdatePropertiesRequest request ) {
260         LOGGER.log(level, GraphI18n.executingRequest, request);
261         delegate.process(request);
262         LOGGER.log(level, GraphI18n.executedRequest, request);
263     }
264 
265     /**
266      * {@inheritDoc}
267      * 
268      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.UpdateValuesRequest)
269      */
270     @Override
271     public void process( UpdateValuesRequest request ) {
272         LOGGER.log(level, GraphI18n.executingRequest, request);
273         delegate.process(request);
274         LOGGER.log(level, GraphI18n.executedRequest, request);
275     }
276 
277     /**
278      * {@inheritDoc}
279      * 
280      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.CompositeRequest)
281      */
282     @Override
283     public void process( CompositeRequest request ) {
284         LOGGER.log(level, GraphI18n.executingRequest, request);
285         delegate.process(request);
286         LOGGER.log(level, GraphI18n.executedRequest, request);
287     }
288 
289     /**
290      * {@inheritDoc}
291      * 
292      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadBlockOfChildrenRequest)
293      */
294     @Override
295     public void process( ReadBlockOfChildrenRequest request ) {
296         LOGGER.log(level, GraphI18n.executingRequest, request);
297         delegate.process(request);
298         LOGGER.log(level, GraphI18n.executedRequest, request);
299     }
300 
301     /**
302      * {@inheritDoc}
303      * 
304      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadNextBlockOfChildrenRequest)
305      */
306     @Override
307     public void process( ReadNextBlockOfChildrenRequest request ) {
308         LOGGER.log(level, GraphI18n.executingRequest, request);
309         delegate.process(request);
310         LOGGER.log(level, GraphI18n.executedRequest, request);
311     }
312 
313     /**
314      * {@inheritDoc}
315      * 
316      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadBranchRequest)
317      */
318     @Override
319     public void process( ReadBranchRequest request ) {
320         LOGGER.log(level, GraphI18n.executingRequest, request);
321         delegate.process(request);
322         LOGGER.log(level, GraphI18n.executedRequest, request);
323     }
324 
325     /**
326      * {@inheritDoc}
327      * 
328      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadNodeRequest)
329      */
330     @Override
331     public void process( ReadNodeRequest request ) {
332         LOGGER.log(level, GraphI18n.executingRequest, request);
333         delegate.process(request);
334         LOGGER.log(level, GraphI18n.executedRequest, request);
335     }
336 
337     /**
338      * {@inheritDoc}
339      * 
340      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.ReadPropertyRequest)
341      */
342     @Override
343     public void process( ReadPropertyRequest request ) {
344         LOGGER.log(level, GraphI18n.executingRequest, request);
345         delegate.process(request);
346         LOGGER.log(level, GraphI18n.executedRequest, request);
347     }
348 
349     /**
350      * {@inheritDoc}
351      * 
352      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.SetPropertyRequest)
353      */
354     @Override
355     public void process( SetPropertyRequest request ) {
356         LOGGER.log(level, GraphI18n.executingRequest, request);
357         delegate.process(request);
358         LOGGER.log(level, GraphI18n.executedRequest, request);
359     }
360 
361     /**
362      * {@inheritDoc}
363      * 
364      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.RemovePropertyRequest)
365      */
366     @Override
367     public void process( RemovePropertyRequest request ) {
368         LOGGER.log(level, GraphI18n.executingRequest, request);
369         delegate.process(request);
370         LOGGER.log(level, GraphI18n.executedRequest, request);
371     }
372 
373     /**
374      * {@inheritDoc}
375      * 
376      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.RenameNodeRequest)
377      */
378     @Override
379     public void process( RenameNodeRequest request ) {
380         LOGGER.log(level, GraphI18n.executingRequest, request);
381         delegate.process(request);
382         LOGGER.log(level, GraphI18n.executedRequest, request);
383     }
384 
385     /**
386      * {@inheritDoc}
387      * 
388      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.LockBranchRequest)
389      */
390     @Override
391     public void process( LockBranchRequest request ) {
392         LOGGER.log(level, GraphI18n.executingRequest, request);
393         delegate.process(request);
394         LOGGER.log(level, GraphI18n.executedRequest, request);
395     }
396 
397     /**
398      * {@inheritDoc}
399      * 
400      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.UnlockBranchRequest)
401      */
402     @Override
403     public void process( UnlockBranchRequest request ) {
404         LOGGER.log(level, GraphI18n.executingRequest, request);
405         delegate.process(request);
406         LOGGER.log(level, GraphI18n.executedRequest, request);
407     }
408 
409     /**
410      * {@inheritDoc}
411      * 
412      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.AccessQueryRequest)
413      */
414     @Override
415     public void process( AccessQueryRequest request ) {
416         LOGGER.log(level, GraphI18n.executingRequest, request);
417         delegate.process(request);
418         LOGGER.log(level, GraphI18n.executedRequest, request);
419     }
420 
421     /**
422      * {@inheritDoc}
423      * 
424      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.FullTextSearchRequest)
425      */
426     @Override
427     public void process( FullTextSearchRequest request ) {
428         LOGGER.log(level, GraphI18n.executingRequest, request);
429         delegate.process(request);
430         LOGGER.log(level, GraphI18n.executedRequest, request);
431     }
432 
433     /**
434      * {@inheritDoc}
435      * 
436      * @see org.modeshape.graph.request.processor.RequestProcessor#process(org.modeshape.graph.request.Request)
437      */
438     @Override
439     public void process( Request request ) {
440         LOGGER.log(level, GraphI18n.executingRequest, request);
441         delegate.process(request);
442         LOGGER.log(level, GraphI18n.executedRequest, request);
443     }
444 
445     /**
446      * {@inheritDoc}
447      * 
448      * @see org.modeshape.graph.request.processor.RequestProcessor#close()
449      */
450     @Override
451     public void close() {
452         LOGGER.log(level, GraphI18n.closingRequestProcessor);
453         delegate.close();
454         LOGGER.log(level, GraphI18n.closedRequestProcessor);
455     }
456 
457 }