Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 32183 invoked from network); 26 Jun 2002 05:48:41 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by 209.66.108.5 with SMTP; 26 Jun 2002 05:48:41 -0000 Received: (qmail 22776 invoked by uid 97); 26 Jun 2002 05:48:39 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@jakarta.apache.org Received: (qmail 22708 invoked by uid 97); 26 Jun 2002 05:48:38 -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 22696 invoked by uid 98); 26 Jun 2002 05:48:37 -0000 X-Antivirus: nagoya (v4198 created Apr 24 2002) Message-ID: <20020626054750.64555.qmail@web14914.mail.yahoo.com> Date: Tue, 25 Jun 2002 22:47:50 -0700 (PDT) From: Vinay Chandran Subject: [Jelly] ThreadTag To: Jakarta Commons Developers List MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-267240440-1025070470=:61629" X-Spam-Rating: 209.66.108.5 1.6.2 0/1000/N X-Spam-Rating: 209.66.108.5 1.6.2 0/1000/N --0-267240440-1025070470=:61629 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, Attached here is Thread Tag implementation + patches for existing classes along with a test sample illustrating the same. Regards, Vinay Chandran __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com --0-267240440-1025070470=:61629 Content-Type: text/plain; name="jelly.patch.txt" Content-Description: jelly.patch.txt Content-Disposition: inline; filename="jelly.patch.txt" Index: JellyContext.java =================================================================== RCS file: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/JellyContext.java,v retrieving revision 1.13 diff -r1.13 JellyContext.java 64d63 < import java.io.File; 67a67 > import java.util.ArrayList; 120a121,122 > /**Place Holder for spawned Threads */ > private ArrayList listOfThreads=new ArrayList(); 618a621,646 > } > > /** > * startThread starts a thread > */ > public void startThread(String name, Thread work) > { > if(name==null) > name="ThreadTag-Thread["+listOfThreads.size()+"]"; > work.setName(name); > listOfThreads.add(work); > //Start the Thread > work.start(); > } > > /** > * Close method > * . This method waits for all the spawned Threads to finish their work > */ > public void close() throws InterruptedException > { > int numberOfThreads=listOfThreads.size(); > for(int i=0;i { > ((Thread)listOfThreads.get(i)).join(); > } Index: tags/core/CoreTagLibrary.java =================================================================== RCS file: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java,v retrieving revision 1.11 diff -r1.11 CoreTagLibrary.java 96a97 > registerTag("thread", ThreadTag.class); Index: task/JellyTask.java =================================================================== RCS file: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/task/JellyTask.java,v retrieving revision 1.5 diff -r1.5 JellyTask.java 25d24 < 28,29d26 < < import org.apache.tools.ant.Task; 31,35c28 < import org.apache.tools.ant.Project; < import org.apache.tools.ant.DirectoryScanner; < import org.apache.tools.ant.types.FileSet; < import org.apache.tools.ant.types.FilterSet; < import org.apache.tools.ant.util.FileUtils; --- > import org.apache.tools.ant.Task; 77d69 < 82c74,79 < getXMLOutput().close(); --- > > //Cleanup > getXMLOutput().flush();//Flush the existing output > context.close(); //clean-up resources (eg: Waits for spawned threads to stop) > getXMLOutput().close(); //Close the stream Finally > Index: build.xml =================================================================== RCS file: /home/cvspublic/jakarta-commons-sandbox/jelly/build.xml,v retrieving revision 1.56 diff -r1.56 build.xml 287a288,293 > description="Runs the Hello World demo"> > > > > --0-267240440-1025070470=:61629 Content-Type: X-unknown/attachment; name="ThreadTag.java" Content-Transfer-Encoding: base64 Content-Description: ThreadTag.java Content-Disposition: name="ThreadTag.java"; filename="ThreadTag.java" LyoNCiAqIA0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqDQogKiBU aGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4xDQogKg0K ICogQ29weXJpZ2h0IChjKSAxOTk5LTIwMDIgVGhlIEFwYWNoZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLiAgQWxsIHJpZ2h0cw0KICogcmVzZXJ2ZWQuDQogKg0K ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQogKiBtb2RpZmljYXRpb24sIGFy ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnMNCiAqIGFyZSBtZXQ6DQogKg0KICogMS4gUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQNCiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCiAqDQogKiAyLiBSZWRpc3Ry aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi b3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluDQogKiAg ICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy b3ZpZGVkIHdpdGggdGhlDQogKiAgICBkaXN0cmlidXRpb24uDQogKg0KICog My4gVGhlIGVuZC11c2VyIGRvY3VtZW50YXRpb24gaW5jbHVkZWQgd2l0aCB0 aGUgcmVkaXN0cmlidXRpb24sIGlmDQogKiAgICBhbnksIG11c3QgaW5jbHVk ZSB0aGUgZm9sbG93aW5nIGFja25vd2xlZ2VtZW50Og0KICogICAgICAgIlRo aXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhl DQogKiAgICAgICAgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKGh0dHA6 Ly93d3cuYXBhY2hlLm9yZy8pLiINCiAqICAgIEFsdGVybmF0ZWx5LCB0aGlz IGFja25vd2xlZ2VtZW50IG1heSBhcHBlYXIgaW4gdGhlIHNvZnR3YXJlIGl0 c2VsZiwNCiAqICAgIGlmIGFuZCB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5 IGFja25vd2xlZ2VtZW50cyBub3JtYWxseSBhcHBlYXIuDQogKg0KICogNC4g VGhlIG5hbWVzICJUaGUgSmFrYXJ0YSBQcm9qZWN0IiwgIkNvbW1vbnMiLCBh bmQgIkFwYWNoZSBTb2Z0d2FyZQ0KICogICAgRm91bmRhdGlvbiIgbXVzdCBu b3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy aXZlZA0KICogICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgcHJpb3Ig d3JpdHRlbiBwZXJtaXNzaW9uLiBGb3Igd3JpdHRlbg0KICogICAgcGVybWlz c2lvbiwgcGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcuDQogKg0K ICogNS4gUHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgbWF5 IG5vdCBiZSBjYWxsZWQgIkFwYWNoZSINCiAqICAgIG5vciBtYXkgIkFwYWNo ZSIgYXBwZWFyIGluIHRoZWlyIG5hbWVzIHdpdGhvdXQgcHJpb3Igd3JpdHRl bg0KICogICAgcGVybWlzc2lvbiBvZiB0aGUgQXBhY2hlIEdyb3VwLg0KICoN CiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBB TlkgRVhQUkVTU0VEIE9SIElNUExJRUQNCiAqIFdBUlJBTlRJRVMsIElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U SUVTDQogKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KICogRElTQ0xBSU1FRC4gIElOIE5P IEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09GVFdBUkUgRk9VTkRBVElPTiBP Ug0KICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF Q1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KICogU1BFQ0lBTCwgRVhFTVBM QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU IE5PVA0KICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRg0KICogVVNFLCBEQVRBLCBP UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg Q0FVU0VEIEFORA0KICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksDQogKiBPUiBU T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ TkcgSU4gQU5ZIFdBWSBPVVQNCiAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0K ICogU1VDSCBEQU1BR0UuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K ICoNCiAqIFRoaXMgc29mdHdhcmUgY29uc2lzdHMgb2Ygdm9sdW50YXJ5IGNv bnRyaWJ1dGlvbnMgbWFkZSBieSBtYW55DQogKiBpbmRpdmlkdWFscyBvbiBi ZWhhbGYgb2YgdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgRm9y IG1vcmUNCiAqIGluZm9ybWF0aW9uIG9uIHRoZSBBcGFjaGUgU29mdHdhcmUg Rm91bmRhdGlvbiwgcGxlYXNlIHNlZQ0KICogPGh0dHA6Ly93d3cuYXBhY2hl Lm9yZy8+Lg0KICovDQpwYWNrYWdlIG9yZy5hcGFjaGUuY29tbW9ucy5qZWxs eS50YWdzLmNvcmU7DQoNCmltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJl YW07DQppbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyOw0KaW1wb3J0IGphdmEu aW8uSU9FeGNlcHRpb247DQoNCmltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMu amVsbHkuTWlzc2luZ0F0dHJpYnV0ZUV4Y2VwdGlvbjsNCmltcG9ydCBvcmcu YXBhY2hlLmNvbW1vbnMuamVsbHkuVGFnU3VwcG9ydDsNCmltcG9ydCBvcmcu YXBhY2hlLmNvbW1vbnMuamVsbHkuWE1MT3V0cHV0Ow0KDQovKiogQSB0YWcg dGhhdCBzcHdhbnMgdGhlIGNvbnRhaW5lZCBzY3JpcHQgaW4gYSBzZXBhcmF0 ZSB0aHJlYWQNCiAgKg0KICAqIEBhdXRob3IgPGEgaHJlZj0ibWFpbHRvOnZp bmF5Y0BhcGFjaGUub3JnIj5WaW5heSBDaGFuZHJhbjwvYT4NCiAgKi8NCnB1 YmxpYyBjbGFzcyBUaHJlYWRUYWcgZXh0ZW5kcyBUYWdTdXBwb3J0IA0Kew0K ICAgIC8qKiBUaHJlYWQgTmFtZSAqLw0KICAgIHByaXZhdGUgU3RyaW5nIG5h bWUgPSBudWxsOw0KICAgIC8qKiBPdXRwdXQgbWVkaXVtICovDQogICAgcHJp dmF0ZSBYTUxPdXRwdXQgb3V0PW51bGw7DQoNCiAgICBwdWJsaWMgVGhyZWFk VGFnKCkNCiAgICB7DQogICAgfQ0KDQogICAgLy8gVGFnIGludGVyZmFjZQ0K ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCiAgICBwdWJs aWMgdm9pZCBkb1RhZyhYTUxPdXRwdXQgb3V0cHV0KSB0aHJvd3MgRXhjZXB0 aW9uDQogICAgew0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkluc2lk ZSBUaHJlYWQgdGFnWyIrb3V0KyJdIik7DQogICAgICAgIGlmKG91dD09bnVs bCkNCiAgICAgICAgICAgIG91dD1vdXRwdXQ7DQogICAgICAgIC8qZmluYWwg U2NyaXB0IHNjcmlwdD1nZXRCb2R5KCk7DQogICAgICAgIGZpbmFsIEplbGx5 Q29udGV4dCBmaW5hbENvbnRleHQ9Y29udGV4dDsNCiAgICAgICAgKi8NCiAg ICAgICAgVGhyZWFkIHRocmVhZCA9IG5ldyBUaHJlYWQobmV3IFJ1bm5hYmxl KCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgcHVibGljIHZvaWQgcnVuKCkNCiAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdldEJvZHkoKS5ydW4oY29udGV4dCwgb3V0KTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICApOw0KICAg ICAgICANCiAgICAgICAgY29udGV4dC5zdGFydFRocmVhZChuYW1lLHRocmVh ZCk7DQogICAgICAgIA0KICAgICAgICAvL1RocmVhZC5zbGVlcCgxMDAwKTsN CiAgICAgICAgDQogICAgICAgIA0KICAgIH0NCiAgICAvKioNCiAgICAgKiBT ZXRzIHRoZSBuYW1lLg0KICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRv IHNldA0KICAgICAqLw0KICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5n IG5hbWUpDQogICAgew0KICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOw0KICAg IH0NCg0KICAgIC8qKg0KICAgICAqIFNldCB0aGUgT3V0cHV0IHRvIGdlbmVy YXRlIA0KICAgICAqIEBwYXJhbSBuYW1lIFRoZSBvdXRwdXQgZmlsZSBuYW1l DQogICAgICovDQogICAgcHVibGljIHZvaWQgc2V0T3V0cHV0KFN0cmluZyBv dXRwdXQpIHRocm93cyBJT0V4Y2VwdGlvbiANCiAgICB7DQogICAgICAgIG91 dD1YTUxPdXRwdXQuY3JlYXRlWE1MT3V0cHV0KG5ldyBGaWxlT3V0cHV0U3Ry ZWFtKG91dHB1dCkpOw0KICAgIH0NCiAgICANCg0KICAgIHByaXZhdGUgY2xh c3MgVGhyZWFkU2NyaXB0QmxvY2sgaW1wbGVtZW50cyBSdW5uYWJsZQ0KICAg IHsNCiAgICAgICAgVGhyZWFkVGFnIHRhZz1udWxsOw0KICAgICAgICBYTUxP dXRwdXQgb3V0cHV0PW51bGw7DQogICAgICAgIFRocmVhZFNjcmlwdEJsb2Nr KFRocmVhZFRhZyB0YWcsWE1MT3V0cHV0IG91dHB1dCkNCiAgICAgICAgew0K ICAgICAgICAgICAgdGhpcy50YWc9dGFnOw0KICAgICAgICAgICAgdGhpcy5v dXRwdXQ9b3V0cHV0Ow0KICAgICAgICB9DQogICAgICAgIHB1YmxpYyB2b2lk IHJ1bigpDQogICAgICAgIHsNCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJp bnRsbigiUnVubmluZyIpOw0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgdGFnLmdldEJvZHkoKS5ydW4odGFnLmNv bnRleHQsIG91dHB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBj YXRjaCAoRXhjZXB0aW9uIGUpDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgfQ0KICAgIH0NCiAgICANCn0NCg== --0-267240440-1025070470=:61629 Content-Type: text/xml; name="testThread.jelly" Content-Description: testThread.jelly Content-Disposition: inline; filename="testThread.jelly" snoop SnoopServlet file ViewFile initial 1000 The initial value for the counter snoop /foo/snoop name: class: There are servlet(s) Java Home = Java Version = = --0-267240440-1025070470=:61629 Content-Type: text/plain; charset=us-ascii -- To unsubscribe, e-mail: For additional commands, e-mail: --0-267240440-1025070470=:61629--