You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-dev@jakarta.apache.org by vm...@apache.org on 2004/04/10 20:21:30 UTC
cvs commit: jakarta-cactus/framework/src/aspect/org/apache/cactus/internal/util/log LogAspect.aj
vmassol 2004/04/10 11:21:30
Modified: framework/src/aspect/org/apache/cactus/internal/util/log
LogAspect.aj
Log:
Binary --> Ascii
Revision Changes Path
1.2 +236 -236 jakarta-cactus/framework/src/aspect/org/apache/cactus/internal/util/log/LogAspect.aj
Index: LogAspect.aj
===================================================================
RCS file: /home/cvs/jakarta-cactus/framework/src/aspect/org/apache/cactus/internal/util/log/LogAspect.aj,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LogAspect.aj 10 Apr 2004 18:21:05 -0000 1.1
+++ LogAspect.aj 10 Apr 2004 18:21:30 -0000 1.2
@@ -1,236 +1,236 @@
-/*
- * ========================================================================
- *
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed 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.cactus.util.log;
-
-import org.aspectj.lang.reflect.*;
-import org.aspectj.lang.*;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * Log every entry and exit of methods.
- *
- * @author <a href="mailto:vmassol@apache.org">Vincent Massol</a>
- *
- * @version $Id$
- */
-public aspect LogAspect
-{
- /**
- * All objects in the log package. We don't want to log these as they are
- * the object that perform the logging and thus at execution time we would
- * enter an infinite recursive loop.
- */
- pointcut logObjectCalls() :
- execution(public * org.apache.cactus.internal.util.log..*(..))
- || execution(public * org.apache.cactus.internal.util.ClassLoaderUtils.loadPropertyResourceBundle(..));
-
- /**
- * All public static methods that have parameters.
- */
- pointcut publicStaticMethodsWithParameterCalls() :
- !execution(public static * org.apache.cactus..*())
- && execution(public static * org.apache.cactus..*(..));
-
- /**
- * All public methods that have parameters.
- */
- pointcut publicMethodsWithParameterCalls() :
- !execution(public * org.apache.cactus..*())
- && execution(public * org.apache.cactus..*(..));
-
- /**
- * All public methods that return values
- */
- pointcut publicMethodsWithReturnValueCalls() :
- !execution(public void org.apache.cactus..*(..))
- && execution(public * org.apache.cactus..*(..));
-
- /**
- * Log all entries and exits of static methods that have no return values.
- */
- Object around() :
- !logObjectCalls()
- && publicMethodsWithParameterCalls()
- && publicStaticMethodsWithParameterCalls()
- && !publicMethodsWithReturnValueCalls()
- {
- // Get The logger to perform logging
- Log logger =
- LogFactory.getLog(thisJoinPoint.getSignature().getDeclaringType());
-
- if (logger.isDebugEnabled())
- {
- // Log the entry
- logger.debug('<' + getFullSignature(thisJoinPoint));
-
- // Execute the method
- final Object result = proceed();
-
- // Log the exit
- logger.debug('>' + thisJoinPoint.getSignature().getName());
- return result;
- }
-
- return proceed();
- }
-
- /**
- * Log all entries and exits of non-static methods that have no return
- * values.
- */
- Object around() :
- !logObjectCalls()
- && publicMethodsWithParameterCalls()
- && !publicStaticMethodsWithParameterCalls()
- && !publicMethodsWithReturnValueCalls()
- {
- // The class that uses the method that has been called
- final Class target = thisJoinPoint.getTarget().getClass();
-
- // Get The logger to perform logging
- Log logger = LogFactory.getLog(target);
-
- if (logger.isDebugEnabled())
- {
- // Log the entry
- logger.debug('<' + getFullSignature(thisJoinPoint));
-
- // Execute the method
- final Object result = proceed();
-
- // Log the exit
- logger.debug('>' + thisJoinPoint.getSignature().getName());
- return result;
- }
-
- return proceed();
- }
-
- /**
- * Log all entries and exits of static methods that have return values.
- */
- Object around() :
- !logObjectCalls()
- && publicMethodsWithParameterCalls()
- && publicMethodsWithReturnValueCalls()
- && publicStaticMethodsWithParameterCalls()
- {
- // Get The logger to perform logging
- Log logger =
- LogFactory.getLog(thisJoinPoint.getSignature().getDeclaringType());
-
- if (logger.isDebugEnabled())
- {
- // Log the entry
- logger.debug('<' + getFullSignature(thisJoinPoint));
-
- // Execute the method
- final Object result = proceed();
-
- // Compute the exit string to print
- final StringBuffer exitString =
- new StringBuffer(thisJoinPoint.getSignature().getName());
-
- exitString.append(' ');
- exitString.append('=');
- exitString.append(' ');
- exitString.append('[');
- exitString.append(result);
- exitString.append(']');
-
- // Log the exit
- logger.debug('>' + exitString.toString());
- return result;
- }
-
- return proceed();
- }
-
- /**
- * Log all entries and exits of non-static methods that have return values.
- */
- Object around() :
- !logObjectCalls()
- && publicMethodsWithParameterCalls()
- && publicMethodsWithReturnValueCalls()
- && !publicStaticMethodsWithParameterCalls()
- {
- // The class that uses the method that has been called
- final Class target = thisJoinPoint.getTarget().getClass();
-
- // Get The logger to perform logging
- Log logger = LogFactory.getLog(target);
-
- if (logger.isDebugEnabled())
- {
- // Log the entry
- logger.debug('<' + getFullSignature(thisJoinPoint));
-
- // Execute the method
- final Object result = proceed();
-
- // Compute the exit string to print
- final StringBuffer exitString =
- new StringBuffer(thisJoinPoint.getSignature().getName());
-
- exitString.append(' ');
- exitString.append('=');
- exitString.append(' ');
- exitString.append('[');
- exitString.append(result);
- exitString.append(']');
-
- // Log the exit
- logger.debug('>' + exitString.toString());
- return result;
- }
-
- return proceed();
- }
-
- /**
- * @return the full signature of a method
- */
- private final String getFullSignature(final JoinPoint jp)
- {
- StringBuffer buffer = new StringBuffer();
- buffer.append(jp.getSignature().getName());
- buffer.append('(');
- final Object[] objs = jp.getArgs();
- if (objs.length > 0)
- {
- for (int i = 0; i < objs.length - 1; i++)
- {
- buffer.append('[');
- buffer.append(objs[i]);
- buffer.append(']');
- buffer.append(',');
- buffer.append(' ');
- }
- buffer.append('[');
- buffer.append(objs[objs.length - 1]);
- buffer.append(']');
- }
- buffer.append(')');
- return buffer.toString();
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.cactus.util.log;
+
+import org.aspectj.lang.reflect.*;
+import org.aspectj.lang.*;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Log every entry and exit of methods.
+ *
+ * @author <a href="mailto:vmassol@apache.org">Vincent Massol</a>
+ *
+ * @version $Id$
+ */
+public aspect LogAspect
+{
+ /**
+ * All objects in the log package. We don't want to log these as they are
+ * the object that perform the logging and thus at execution time we would
+ * enter an infinite recursive loop.
+ */
+ pointcut logObjectCalls() :
+ execution(public * org.apache.cactus.internal.util.log..*(..))
+ || execution(public * org.apache.cactus.internal.util.ClassLoaderUtils.loadPropertyResourceBundle(..));
+
+ /**
+ * All public static methods that have parameters.
+ */
+ pointcut publicStaticMethodsWithParameterCalls() :
+ !execution(public static * org.apache.cactus..*())
+ && execution(public static * org.apache.cactus..*(..));
+
+ /**
+ * All public methods that have parameters.
+ */
+ pointcut publicMethodsWithParameterCalls() :
+ !execution(public * org.apache.cactus..*())
+ && execution(public * org.apache.cactus..*(..));
+
+ /**
+ * All public methods that return values
+ */
+ pointcut publicMethodsWithReturnValueCalls() :
+ !execution(public void org.apache.cactus..*(..))
+ && execution(public * org.apache.cactus..*(..));
+
+ /**
+ * Log all entries and exits of static methods that have no return values.
+ */
+ Object around() :
+ !logObjectCalls()
+ && publicMethodsWithParameterCalls()
+ && publicStaticMethodsWithParameterCalls()
+ && !publicMethodsWithReturnValueCalls()
+ {
+ // Get The logger to perform logging
+ Log logger =
+ LogFactory.getLog(thisJoinPoint.getSignature().getDeclaringType());
+
+ if (logger.isDebugEnabled())
+ {
+ // Log the entry
+ logger.debug('<' + getFullSignature(thisJoinPoint));
+
+ // Execute the method
+ final Object result = proceed();
+
+ // Log the exit
+ logger.debug('>' + thisJoinPoint.getSignature().getName());
+ return result;
+ }
+
+ return proceed();
+ }
+
+ /**
+ * Log all entries and exits of non-static methods that have no return
+ * values.
+ */
+ Object around() :
+ !logObjectCalls()
+ && publicMethodsWithParameterCalls()
+ && !publicStaticMethodsWithParameterCalls()
+ && !publicMethodsWithReturnValueCalls()
+ {
+ // The class that uses the method that has been called
+ final Class target = thisJoinPoint.getTarget().getClass();
+
+ // Get The logger to perform logging
+ Log logger = LogFactory.getLog(target);
+
+ if (logger.isDebugEnabled())
+ {
+ // Log the entry
+ logger.debug('<' + getFullSignature(thisJoinPoint));
+
+ // Execute the method
+ final Object result = proceed();
+
+ // Log the exit
+ logger.debug('>' + thisJoinPoint.getSignature().getName());
+ return result;
+ }
+
+ return proceed();
+ }
+
+ /**
+ * Log all entries and exits of static methods that have return values.
+ */
+ Object around() :
+ !logObjectCalls()
+ && publicMethodsWithParameterCalls()
+ && publicMethodsWithReturnValueCalls()
+ && publicStaticMethodsWithParameterCalls()
+ {
+ // Get The logger to perform logging
+ Log logger =
+ LogFactory.getLog(thisJoinPoint.getSignature().getDeclaringType());
+
+ if (logger.isDebugEnabled())
+ {
+ // Log the entry
+ logger.debug('<' + getFullSignature(thisJoinPoint));
+
+ // Execute the method
+ final Object result = proceed();
+
+ // Compute the exit string to print
+ final StringBuffer exitString =
+ new StringBuffer(thisJoinPoint.getSignature().getName());
+
+ exitString.append(' ');
+ exitString.append('=');
+ exitString.append(' ');
+ exitString.append('[');
+ exitString.append(result);
+ exitString.append(']');
+
+ // Log the exit
+ logger.debug('>' + exitString.toString());
+ return result;
+ }
+
+ return proceed();
+ }
+
+ /**
+ * Log all entries and exits of non-static methods that have return values.
+ */
+ Object around() :
+ !logObjectCalls()
+ && publicMethodsWithParameterCalls()
+ && publicMethodsWithReturnValueCalls()
+ && !publicStaticMethodsWithParameterCalls()
+ {
+ // The class that uses the method that has been called
+ final Class target = thisJoinPoint.getTarget().getClass();
+
+ // Get The logger to perform logging
+ Log logger = LogFactory.getLog(target);
+
+ if (logger.isDebugEnabled())
+ {
+ // Log the entry
+ logger.debug('<' + getFullSignature(thisJoinPoint));
+
+ // Execute the method
+ final Object result = proceed();
+
+ // Compute the exit string to print
+ final StringBuffer exitString =
+ new StringBuffer(thisJoinPoint.getSignature().getName());
+
+ exitString.append(' ');
+ exitString.append('=');
+ exitString.append(' ');
+ exitString.append('[');
+ exitString.append(result);
+ exitString.append(']');
+
+ // Log the exit
+ logger.debug('>' + exitString.toString());
+ return result;
+ }
+
+ return proceed();
+ }
+
+ /**
+ * @return the full signature of a method
+ */
+ private final String getFullSignature(final JoinPoint jp)
+ {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(jp.getSignature().getName());
+ buffer.append('(');
+ final Object[] objs = jp.getArgs();
+ if (objs.length > 0)
+ {
+ for (int i = 0; i < objs.length - 1; i++)
+ {
+ buffer.append('[');
+ buffer.append(objs[i]);
+ buffer.append(']');
+ buffer.append(',');
+ buffer.append(' ');
+ }
+ buffer.append('[');
+ buffer.append(objs[objs.length - 1]);
+ buffer.append(']');
+ }
+ buffer.append(')');
+ return buffer.toString();
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: cactus-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: cactus-dev-help@jakarta.apache.org