Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 10563 invoked from network); 4 Mar 2002 23:05:26 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 4 Mar 2002 23:05:26 -0000 Received: (qmail 12095 invoked by uid 97); 4 Mar 2002 23:05:29 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@jakarta.apache.org Received: (qmail 12058 invoked by uid 97); 4 Mar 2002 23:05:29 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 12047 invoked from network); 4 Mar 2002 23:05:28 -0000 To: commons-dev@jakarta.apache.org X-Mailer: Lotus Notes Release 5.0.8 June 18, 2001 Message-ID: From: "Richard Sitze" Date: Mon, 4 Mar 2002 17:05:14 -0600 Subject: [PATCH: logging] Correction for Log4J Location Information X-MIMETrack: Serialize by Router on D04NM201/04/M/IBM(Release 5.0.9a |January 7, 2002) at 03/04/2002 06:05:26 PM MIME-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=0ABBE1E1DFED50348f9e8a93df938690918c0ABBE1E1DFED5034" Content-Disposition: inline X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --0__=0ABBE1E1DFED50348f9e8a93df938690918c0ABBE1E1DFED5034 Content-type: text/plain; charset=us-ascii I've updated the Log4JCategoryLog.java to use the Log4J method Category.log () which allows the fully qualified class name (FQCN) of the user's logger class to be passed through into Log4J. In this case the logger class FQCN will be "org.apache.commons.logging.impl.Log4JCategoryLog". This allows Log4J to correctly identify the location in the code from which the logger is being called, if required. Without this Log4J reports that the calling location is ALWAYS Log4JCategoryLog.java:132. Index: org/apache/commons/logging/impl/Log4JCategoryLog.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/logging/src/java/org/apache/commons/logging/impl/Log4JCategoryLog.java,v retrieving revision 1.2 diff -u -r1.2 Log4JCategoryLog.java --- org/apache/commons/logging/impl/Log4JCategoryLog.java 15 Feb 2002 03:54:19 -0000 1.2 +++ org/apache/commons/logging/impl/Log4JCategoryLog.java 4 Mar 2002 22:14:20 -0000 @@ -83,6 +83,9 @@ // ------------------------------------------------------------- Attributes + /** The fully qualified name of the Log4JCategoryLog class. */ + private static final String FQCN = Log4JCategoryLog.class.getName (); + /** Log to this category */ private Category category = null; @@ -112,7 +115,7 @@ * Currently logs to DEBUG level in Log4J. */ public void trace(Object message) { - category.debug(message); + category.log(FQCN, Priority.DEBUG, message, null); } @@ -121,7 +124,7 @@ * Currently logs to DEBUG level in Log4J. */ public void trace(Object message, Throwable t) { - category.debug(message,t); + category.log(FQCN, Priority.DEBUG, message, t); } @@ -129,7 +132,7 @@ * Log a message to the Log4j Category with DEBUG priority. */ public void debug(Object message) { - category.debug(message); + category.log(FQCN, Priority.DEBUG, message, null); } @@ -137,7 +140,7 @@ * Log an error to the Log4j Category with DEBUG priority. */ public void debug(Object message, Throwable t) { - category.debug(message,t); + category.log(FQCN, Priority.DEBUG, message, t); } @@ -145,7 +148,7 @@ * Log a message to the Log4j Category with INFO priority. */ public void info(Object message) { - category.info(message); + category.log(FQCN, Priority.INFO, message, null); } @@ -153,7 +156,7 @@ * Log an error to the Log4j Category with INFO priority. */ public void info(Object message, Throwable t) { - category.info(message,t); + category.log(FQCN, Priority.INFO, message, t); } @@ -161,7 +164,7 @@ * Log a message to the Log4j Category with WARN priority. */ public void warn(Object message) { - category.warn(message); + category.log(FQCN, Priority.WARN, message, null); } @@ -169,7 +172,7 @@ * Log an error to the Log4j Category with WARN priority. */ public void warn(Object message, Throwable t) { - category.warn(message,t); + category.log(FQCN, Priority.WARN, message, t); } @@ -177,7 +180,7 @@ * Log a message to the Log4j Category with ERROR priority. */ public void error(Object message) { - category.error(message); + category.log(FQCN, Priority.ERROR, message, null); } @@ -185,7 +188,7 @@ * Log an error to the Log4j Category with ERROR priority. */ public void error(Object message, Throwable t) { - category.error(message,t); + category.log(FQCN, Priority.ERROR, message, t); } @@ -193,7 +196,7 @@ * Log a message to the Log4j Category with FATAL priority. */ public void fatal(Object message) { - category.fatal(message); + category.log(FQCN, Priority.FATAL, message, null); } @@ -201,7 +204,7 @@ * Log an error to the Log4j Category with FATAL priority. */ public void fatal(Object message, Throwable t) { - category.fatal(message,t); + category.log(FQCN, Priority.FATAL, message, t); } (See attached file: Log4JCategoryLog.java) ******************************************* Richard A. Sitze rsitze@us.ibm.com CORBA Interoperability & WebServices IBM WebSphere Development --0__=0ABBE1E1DFED50348f9e8a93df938690918c0ABBE1E1DFED5034 Content-type: application/octet-stream; name="Log4JCategoryLog.java" Content-Disposition: attachment; filename="Log4JCategoryLog.java" Content-transfer-encoding: base64 LyoNCiAqICRIZWFkZXI6IC9ob21lL2N2c3B1YmxpYy9qYWthcnRhLWNvbW1vbnMvbG9nZ2luZy9z cmMvamF2YS9vcmcvYXBhY2hlL2NvbW1vbnMvbG9nZ2luZy9pbXBsL0xvZzRKQ2F0ZWdvcnlMb2cu amF2YSx2IDEuMiAyMDAyLzAyLzE1IDAzOjU0OjE5IGNvc3RpbiBFeHAgJA0KICogJFJldmlzaW9u OiAxLjIgJA0KICogJERhdGU6IDIwMDIvMDIvMTUgMDM6NTQ6MTkgJA0KICoNCiAqID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQogKg0KICogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMQ0KICoN CiAqIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlv bi4gIEFsbCByaWdodHMNCiAqIHJlc2VydmVkLg0KICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1 c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZp Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zDQogKiBhcmUgbWV0Og0KICoNCiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogKg0KICogMi4g UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj b3B5cmlnaHQNCiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm b2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90 aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KICogICAgZGlzdHJpYnV0aW9uLg0KICoN CiAqIDMuIFRoZSBlbmQtdXNlciBkb2N1bWVudGF0aW9uIGluY2x1ZGVkIHdpdGggdGhlIHJlZGlz dHJpYnV0aW9uLCBpZg0KICogICAgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBhY2tu b3dsZWdlbWVudDoNCiAqICAgICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2 ZWxvcGVkIGJ5IHRoZQ0KICogICAgICAgIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRw Oi8vd3d3LmFwYWNoZS5vcmcvKS4iDQogKiAgICBBbHRlcm5hdGVseSwgdGhpcyBhY2tub3dsZWdl bWVudCBtYXkgYXBwZWFyIGluIHRoZSBzb2Z0d2FyZSBpdHNlbGYsDQogKiAgICBpZiBhbmQgd2hl cmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBhY2tub3dsZWdlbWVudHMgbm9ybWFsbHkgYXBwZWFyLg0K ICoNCiAqIDQuIFRoZSBuYW1lcyAiVGhlIEpha2FydGEgUHJvamVjdCIsICJDb21tb25zIiwgYW5k ICJBcGFjaGUgU29mdHdhcmUNCiAqICAgIEZvdW5kYXRpb24iIG11c3Qgbm90IGJlIHVzZWQgdG8g ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgIGZyb20gdGhpcyBzb2Z0 d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4NCiAqICAg IHBlcm1pc3Npb24sIHBsZWFzZSBjb250YWN0IGFwYWNoZUBhcGFjaGUub3JnLg0KICoNCiAqIDUu IFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIG1heSBub3QgYmUgY2FsbGVkICJB cGFjaGUiDQogKiAgICBub3IgbWF5ICJBcGFjaGUiIGFwcGVhciBpbiB0aGVpciBuYW1lcyB3aXRo b3V0IHByaW9yIHdyaXR0ZW4NCiAqICAgIHBlcm1pc3Npb24gb2YgdGhlIEFwYWNoZSBHcm91cC4N CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJF U1NFRCBPUiBJTVBMSUVEDQogKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUw0KICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCiAqIERJU0NMQUlNRUQuICBJTiBO TyBFVkVOVCBTSEFMTCBUSEUgQVBBQ0hFIFNPRlRXQVJFIEZPVU5EQVRJT04gT1INCiAqIElUUyBD T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB TCwNCiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM VURJTkcsIEJVVCBOT1QNCiAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YNCiAqIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQNCiAqIE9OIEFOWSBUSEVP UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLA0K ICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO IEFOWSBXQVkgT1VUDQogKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCiAqIFNVQ0ggREFNQUdFLg0KICogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCiAqDQogKiBUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250cmlidXRp b25zIG1hZGUgYnkgbWFueQ0KICogaW5kaXZpZHVhbHMgb24gYmVoYWxmIG9mIHRoZSBBcGFjaGUg U29mdHdhcmUgRm91bmRhdGlvbi4gIEZvciBtb3JlDQogKiBpbmZvcm1hdGlvbiBvbiB0aGUgQXBh Y2hlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHBsZWFzZSBzZWUNCiAqIDxodHRwOi8vd3d3LmFwYWNo ZS5vcmcvPi4NCiAqDQogKi8NCg0KDQpwYWNrYWdlIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5n LmltcGw7DQoNCmltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkNhdGVnb3J5Ow0KaW1wb3J0IG9yZy5h cGFjaGUubG9nNGouUHJpb3JpdHk7DQppbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcu TG9nOw0KDQovKioNCiAqIDxwPkltcGxlbWVudGF0aW9uIG9mIHtAbGluayBMb2d9IHRoYXQgbWFw cyBkaXJlY3RseSB0byBhIExvZzRKDQogKiA8c3Ryb25nPkNhdGVnb3J5PC9zdHJvbmc+LiAgSW5p dGlhbCBjb25maWd1cmF0aW9uIG9mIHRoZSBjb3JyZXNwb25kaW5nDQogKiBDYXRlZ29yeSBpbnN0 YW5jZXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIHVzdWFsIG1hbm5lciwgYXMgb3V0bGluZWQgaW4N CiAqIHRoZSBMb2c0SiBkb2N1bWVudGF0aW9uLjwvcD4NCiAqDQogKiBAYXV0aG9yIDxhIGhyZWY9 Im1haWx0bzpzYW5kZXJzQGFwYWNoZS5vcmciPlNjb3R0IFNhbmRlcnM8L2E+DQogKiBAYXV0aG9y IFJvZCBXYWxkaG9mZg0KICogQGF1dGhvciBSb2JlcnQgQnVycmVsbCBEb25raW4NCiAqIEB2ZXJz aW9uICRJZDogTG9nNEpDYXRlZ29yeUxvZy5qYXZhLHYgMS4yIDIwMDIvMDIvMTUgMDM6NTQ6MTkg Y29zdGluIEV4cCAkDQogKi8NCnB1YmxpYyBmaW5hbCBjbGFzcyBMb2c0SkNhdGVnb3J5TG9nIGlt cGxlbWVudHMgTG9nIHsNCg0KDQogICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBdHRyaWJ1dGVzDQoNCg0KICAgIC8qKiBU aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIExvZzRKQ2F0ZWdvcnlMb2cgY2xhc3MuICov DQogICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZRQ04gPSBMb2c0SkNhdGVnb3J5TG9n LmNsYXNzLmdldE5hbWUoKTsNCg0KICAgIC8qKiBMb2cgdG8gdGhpcyBjYXRlZ29yeSAqLw0KICAg IHByaXZhdGUgQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBudWxsOw0KDQoNCiAgICAvLyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29uc3Ry dWN0b3INCg0KDQogICAgLyoqDQogICAgICogQmFzZSBjb25zdHJ1Y3Rvcg0KICAgICAqLw0KICAg IHB1YmxpYyBMb2c0SkNhdGVnb3J5TG9nKFN0cmluZyBuYW1lKSB7DQogICAgICAgIGNhdGVnb3J5 ID0gQ2F0ZWdvcnkuZ2V0SW5zdGFuY2UobmFtZSk7DQogICAgfQ0KDQogICAgLyoqIEZvciB1c2Ug d2l0aCBhIGxvZzRqIGZhY3RvcnkNCiAgICAgKi8NCiAgICBwdWJsaWMgTG9nNEpDYXRlZ29yeUxv ZyhDYXRlZ29yeSBjYXRlZ29yeSApIHsNCiAgICAgICAgdGhpcy5jYXRlZ29yeT1jYXRlZ29yeTsN CiAgICB9DQoNCg0KICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gSW1wbG1lbnRhdGlvbg0KDQoNCiAgICAvKioNCiAgICAgKiBM b2cgYSBtZXNzYWdlIHRvIHRoZSBMb2c0aiBDYXRlZ29yeSB3aXRoIDxjb2RlPlRSQUNFPC9jb2Rl PiBwcmlvcml0eS4NCiAgICAgKiBDdXJyZW50bHkgbG9ncyB0byA8Y29kZT5ERUJVRzwvY29kZT4g bGV2ZWwgaW4gTG9nNEouDQogICAgICovDQogICAgcHVibGljIHZvaWQgdHJhY2UoT2JqZWN0IG1l c3NhZ2UpIHsNCiAgICAgICAgY2F0ZWdvcnkubG9nKEZRQ04sIFByaW9yaXR5LkRFQlVHLCBtZXNz YWdlLCBudWxsKTsNCiAgICB9DQoNCg0KICAgIC8qKg0KICAgICAqIExvZyBhbiBlcnJvciB0byB0 aGUgTG9nNGogQ2F0ZWdvcnkgd2l0aCA8Y29kZT5UUkFDRTwvY29kZT4gcHJpb3JpdHkuDQogICAg ICogQ3VycmVudGx5IGxvZ3MgdG8gPGNvZGU+REVCVUc8L2NvZGU+IGxldmVsIGluIExvZzRKLg0K ICAgICAqLw0KICAgIHB1YmxpYyB2b2lkIHRyYWNlKE9iamVjdCBtZXNzYWdlLCBUaHJvd2FibGUg dCkgew0KICAgICAgICBjYXRlZ29yeS5sb2coRlFDTiwgUHJpb3JpdHkuREVCVUcsIG1lc3NhZ2Us IHQpOw0KICAgIH0NCg0KDQogICAgLyoqDQogICAgICogTG9nIGEgbWVzc2FnZSB0byB0aGUgTG9n NGogQ2F0ZWdvcnkgd2l0aCA8Y29kZT5ERUJVRzwvY29kZT4gcHJpb3JpdHkuDQogICAgICovDQog ICAgcHVibGljIHZvaWQgZGVidWcoT2JqZWN0IG1lc3NhZ2UpIHsNCiAgICAgICAgY2F0ZWdvcnku bG9nKEZRQ04sIFByaW9yaXR5LkRFQlVHLCBtZXNzYWdlLCBudWxsKTsNCiAgICB9DQoNCg0KICAg IC8qKg0KICAgICAqIExvZyBhbiBlcnJvciB0byB0aGUgTG9nNGogQ2F0ZWdvcnkgd2l0aCA8Y29k ZT5ERUJVRzwvY29kZT4gcHJpb3JpdHkuDQogICAgICovDQogICAgcHVibGljIHZvaWQgZGVidWco T2JqZWN0IG1lc3NhZ2UsIFRocm93YWJsZSB0KSB7DQogICAgICAgIGNhdGVnb3J5LmxvZyhGUUNO LCBQcmlvcml0eS5ERUJVRywgbWVzc2FnZSwgdCk7DQogICAgfQ0KDQoNCiAgICAvKioNCiAgICAg KiBMb2cgYSBtZXNzYWdlIHRvIHRoZSBMb2c0aiBDYXRlZ29yeSB3aXRoIDxjb2RlPklORk88L2Nv ZGU+IHByaW9yaXR5Lg0KICAgICAqLw0KICAgIHB1YmxpYyB2b2lkIGluZm8oT2JqZWN0IG1lc3Nh Z2UpIHsNCiAgICAgICAgY2F0ZWdvcnkubG9nKEZRQ04sIFByaW9yaXR5LklORk8sIG1lc3NhZ2Us IG51bGwpOw0KICAgIH0NCg0KDQogICAgLyoqDQogICAgICogTG9nIGFuIGVycm9yIHRvIHRoZSBM b2c0aiBDYXRlZ29yeSB3aXRoIDxjb2RlPklORk88L2NvZGU+IHByaW9yaXR5Lg0KICAgICAqLw0K ICAgIHB1YmxpYyB2b2lkIGluZm8oT2JqZWN0IG1lc3NhZ2UsIFRocm93YWJsZSB0KSB7DQogICAg ICAgIGNhdGVnb3J5LmxvZyhGUUNOLCBQcmlvcml0eS5JTkZPLCBtZXNzYWdlLCB0KTsNCiAgICB9 DQoNCg0KICAgIC8qKg0KICAgICAqIExvZyBhIG1lc3NhZ2UgdG8gdGhlIExvZzRqIENhdGVnb3J5 IHdpdGggPGNvZGU+V0FSTjwvY29kZT4gcHJpb3JpdHkuDQogICAgICovDQogICAgcHVibGljIHZv aWQgd2FybihPYmplY3QgbWVzc2FnZSkgew0KICAgICAgICBjYXRlZ29yeS5sb2coRlFDTiwgUHJp b3JpdHkuV0FSTiwgbWVzc2FnZSwgbnVsbCk7DQogICAgfQ0KDQoNCiAgICAvKioNCiAgICAgKiBM b2cgYW4gZXJyb3IgdG8gdGhlIExvZzRqIENhdGVnb3J5IHdpdGggPGNvZGU+V0FSTjwvY29kZT4g cHJpb3JpdHkuDQogICAgICovDQogICAgcHVibGljIHZvaWQgd2FybihPYmplY3QgbWVzc2FnZSwg VGhyb3dhYmxlIHQpIHsNCiAgICAgICAgY2F0ZWdvcnkubG9nKEZRQ04sIFByaW9yaXR5LldBUk4s IG1lc3NhZ2UsIHQpOw0KICAgIH0NCg0KDQogICAgLyoqDQogICAgICogTG9nIGEgbWVzc2FnZSB0 byB0aGUgTG9nNGogQ2F0ZWdvcnkgd2l0aCA8Y29kZT5FUlJPUjwvY29kZT4gcHJpb3JpdHkuDQog ICAgICovDQogICAgcHVibGljIHZvaWQgZXJyb3IoT2JqZWN0IG1lc3NhZ2UpIHsNCiAgICAgICAg Y2F0ZWdvcnkubG9nKEZRQ04sIFByaW9yaXR5LkVSUk9SLCBtZXNzYWdlLCBudWxsKTsNCiAgICB9 DQoNCg0KICAgIC8qKg0KICAgICAqIExvZyBhbiBlcnJvciB0byB0aGUgTG9nNGogQ2F0ZWdvcnkg d2l0aCA8Y29kZT5FUlJPUjwvY29kZT4gcHJpb3JpdHkuDQogICAgICovDQogICAgcHVibGljIHZv aWQgZXJyb3IoT2JqZWN0IG1lc3NhZ2UsIFRocm93YWJsZSB0KSB7DQogICAgICAgIGNhdGVnb3J5 LmxvZyhGUUNOLCBQcmlvcml0eS5FUlJPUiwgbWVzc2FnZSwgdCk7DQogICAgfQ0KDQoNCiAgICAv KioNCiAgICAgKiBMb2cgYSBtZXNzYWdlIHRvIHRoZSBMb2c0aiBDYXRlZ29yeSB3aXRoIDxjb2Rl PkZBVEFMPC9jb2RlPiBwcmlvcml0eS4NCiAgICAgKi8NCiAgICBwdWJsaWMgdm9pZCBmYXRhbChP YmplY3QgbWVzc2FnZSkgew0KICAgICAgICBjYXRlZ29yeS5sb2coRlFDTiwgUHJpb3JpdHkuRkFU QUwsIG1lc3NhZ2UsIG51bGwpOw0KICAgIH0NCg0KDQogICAgLyoqDQogICAgICogTG9nIGFuIGVy cm9yIHRvIHRoZSBMb2c0aiBDYXRlZ29yeSB3aXRoIDxjb2RlPkZBVEFMPC9jb2RlPiBwcmlvcml0 eS4NCiAgICAgKi8NCiAgICBwdWJsaWMgdm9pZCBmYXRhbChPYmplY3QgbWVzc2FnZSwgVGhyb3dh YmxlIHQpIHsNCiAgICAgICAgY2F0ZWdvcnkubG9nKEZRQ04sIFByaW9yaXR5LkZBVEFMLCBtZXNz YWdlLCB0KTsNCiAgICB9DQoNCg0KICAgIC8qKg0KICAgICAqIENoZWNrIHdoZXRoZXIgdGhlIExv ZzRqIENhdGVnb3J5IHVzZWQgaXMgZW5hYmxlZCBmb3IgPGNvZGU+REVCVUc8L2NvZGU+IHByaW9y aXR5Lg0KICAgICAqLw0KICAgIHB1YmxpYyBib29sZWFuIGlzRGVidWdFbmFibGVkKCkgew0KICAg ICAgICByZXR1cm4gY2F0ZWdvcnkuaXNEZWJ1Z0VuYWJsZWQoKTsNCiAgICB9DQoNCg0KICAgICAv KioNCiAgICAgKiBDaGVjayB3aGV0aGVyIHRoZSBMb2c0aiBDYXRlZ29yeSB1c2VkIGlzIGVuYWJs ZWQgZm9yIDxjb2RlPkVSUk9SPC9jb2RlPiBwcmlvcml0eS4NCiAgICAgKi8NCiAgICBwdWJsaWMg Ym9vbGVhbiBpc0Vycm9yRW5hYmxlZCgpIHsNCiAgICAgICAgcmV0dXJuIGNhdGVnb3J5LmlzRW5h YmxlZEZvcihQcmlvcml0eS5FUlJPUik7DQogICAgfQ0KDQoNCiAgICAvKioNCiAgICAgKiBDaGVj ayB3aGV0aGVyIHRoZSBMb2c0aiBDYXRlZ29yeSB1c2VkIGlzIGVuYWJsZWQgZm9yIDxjb2RlPkZB VEFMPC9jb2RlPiBwcmlvcml0eS4NCiAgICAgKi8NCiAgICBwdWJsaWMgYm9vbGVhbiBpc0ZhdGFs RW5hYmxlZCgpIHsNCiAgICAgICAgcmV0dXJuIGNhdGVnb3J5LmlzRW5hYmxlZEZvcihQcmlvcml0 eS5GQVRBTCk7DQogICAgfQ0KDQoNCiAgICAvKioNCiAgICAgKiBDaGVjayB3aGV0aGVyIHRoZSBM b2c0aiBDYXRlZ29yeSB1c2VkIGlzIGVuYWJsZWQgZm9yIDxjb2RlPklORk88L2NvZGU+IHByaW9y aXR5Lg0KICAgICAqLw0KICAgIHB1YmxpYyBib29sZWFuIGlzSW5mb0VuYWJsZWQoKSB7DQogICAg ICAgIHJldHVybiBjYXRlZ29yeS5pc0luZm9FbmFibGVkKCk7DQogICAgfQ0KDQoNCiAgICAvKioN CiAgICAgKiBDaGVjayB3aGV0aGVyIHRoZSBMb2c0aiBDYXRlZ29yeSB1c2VkIGlzIGVuYWJsZWQg Zm9yIDxjb2RlPlRSQUNFPC9jb2RlPiBwcmlvcml0eS4NCiAgICAgKiBGb3IgTG9nNEosIHRoaXMg cmV0dXJucyB0aGUgdmFsdWUgb2YgPGNvZGU+aXNEZWJ1Z0VuYWJsZWQoKTwvY29kZT4NCiAgICAg Ki8NCiAgICBwdWJsaWMgYm9vbGVhbiBpc1RyYWNlRW5hYmxlZCgpIHsNCiAgICAgICAgcmV0dXJu IGNhdGVnb3J5LmlzRGVidWdFbmFibGVkKCk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQ2hl Y2sgd2hldGhlciB0aGUgTG9nNGogQ2F0ZWdvcnkgdXNlZCBpcyBlbmFibGVkIGZvciA8Y29kZT5X QVJOPC9jb2RlPiBwcmlvcml0eS4NCiAgICAgKi8NCiAgICBwdWJsaWMgYm9vbGVhbiBpc1dhcm5F bmFibGVkKCkgew0KICAgICAgICByZXR1cm4gY2F0ZWdvcnkuaXNFbmFibGVkRm9yKFByaW9yaXR5 LldBUk4pOw0KICAgIH0NCn0NCg== --0__=0ABBE1E1DFED50348f9e8a93df938690918c0ABBE1E1DFED5034 Content-Type: text/plain; charset=us-ascii -- To unsubscribe, e-mail: For additional commands, e-mail: --0__=0ABBE1E1DFED50348f9e8a93df938690918c0ABBE1E1DFED5034--