From: <ga...@us...> - 2009-09-25 22:13:55
|
Revision: 4116 http://jaffa.svn.sourceforge.net/jaffa/?rev=4116&view=rev Author: gautamj Date: 2009-09-25 22:13:47 +0000 (Fri, 25 Sep 2009) Log Message: ----------- Enhanced the GraphService to add it's name as the ProcessName (or the SubProcessName if ProcessName already exists) in Log4J's MDC object. This information can be used in the creation of BusinessEventLogs as well as Audit records. Modified Paths: -------------- trunk/JaffaSOA/source/java/org/jaffa/soa/dataaccess/GraphService.java Modified: trunk/JaffaSOA/source/java/org/jaffa/soa/dataaccess/GraphService.java =================================================================== --- trunk/JaffaSOA/source/java/org/jaffa/soa/dataaccess/GraphService.java 2009-09-25 21:44:42 UTC (rev 4115) +++ trunk/JaffaSOA/source/java/org/jaffa/soa/dataaccess/GraphService.java 2009-09-25 22:13:47 UTC (rev 4116) @@ -58,8 +58,10 @@ import java.util.LinkedList; import java.util.Map; import org.apache.log4j.Logger; +import org.apache.log4j.MDC; import org.jaffa.exceptions.ApplicationExceptions; import org.jaffa.exceptions.FrameworkException; +import org.jaffa.modules.messaging.domain.BusinessEventLogMeta; import org.jaffa.persistence.Criteria; import org.jaffa.persistence.UOW; import org.jaffa.soa.graph.GraphCriteria; @@ -365,6 +367,7 @@ // Loop through each graph and clone/mass-update it if (graphs != null && graphs.length > 0) { + addContext(); GraphMapping graphMapping = MappingFactory.getInstance(graphDataClass); boolean error = false; for (int i = 0; i < graphs.length; i++) { @@ -463,6 +466,7 @@ public G localUpdate(String path, G graph, UOW uow) throws FrameworkException, ApplicationExceptions { if (log.isDebugEnabled()) log.debug("Create/Update Input Graph Object: " + path + '\n' + TransformerUtils.printGraph(graph)); + addContext(); G output = (G) DataTransformer.updateGraph(path, graph, uow, createHandler(uow)); if (log.isDebugEnabled()) log.debug(output != null ? "Entry created " + output : "Entry updated"); @@ -684,4 +688,18 @@ buf.append(buf.length() > 0 ? ", " : "").append("Update completed on ").append(updateCount).append(" row").append(updateCount == 1 ? "" : "s"); return buf.toString(); } + + /** + * Adds context information to Log4J's MDC object. + * The simple classname of the current object is added as the ProcessName. + * However, if a ProcessName already exists, then the simply classname is added as the SubProcessName. + */ + protected void addContext() { + String name = this.getClass().getSimpleName(); + String existingName = (String) MDC.get(BusinessEventLogMeta.PROCESS_NAME); + if (existingName == null) + MDC.put(BusinessEventLogMeta.PROCESS_NAME, name); + else if (!existingName.equals(name)) + MDC.put(BusinessEventLogMeta.SUB_PROCESS_NAME, name); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |