OSDN Git Service

DB\82ð\8eg\97p
authorYuji Konishi <yuji.k64613@gmail.com>
Sun, 4 Mar 2012 14:11:15 +0000 (23:11 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Sun, 4 Mar 2012 14:11:15 +0000 (23:11 +0900)
160 files changed:
memo.txt
workspace/.metadata/.log
workspace/.metadata/.mylyn/.tasks.xml.zip
workspace/.metadata/.mylyn/tasks.xml.zip
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/10/6015735704650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/12/c060b2e5ee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/14/f07a586bf16500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/18/b0282c28ee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/19/7004616cf86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/19/e077c3f6ef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1a/8006693605650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1a/c0baa0888b6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1f/80fdab5dee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/701bd97505650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/c0d23b6c04650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/e0d11725f06500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/20/308671088c6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/20/d0345547e86500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/22/f02166ebe96500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2b/d0128b79f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2c/a09dafda8a6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ff/c04882f301650011187edd98d8496234 with 67% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2e/80e83f5b8b6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/31/40ea2621906500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/31/90efe23dee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/32/70c4775df96400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/35/e013c7b802650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0faa01bf76400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/3c/30250be8eb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/602d8e85f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/42/608da1dbfb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/42/b0c6c14d8b6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/43/70d1a5aeee6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/63/307646aa02650011187edd98d8496234 with 53% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/45/c0c9b7d4eb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/48/b05ff91e3f6500111c73854a8a2f45ba [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/48/b0de5c91ee6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/51/20ca668202650011187edd98d8496234 with 54% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4c/a05c3cd8eb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4c/a08eea65f16500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0a9e77a05650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/107f0abc02650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/54/10334ae0e96500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/55/40ecf67b04650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/5a/306b216b8a6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/35/304f2f00136500111a4595e8dbbae88d with 93% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/5a/b06ee04af96500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/61/b009eb56016600111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/63/90c5f98104650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/64/60a80efbea6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/67/70b740f9f06500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/67/906a95c8ef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/68/802098ddeb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/69/e004632f906500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/70/408cd60c03650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/70/502fb6d38a6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b/b0ca88ec126500111a4595e8dbbae88d with 88% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/76/40c8ae1103650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/76/80ee2380906500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/78/404799cdeb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/78/f08185a38f6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7b/f0152533906500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/8/40d0961c8f6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/82/005f956ff96400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/82/60f5eed7ea6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/83/405456d4f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/84/00b5d60404650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/85/b0a8a6ff8a6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/87/30ef33d6fb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/8b/50ef23a9eb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0b28524ea6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/93/7016bf1df96500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/95/803f40638b6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/96/b0baaa43f96500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/10c7ef0efa6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/7061f588ee6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d/5029d71cfa6400111689baadc7f8b0eb with 55% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/99/d06cf93104650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9b/2092e4728a6500111e5bcf098ae37dc9 [moved from workspace/.metadata/.plugins/org.eclipse.core.resources/.history/af/a03d42bc126500111a4595e8dbbae88d with 86% similarity]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9c/60e41e32ef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9f/c0fb49e904650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/9003368eeb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/209be17eeb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a3/f0786f29006600111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a4/f03f48f8eb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a5/30ef1ee3ef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0a39ab6126500111a4595e8dbbae88d [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/aa/60880ca7e86500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f08063aafb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ad/10bcbf2ef86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ad/f0f050edf76400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ae/60f3eb638c6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b0/603ec758ee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00571300f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b5/b0c6e469f16500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b8/c0d35c3af66400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d09c7050f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b0b49a548b6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/bd/a0ca78a0f16500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10133829f16500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c0/b0f57aa302650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c1/70cc2ee48a6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c3/50c1af74ef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c8/f0a63d728e6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c9/20d77e29906500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ca/b0e1f82eee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ce/50114f10ec6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d0/50d07ddf02650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d1/e01807fae96500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f06a9ca303650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d4/0072607dee6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d6/10694e16f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d7/20c7a723f06500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0607deaef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/de/b036e208fa6400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e5/e009bfcbf76400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e6/a04fe410f06500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e8/b0c70338ea6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e8/e0809f86f96400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e9/b04b6ed5ef6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ef/702f96cdea6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f1/90eb7b06eb6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f2/e0c3d16004650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f4/00f54854f86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80ac9a0f8b6500111e5bcf098ae37dc9 [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fd/f08cf77f04650011187edd98d8496234 [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fe/305a6c1ef86400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fe/e0cb967bf96400111689baadc7f8b0eb [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/Test/org.eclipse.jdt.core/state.dat
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/7e/history.index [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/8d/history.index
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/history.index
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e8/a8/history.index
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/properties.index
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.markers
workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/org.eclipse.jdt.core/state.dat
workspace/.metadata/.plugins/org.eclipse.core.resources/.root/5.tree [deleted file]
workspace/.metadata/.plugins/org.eclipse.core.resources/.root/8.tree [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/usagedata.csv
workspace/.metadata/.plugins/org.eclipse.jdt.core/2316769267.index
workspace/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps
workspace/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
workspace/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
workspace/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
workspace/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/TrainDelayBot/2012/3/9/refactorings.history
workspace/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/TrainDelayBot/2012/3/9/refactorings.index
workspace/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
workspace/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml [new file with mode: 0644]
workspace/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
workspace/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
workspace/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
workspace/TrainDelayBot/src/com/yuji/tdb/TrainDelayBotServlet.java
workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java [new file with mode: 0644]
workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java [new file with mode: 0644]
workspace/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java [new file with mode: 0644]
workspace/TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java
workspace/TrainDelayBot/war/WEB-INF/appengine-generated/local_db.bin [new file with mode: 0644]
workspace/TrainDelayBot/war/WEB-INF/cron.xml

index 3b1a639..80dcd54 100644 (file)
--- a/memo.txt
+++ b/memo.txt
@@ -19,55 +19,24 @@ Eclipse 3.7 (Indigo)        http://dl.google.com/eclipse/plugin/3.7
        #workspace/.metadata
 
 
+\81\9bURL
 https://appengine.google.com/
 http://code.google.com/p/appengine-cl/
 http://1.latest.yuji-k.appspot.com/
 http://1.latest.traindelaybot.appspot.com/
-
-
-<cronentries>
-       <cron>
-               <url>/traindelaybot</url>
-               <description>traindelaybot the run every 2 minutes</description>
-               <schedule>every 2 minutes</schedule>
-               <timezone>Asia/Tokyo</timezone>
-       </cron>
-</cronentries>
-
-
-http://localhost:8888/traindelaybot
 http://garlicg.blog92.fc2.com/blog-entry-2.html
 
 
-
-
-Consumer key           j9Nq0PPfoQxKbU2GUI2hQ
-Consumer secret                WURRzVzAsFWaoX8wKcVkIC16hSxwqRd9dabpO5tNVuw
-Request token URL      https://api.twitter.com/oauth/request_token
-Authorize URL          https://api.twitter.com/oauth/authorize
-Access token URL       https://api.twitter.com/oauth/access_token
-Callback URL           https://appengine.google.com/
-
-
+\81\9b\83A\83N\83Z\83X\82ÌURL
 http://localhost:8888/traindelaybot?key=j9Nq0PPfoQxKbU2GUI2hQ&secret=WURRzVzAsFWaoX8wKcVkIC16hSxwqRd9dabpO5tNVuw
 
-
 http://localhost:8888/traindelaybot
 
-
-
-
 http://1.latest.traindelaybot.appspot.com/traindelaybot?key=j9Nq0PPfoQxKbU2GUI2hQ&secret=WURRzVzAsFWaoX8wKcVkIC16hSxwqRd9dabpO5tNVuw
 
-
 http://1.latest.traindelaybot.appspot.com/traindelaybot
 
 
 
-
-j9Nq0PPfoQxKbU2GUI2hQ
-WURRzVzAsFWaoX8wKcVkIC16hSxwqRd9dabpO5tNVuw
-klasdqc1aXedfHUPQ5Xte1KQDBfXOmqiKWEd6uhxrU
-g8PXKGRNqlsWx4rFUACbZsJJZnY2cnlUIkitFWmhqo
-282436171-2rW56ZCL82FOtgtSW3DR6i3OIKbosiVLt84mOInf
-8g6GFhaDtrRnnXVKaIZ4gfRfWAqZTnvcCIz05oHuas
+\81\9bBigTable
+http://www.atmarkit.co.jp/fjava/rensai4/gaej03/gaej03_4.html
index 5e4bbe2..92a69d2 100644 (file)
@@ -1223,3 +1223,1460 @@ Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.
 \r
 !ENTRY com.google.appengine.eclipse.core 1 0 2012-03-03 18:47:02.660\r
 !MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+!SESSION 2012-03-03 22:53:46.361 -----------------------------------------------\r
+eclipse.buildId=I20110613-1736\r
+java.version=1.6.0_26\r
+java.vendor=Sun Microsystems Inc.\r
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ja_JP\r
+Framework arguments:  -product org.eclipse.epp.package.java.product\r
+Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product\r
+\r
+!ENTRY com.google.gdt.eclipse.managedapis 1 0 2012-03-03 23:05:08.050\r
+!MESSAGE Failed to load icon cache\r
+\r
+!ENTRY org.eclipse.core.jobs 4 2 2012-03-03 23:05:13.293\r
+!MESSAGE An internal error occurred during: "Updating GPE launch configurations".\r
+!STACK 0\r
+java.lang.NullPointerException\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigurationUpdater.update(LaunchConfigurationUpdater.java:153)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.syncUpdate(LaunchConfigAffectingChangesListener.java:93)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.access$2(LaunchConfigAffectingChangesListener.java:89)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener$1.runInWorkspace(LaunchConfigAffectingChangesListener.java:78)\r
+       at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.core.jobs 4 2 2012-03-03 23:05:13.293\r
+!MESSAGE An internal error occurred during: "Updating GPE launch configurations".\r
+!STACK 0\r
+java.lang.NullPointerException\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigurationUpdater.update(LaunchConfigurationUpdater.java:153)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.syncUpdate(LaunchConfigAffectingChangesListener.java:93)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.access$2(LaunchConfigAffectingChangesListener.java:89)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener$1.runInWorkspace(LaunchConfigAffectingChangesListener.java:78)\r
+       at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.core.jobs 4 2 2012-03-03 23:05:13.309\r
+!MESSAGE An internal error occurred during: "Updating GPE launch configurations".\r
+!STACK 0\r
+java.lang.NullPointerException\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigurationUpdater.update(LaunchConfigurationUpdater.java:153)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.syncUpdate(LaunchConfigAffectingChangesListener.java:93)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.access$2(LaunchConfigAffectingChangesListener.java:89)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener$1.runInWorkspace(LaunchConfigAffectingChangesListener.java:78)\r
+       at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.core.jobs 4 2 2012-03-03 23:05:13.309\r
+!MESSAGE An internal error occurred during: "Updating GPE launch configurations".\r
+!STACK 0\r
+java.lang.NullPointerException\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigurationUpdater.update(LaunchConfigurationUpdater.java:153)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.syncUpdate(LaunchConfigAffectingChangesListener.java:93)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.access$2(LaunchConfigAffectingChangesListener.java:89)\r
+       at com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener$1.runInWorkspace(LaunchConfigAffectingChangesListener.java:78)\r
+       at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+!SESSION 2012-03-03 23:41:11.624 -----------------------------------------------\r
+eclipse.buildId=I20110613-1736\r
+java.version=1.6.0_26\r
+java.vendor=Sun Microsystems Inc.\r
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ja_JP\r
+Framework arguments:  -product org.eclipse.epp.package.java.product\r
+Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-03 23:43:13.802\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+!SESSION 2012-03-04 08:35:32.581 -----------------------------------------------\r
+eclipse.buildId=I20110613-1736\r
+java.version=1.6.0_26\r
+java.vendor=Sun Microsystems Inc.\r
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ja_JP\r
+Framework arguments:  -product org.eclipse.epp.package.java.product\r
+Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:37:37.492\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.launch.GwtLaunchConfigurationConfigurator", thread "Thread[Worker-0,5,main]" timed out waiting (5095ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.launch.GwtLaunchConfigurationConfigurator" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:189)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 19 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:189)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:37:42.571\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.WarmUpSupport", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.WarmUpSupport" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 19 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:37:47.626\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:37:52.684\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.model.web.WebDocumentEditContext", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.model.web.WebDocumentEditContext" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.ui 4 4 2012-03-04 08:37:55.760\r
+!MESSAGE Invalid preference page path: CSS Files\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:37:57.716\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.ModuleVisitor", thread "Thread[Worker-0,5,main]" timed out waiting (5001ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.ModuleVisitor" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:02.720\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$7", thread "Thread[Worker-0,5,main]" timed out waiting (5001ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$7" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:07.723\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.builders.participant.MyCompilationParticipant", thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" is proceeding but "com.google.gdt.eclipse.designer.builders.participant.MyCompilationParticipant" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)\r
+       at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 39 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)\r
+       at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:07.726\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$6", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$6" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:12.779\r
+!MESSAGE While loading class "org.htmlparser.util.ParserFeedback", thread "Thread[Worker-0,5,main]" timed out waiting (4999ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "org.htmlparser.util.ParserFeedback" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:17.828\r
+!MESSAGE While loading class "org.htmlparser.visitors.NodeVisitor", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "org.htmlparser.visitors.NodeVisitor" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:22.831\r
+!MESSAGE While loading class "org.htmlparser.visitors.TagFindingVisitor", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "org.htmlparser.visitors.TagFindingVisitor" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:27.834\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.builders.participant.MarkerInfo", thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" is proceeding but "com.google.gdt.eclipse.designer.builders.participant.MarkerInfo" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 41 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:32.838\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$5", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$5" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:37.868\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.ModuleDescription", thread "Thread[Worker-0,5,main]" timed out waiting (5001ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.ModuleDescription" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:42.871\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.DefaultModuleDescription", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.DefaultModuleDescription" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:47.896\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$4", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$4" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:52.901\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$2", thread "Thread[Worker-0,5,main]" timed out waiting (5001ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$2" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:38:57.906\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$3", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$3" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:39:02.908\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.builders.participant.MarkerInfoImportModule", thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" timed out waiting (4999ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" is proceeding but "com.google.gdt.eclipse.designer.builders.participant.MarkerInfoImportModule" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 41 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:39:07.911\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.util.Utils$8", thread "Thread[Worker-0,5,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "com.google.gdt.eclipse.designer.util.Utils$8" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 21 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.warmUpHostedMode(WarmUpSupport.java:96)\r
+       at com.google.gdt.eclipse.designer.WarmUpSupport.doWarmUp(WarmUpSupport.java:84)\r
+       at com.google.gdt.eclipse.designer.Activator.earlyStartup(Activator.java:190)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)\r
+       at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:73)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.ui.internal.Workbench$63.run(Workbench.java:2465)\r
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:39:12.948\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.builders.participant.MyCompilationParticipant$1", thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" is proceeding but "com.google.gdt.eclipse.designer.builders.participant.MyCompilationParticipant$1" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 41 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+\r
+!ENTRY org.eclipse.osgi 2 0 2012-03-04 08:39:17.954\r
+!MESSAGE While loading class "com.google.gdt.eclipse.designer.builders.participant.MyCompilationParticipant$2", thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" timed out waiting (5000ms) for thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" to finish starting bundle "com.google.gdt.eclipse.designer_2.5.0.r37x201112291029 [345]". To avoid deadlock, thread "Thread[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]" is proceeding but "com.google.gdt.eclipse.designer.builders.participant.MyCompilationParticipant$2" may not be fully initialized.\r
+!STACK 0\r
+org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.google.gdt.eclipse.designer_2.5.0.r37x201112291029.jar" by thread "org.eclipse.jdt.internal.ui.text.JavaReconciler".\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       ... 41 more\r
+Root exception:\r
+org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)\r
+       at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)\r
+       at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)\r
+       at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)\r
+       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)\r
+       at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)\r
+       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)\r
+       at java.lang.ClassLoader.loadClass(Unknown Source)\r
+       at java.lang.Class.getDeclaredConstructors0(Native Method)\r
+       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)\r
+       at java.lang.Class.getConstructor0(Unknown Source)\r
+       at java.lang.Class.newInstance0(Unknown Source)\r
+       at java.lang.Class.newInstance(Unknown Source)\r
+       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)\r
+       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)\r
+       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)\r
+       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$4.run(JavaModelManager.java:319)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants(JavaModelManager.java:314)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:238)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)\r
+       at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)\r
+\r
+!ENTRY org.eclipse.wst.common.project.facet.core 4 0 2012-03-04 08:55:35.626\r
+!MESSAGE Project facet wst.web has not been defined. It is used in plugin org.eclipse.jst.common.project.facet.core.\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 08:56:22.336\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 09:26:09.991\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+\r
+!ENTRY com.google.gdt.eclipse.managedapis 1 0 2012-03-04 18:35:58.188\r
+!MESSAGE Failed to load icon cache\r
+\r
+!ENTRY org.eclipse.jdt.core 4 2 2012-03-04 19:55:25.852\r
+!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jdt.core".\r
+!STACK 0\r
+java.lang.NullPointerException\r
+       at com.google.gdt.eclipse.appengine.rpc.validators.JavaCompilationParticipant.reconcile(JavaCompilationParticipant.java:168)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$1.run(ReconcileWorkingCopyOperation.java:257)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:244)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)\r
+\r
+!ENTRY org.eclipse.jdt.core 4 4 2012-03-04 19:55:25.882\r
+!MESSAGE Exception occurred in reconcile participant\r
+!STACK 0\r
+java.lang.NullPointerException\r
+       at com.google.gdt.eclipse.appengine.rpc.validators.JavaCompilationParticipant.reconcile(JavaCompilationParticipant.java:168)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation$1.run(ReconcileWorkingCopyOperation.java:257)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:244)\r
+       at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)\r
+       at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)\r
+       at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)\r
+       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)\r
+       at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151)\r
+       at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)\r
+       at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104)\r
+       at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77)\r
+       at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 21:01:00.495\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 22:03:13.908\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 22:14:05.237\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 22:44:51.513\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
+\r
+!ENTRY com.google.appengine.eclipse.core 1 0 2012-03-04 22:53:17.751\r
+!MESSAGE TrainDelayBot successfully deployed to Google App Engine\r
index bed5b1a..7293351 100644 (file)
Binary files a/workspace/.metadata/.mylyn/.tasks.xml.zip and b/workspace/.metadata/.mylyn/.tasks.xml.zip differ
index 7b5d793..6da1e68 100644 (file)
Binary files a/workspace/.metadata/.mylyn/tasks.xml.zip and b/workspace/.metadata/.mylyn/tasks.xml.zip differ
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/10/6015735704650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/10/6015735704650011187edd98d8496234
deleted file mode 100644 (file)
index 6045daa..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 10){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/12/c060b2e5ee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/12/c060b2e5ee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..6d67eac
--- /dev/null
@@ -0,0 +1,140 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/14/f07a586bf16500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/14/f07a586bf16500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..6772bb0
--- /dev/null
@@ -0,0 +1,161 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       // private static RequestToken requestToken = null;\r
+       //private static AccessToken accessToken = null;\r
+       // private static String consumerKey = null;\r
+       // private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+\r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao\r
+                                               .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;\r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey,\r
+                                               requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret,\r
+                                               requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       String accessTokenKey = dao.get(KeyValueDao.KEY_ACCESS_TOKEN);\r
+                       String accessTokenSecret = dao.get(KeyValueDao.KEY_ACCESS_TOKEN_SECRET);\r
+                       if (CommonUtil.isNull(accessTokenKey)\r
+                                       || CommonUtil.isNull(accessTokenSecret)) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken accessToken = new AccessToken(accessTokenKey,\r
+                                       accessTokenSecret);\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       // consumerKey = parmConsumerKey;\r
+                       // consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,\r
+                                       requestToken.getTokenSecret());\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey,\r
+                       String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN, accessToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN_SECRET, accessToken.getTokenSecret());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/18/b0282c28ee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/18/b0282c28ee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..f29ec0f
--- /dev/null
@@ -0,0 +1,32 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private static KeyValueDao instance = null;\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+               \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/19/7004616cf86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/19/7004616cf86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index dc6b647..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/19/e077c3f6ef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/19/e077c3f6ef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..15ec369
--- /dev/null
@@ -0,0 +1,147 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret, requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       String requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1a/8006693605650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1a/8006693605650011187edd98d8496234
deleted file mode 100644 (file)
index 9fc4935..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 1){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = sample + " " + date.toString();                                                       \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-                       keywords.add("\82 ");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1a/c0baa0888b6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1a/c0baa0888b6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..a1aca32
--- /dev/null
@@ -0,0 +1,112 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println("traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                       parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey, consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1f/80fdab5dee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/1f/80fdab5dee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..10aa01b
--- /dev/null
@@ -0,0 +1,145 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/701bd97505650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/701bd97505650011187edd98d8496234
deleted file mode 100644 (file)
index 2890088..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 1){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = sample + " " + date.toString();                                                       \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-                       keywords.add("\92â");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/c0d23b6c04650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/c0d23b6c04650011187edd98d8496234
deleted file mode 100644 (file)
index 94c2456..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 10){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/e0d11725f06500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2/e0d11725f06500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..7ad3a2f
--- /dev/null
@@ -0,0 +1,149 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret, requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET, requestToken.getTokenSecret());\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/20/308671088c6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/20/308671088c6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..dc1daf3
--- /dev/null
@@ -0,0 +1,116 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println("traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                       parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               if (accessToken == null){\r
+                       return;\r
+               }\r
+               \r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey, consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/20/d0345547e86500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/20/d0345547e86500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/22/f02166ebe96500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/22/f02166ebe96500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..c581151
--- /dev/null
@@ -0,0 +1,5 @@
+package com.yuji.tdb.db;\r
+\r
+public class KeyValue {\r
+\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2b/d0128b79f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2b/d0128b79f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index e9bcd28..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
@@ -1,18 +1,11 @@
 package com.yuji.tdb;\r
 \r
 import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
 \r
 import javax.servlet.http.HttpServlet;\r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
 import twitter4j.Twitter;\r
 import twitter4j.TwitterException;\r
 import twitter4j.TwitterFactory;\r
@@ -23,6 +16,7 @@ import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;\r
 \r
 import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
 \r
 @SuppressWarnings("serial")\r
 public class TrainDelayBotServlet extends HttpServlet {\r
@@ -36,19 +30,30 @@ public class TrainDelayBotServlet extends HttpServlet {
                resp.setContentType("text/plain");\r
                resp.getWriter().println(" traindelaybot Hello, world");\r
 \r
-               String consumerKey = req.getParameter("key");\r
+               String parmConsumerKey = req.getParameter("key");\r
                String consumerSecret = req.getParameter("secret");\r
                String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
                                && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey, consumerSecret);\r
                        return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerKey)\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(result)) {\r
                        resultOAuthAuthorization();\r
                        return;\r
                }\r
 \r
-               main();\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(TrainDelayBotServlet.consumerKey,\r
+                               TrainDelayBotServlet.consumerSecret, accessToken);\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
@@ -62,7 +67,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -90,10 +95,6 @@ public class TrainDelayBotServlet extends HttpServlet {
        private void resultOAuthAuthorization() {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -109,32 +110,4 @@ public class TrainDelayBotServlet extends HttpServlet {
                        e.printStackTrace();\r
                }\r
        }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               \r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2e/80e83f5b8b6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2e/80e83f5b8b6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..7d06eac
--- /dev/null
@@ -0,0 +1,113 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                       parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey, consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/31/40ea2621906500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/31/40ea2621906500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..9539828
--- /dev/null
@@ -0,0 +1,129 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/31/90efe23dee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/31/90efe23dee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..d4c68a4
--- /dev/null
@@ -0,0 +1,141 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/32/70c4775df96400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/32/70c4775df96400111689baadc7f8b0eb
deleted file mode 100644 (file)
index d25abbc..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/35/e013c7b802650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/35/e013c7b802650011187edd98d8496234
deleted file mode 100644 (file)
index ebaad0f..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-\r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0faa01bf76400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0faa01bf76400111689baadc7f8b0eb
deleted file mode 100644 (file)
index aefe37b..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-                       \r
-                       AccessToken accessToken = twitter.getOAuthAccessToken();\r
-                                       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/3c/30250be8eb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/3c/30250be8eb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..e3e99a5
--- /dev/null
@@ -0,0 +1,136 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       KeyValueDao dao = KeyValueDao.getInstance();\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/602d8e85f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/602d8e85f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index bf7737c..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       TwitterFactory factory = new TwitterFactory();\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/42/608da1dbfb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/42/608da1dbfb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..8d6d6da
--- /dev/null
@@ -0,0 +1,137 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(1000); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\92â\8e~");\r
+                       keywords.add("\8e\96\8cÌ");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/42/b0c6c14d8b6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/42/b0c6c14d8b6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..8bbfc9f
--- /dev/null
@@ -0,0 +1,113 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey, parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey,\r
+                               consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String pramConsumerKey, String consumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(pramConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       TrainDelayBotServlet.consumerKey = pramConsumerKey;\r
+                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
@@ -1,18 +1,12 @@
 package com.yuji.tdb;\r
 \r
 import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
+import java.util.logging.Logger;\r
 \r
 import javax.servlet.http.HttpServlet;\r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
 import twitter4j.Twitter;\r
 import twitter4j.TwitterException;\r
 import twitter4j.TwitterFactory;\r
@@ -23,46 +17,86 @@ import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;\r
 \r
 import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
 \r
 @SuppressWarnings("serial")\r
 public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
        private static RequestToken requestToken = null;\r
        private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
 \r
        public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
                        throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret);\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
                }\r
 \r
-               main();\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
                try {\r
                        ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
 \r
                        confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -74,26 +108,26 @@ public class TrainDelayBotServlet extends HttpServlet {
                        // sessionScope("RequestToken", requestToken);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
 \r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
                        resp.sendRedirect(requestToken.getAuthenticationURL());\r
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                } catch (IOException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 \r
-       private void resultOAuthAuthorization() {\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -107,40 +141,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-\r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/45/c0c9b7d4eb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/45/c0c9b7d4eb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..f8d84ce
--- /dev/null
@@ -0,0 +1,29 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private static KeyValueDao instance = null;\r
+       \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/48/b05ff91e3f6500111c73854a8a2f45ba b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/48/b05ff91e3f6500111c73854a8a2f45ba
new file mode 100644 (file)
index 0000000..12af0a6
--- /dev/null
@@ -0,0 +1,128 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(100); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               String sample = tweets.get(mindex).getText();\r
+                               sample = sample.substring(0, 50);\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\8bÙ\8b}\92â\8e~");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
@@ -1,18 +1,12 @@
 package com.yuji.tdb;\r
 \r
 import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
+import java.util.logging.Logger;\r
 \r
 import javax.servlet.http.HttpServlet;\r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
 import twitter4j.Twitter;\r
 import twitter4j.TwitterException;\r
 import twitter4j.TwitterFactory;\r
@@ -23,46 +17,86 @@ import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;\r
 \r
 import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
 \r
 @SuppressWarnings("serial")\r
 public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
        private static RequestToken requestToken = null;\r
        private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
 \r
        public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
                        throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
                }\r
 \r
-               main();\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
                try {\r
                        ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
 \r
                        confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -74,26 +108,26 @@ public class TrainDelayBotServlet extends HttpServlet {
                        // sessionScope("RequestToken", requestToken);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
 \r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
                        resp.sendRedirect(requestToken.getAuthenticationURL());\r
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                } catch (IOException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 \r
-       private void resultOAuthAuthorization() {\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -107,36 +141,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4c/a05c3cd8eb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4c/a05c3cd8eb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..4486a91
--- /dev/null
@@ -0,0 +1,33 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private static KeyValueDao instance = null;\r
+       \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4c/a08eea65f16500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4c/a08eea65f16500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..4685e19
--- /dev/null
@@ -0,0 +1,156 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       // private static RequestToken requestToken = null;\r
+       //private static AccessToken accessToken = null;\r
+       // private static String consumerKey = null;\r
+       // private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+\r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao\r
+                                               .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;\r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey,\r
+                                               requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret,\r
+                                               requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       // consumerKey = parmConsumerKey;\r
+                       // consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,\r
+                                       requestToken.getTokenSecret());\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey,\r
+                       String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN, accessToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN_SECRET, accessToken.getTokenSecret());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0a9e77a05650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0a9e77a05650011187edd98d8496234
deleted file mode 100644 (file)
index 1823a9e..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 1){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = sample + " " + date.toString()\81@+ "count=" + count;                                                   \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-                       keywords.add("\92â");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/107f0abc02650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/107f0abc02650011187edd98d8496234
deleted file mode 100644 (file)
index da5bf30..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = curDate.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/54/10334ae0e96500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/54/10334ae0e96500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/55/40ecf67b04650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/55/40ecf67b04650011187edd98d8496234
deleted file mode 100644 (file)
index f8897bc..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 10){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               message = " " + date.toString();                                                        \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
@@ -42,8 +42,10 @@ public class TrainDelayBotServlet extends HttpServlet {
                        return;\r
                }\r
 \r
+               // TODO null check\r
                TwitterUtil util = TwitterUtil.getInstance();\r
-               util.main(consumerKey, consumerSecret, accessToken);\r
+               util.main(TrainDelayBotServlet.consumerKey,\r
+                               TrainDelayBotServlet.consumerSecret, accessToken);\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
@@ -57,7 +59,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -104,7 +106,4 @@ public class TrainDelayBotServlet extends HttpServlet {
                        e.printStackTrace();\r
                }\r
        }\r
-\r
-       }\r
-\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/5a/b06ee04af96500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/5a/b06ee04af96500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..2aadc84
--- /dev/null
@@ -0,0 +1,49 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       public static final String KEY_CONSUMER_KEY = "CONSUMER_KEY";\r
+       public static final String KEY_CONSUMER_SECRET = "CONSUMER_SECRET";\r
+       public static final String KEY_REQUEST_TOKEN = "REQUEST_TOKEN";\r
+       public static final String KEY_REQUEST_TOKEN_SECRET = "REQUEST_TOKEN_SECRET";\r
+       public static final String KEY_ACCESS_TOKEN = "ACCESS_TOKEN";\r
+       public static final String KEY_ACCESS_TOKEN_SECRET = "ACCESS_TOKEN_SECRET";\r
+\r
+       private static KeyValueDao instance = null;\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+               \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public int getInt(String key){\r
+               String value = get(key);\r
+               return Integer.valueOf(value).intValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+\r
+       public void put(String key, int value){\r
+               put(key, String.valueOf(value));\r
+       }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/61/b009eb56016600111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/61/b009eb56016600111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..85220c8
--- /dev/null
@@ -0,0 +1,138 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(1000); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               //sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\90U\91Ö");\r
+                       keywords.add("\92â\8e~");\r
+                       keywords.add("\8e\96\8cÌ");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/63/90c5f98104650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/63/90c5f98104650011187edd98d8496234
deleted file mode 100644 (file)
index 519e4a7..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 10){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = sample + " " + date.toString();                                                       \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/64/60a80efbea6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/64/60a80efbea6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..523bd6c
--- /dev/null
@@ -0,0 +1,19 @@
+package com.yuji.tdb.db;\r
+\r
+public class KeyValue {\r
+       private String key;\r
+       private String value;\r
+       \r
+       public String getKey() {\r
+               return key;\r
+       }\r
+       public void setKey(String key) {\r
+               this.key = key;\r
+       }\r
+       public String getValue() {\r
+               return value;\r
+       }\r
+       public void setValue(String value) {\r
+               this.value = value;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/67/70b740f9f06500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/67/70b740f9f06500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..9c7e190
--- /dev/null
@@ -0,0 +1,154 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       // private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       // private static String consumerKey = null;\r
+       // private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+\r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao\r
+                                               .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;\r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey,\r
+                                               requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret,\r
+                                               requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       // consumerKey = parmConsumerKey;\r
+                       // consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,\r
+                                       requestToken.getTokenSecret());\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey,\r
+                       String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/67/906a95c8ef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/67/906a95c8ef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..180d232
--- /dev/null
@@ -0,0 +1,142 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               if (requestToken == null){\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/68/802098ddeb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/68/802098ddeb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..9ebc91a
--- /dev/null
@@ -0,0 +1,135 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       KeyValueDao dao = KeyValueDao.getInstance();\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/69/e004632f906500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/69/e004632f906500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..f43fa0e
--- /dev/null
@@ -0,0 +1,137 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.TrainDelayBotServlet;\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(100); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\8bÙ\8b}\92â\8e~");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/70/408cd60c03650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/70/408cd60c03650011187edd98d8496234
deleted file mode 100644 (file)
index ac8cef6..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = dt.getTime();\r
-                               \r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
@@ -37,13 +37,23 @@ public class TrainDelayBotServlet extends HttpServlet {
                                && !CommonUtil.isNull(consumerSecret)) {\r
                        setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
                        return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerKey)\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(result)) {\r
                        resultOAuthAuthorization();\r
                        return;\r
                }\r
 \r
+               // TODO null check\r
                TwitterUtil util = TwitterUtil.getInstance();\r
-               util.main();\r
+               util.main(TrainDelayBotServlet.consumerKey,\r
+                               TrainDelayBotServlet.consumerSecret, accessToken);\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
@@ -57,7 +67,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -85,10 +95,6 @@ public class TrainDelayBotServlet extends HttpServlet {
        private void resultOAuthAuthorization() {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -104,7 +110,4 @@ public class TrainDelayBotServlet extends HttpServlet {
                        e.printStackTrace();\r
                }\r
        }\r
-\r
-       }\r
-\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/76/40c8ae1103650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/76/40c8ae1103650011187edd98d8496234
deleted file mode 100644 (file)
index 3e5a385..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               \r
-                               if (t < cur - 10 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/76/80ee2380906500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/76/80ee2380906500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..779eb26
--- /dev/null
@@ -0,0 +1,8 @@
+<cronentries>\r
+       <cron>\r
+               <url>/traindelaybot</url>\r
+               <description>traindelaybot the run every 5 minutes</description>\r
+               <schedule>every 5 minutes</schedule>\r
+               <timezone>Asia/Tokyo</timezone>\r
+       </cron>\r
+</cronentries>\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/78/404799cdeb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/78/404799cdeb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..08c4db1
--- /dev/null
@@ -0,0 +1,20 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/78/f08185a38f6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/78/f08185a38f6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..43e62c9
--- /dev/null
@@ -0,0 +1,134 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.warning("start");\r
+\r
+                       log.info("info");\r
+                       log.warning("warning");\r
+                       log.fine("fine");\r
+                       log.severe("severe");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               resp.getWriter().println("<div>001</div>");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               resp.getWriter().println("<div>002</div>");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.warning("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7b/f0152533906500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7b/f0152533906500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..0ee837a
--- /dev/null
@@ -0,0 +1,132 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/8/40d0961c8f6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/8/40d0961c8f6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..8910417
--- /dev/null
@@ -0,0 +1,121 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private static final Logger log = Logger.getLogger(TrainDelayBotServlet.class.getName());\r
+       \r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                       parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       resp.getWriter().println("<div>001</div>");\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               if (accessToken == null){\r
+                       resp.getWriter().println("<div>002</div>");\r
+                       return;\r
+               }\r
+               \r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey, consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/82/005f956ff96400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/82/005f956ff96400111689baadc7f8b0eb
deleted file mode 100644 (file)
index 099384d..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               \r
-               String url = req.getRequestURL().toString();\r
-               \r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/82/60f5eed7ea6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/82/60f5eed7ea6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..35bee5f
--- /dev/null
@@ -0,0 +1,12 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(keyValue.class, key);\r
+               return keyValue.getValue();\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/83/405456d4f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/83/405456d4f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index 056a7e4..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       TwitterFactory factory = new TwitterFactory();\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/84/00b5d60404650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/84/00b5d60404650011187edd98d8496234
deleted file mode 100644 (file)
index d56da3d..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = new ArrayList<String>();\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       return false;\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/85/b0a8a6ff8a6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/85/b0a8a6ff8a6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..fd4cca8
--- /dev/null
@@ -0,0 +1,113 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey, parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerKey)\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(TrainDelayBotServlet.consumerKey,\r
+                               TrainDelayBotServlet.consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(consumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       TrainDelayBotServlet.consumerKey = consumerKey;\r
+                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/87/30ef33d6fb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/87/30ef33d6fb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..573c01e
--- /dev/null
@@ -0,0 +1,136 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(1000); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\92â\8e~");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/8b/50ef23a9eb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/8b/50ef23a9eb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..043d8cd
--- /dev/null
@@ -0,0 +1,131 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0b28524ea6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/90/c0b28524ea6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/93/7016bf1df96500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/93/7016bf1df96500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..6626a61
--- /dev/null
@@ -0,0 +1,39 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       public static final String KEY_CONSUMER_KEY = "CONSUMER_KEY";\r
+       public static final String KEY_CONSUMER_SECRET = "CONSUMER_SECRET";\r
+       public static final String KEY_REQUEST_TOKEN = "REQUEST_TOKEN";\r
+       public static final String KEY_REQUEST_TOKEN_SECRET = "REQUEST_TOKEN_SECRET";\r
+       public static final String KEY_ACCESS_TOKEN = "ACCESS_TOKEN";\r
+       public static final String KEY_ACCESS_TOKEN_SECRET = "ACCESS_TOKEN_SECRET";\r
+\r
+       private static KeyValueDao instance = null;\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+               \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/95/803f40638b6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/95/803f40638b6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..4e55a2b
--- /dev/null
@@ -0,0 +1,112 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                       parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey, consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/96/b0baaa43f96500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/96/b0baaa43f96500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..226dc97
--- /dev/null
@@ -0,0 +1,44 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       public static final String KEY_CONSUMER_KEY = "CONSUMER_KEY";\r
+       public static final String KEY_CONSUMER_SECRET = "CONSUMER_SECRET";\r
+       public static final String KEY_REQUEST_TOKEN = "REQUEST_TOKEN";\r
+       public static final String KEY_REQUEST_TOKEN_SECRET = "REQUEST_TOKEN_SECRET";\r
+       public static final String KEY_ACCESS_TOKEN = "ACCESS_TOKEN";\r
+       public static final String KEY_ACCESS_TOKEN_SECRET = "ACCESS_TOKEN_SECRET";\r
+\r
+       private static KeyValueDao instance = null;\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+               \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+\r
+       public void put(String key, int value){\r
+               put(key, String.valueOf(value));\r
+       }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/10c7ef0efa6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/10c7ef0efa6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..18b418f
--- /dev/null
@@ -0,0 +1,136 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(100); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\8bÙ\8b}\92â\8e~");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
@@ -1,18 +1,12 @@
 package com.yuji.tdb;\r
 \r
 import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
+import java.util.logging.Logger;\r
 \r
 import javax.servlet.http.HttpServlet;\r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
 import twitter4j.Twitter;\r
 import twitter4j.TwitterException;\r
 import twitter4j.TwitterFactory;\r
@@ -23,46 +17,86 @@ import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;\r
 \r
 import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
 \r
 @SuppressWarnings("serial")\r
 public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
        private static RequestToken requestToken = null;\r
        private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
 \r
        public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
                        throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
                }\r
 \r
-               main();\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
                try {\r
                        ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
 \r
                        confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -74,26 +108,26 @@ public class TrainDelayBotServlet extends HttpServlet {
                        // sessionScope("RequestToken", requestToken);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
 \r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
                        resp.sendRedirect(requestToken.getAuthenticationURL());\r
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                } catch (IOException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 \r
        private void resultOAuthAuthorization() {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -107,35 +141,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/99/d06cf93104650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/99/d06cf93104650011187edd98d8496234
deleted file mode 100644 (file)
index ed2cbd3..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
@@ -1,19 +1,11 @@
 package com.yuji.tdb;\r
 \r
 import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
 \r
 import javax.servlet.http.HttpServlet;\r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
 import twitter4j.Twitter;\r
 import twitter4j.TwitterException;\r
 import twitter4j.TwitterFactory;\r
@@ -24,6 +16,7 @@ import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;\r
 \r
 import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
 \r
 @SuppressWarnings("serial")\r
 public class TrainDelayBotServlet extends HttpServlet {\r
@@ -44,13 +37,22 @@ public class TrainDelayBotServlet extends HttpServlet {
                                && !CommonUtil.isNull(consumerSecret)) {\r
                        setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
                        return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
+               } \r
+               \r
+               if (requestToken == null || CommonUtil.isNull(TrainDelayBotServlet.consumerKey)\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerSecret)) {\r
+                       return;\r
+               }               \r
+               \r
+               if (!CommonUtil.isNull(result)) {\r
                        resultOAuthAuthorization();\r
                        return;\r
                }\r
 \r
+               // TODO null check\r
                TwitterUtil util = TwitterUtil.getInstance();\r
-               util.main();\r
+               util.main(TrainDelayBotServlet.consumerKey,\r
+                               TrainDelayBotServlet.consumerSecret, accessToken);\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
@@ -64,7 +66,7 @@ public class TrainDelayBotServlet extends HttpServlet {
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
-                       \r
+\r
                        OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
                        // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
@@ -92,10 +94,6 @@ public class TrainDelayBotServlet extends HttpServlet {
        private void resultOAuthAuthorization() {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -111,7 +109,4 @@ public class TrainDelayBotServlet extends HttpServlet {
                        e.printStackTrace();\r
                }\r
        }\r
-\r
-       }\r
-\r
 }\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9c/60e41e32ef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9c/60e41e32ef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..32fbe4b
--- /dev/null
@@ -0,0 +1,138 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9f/c0fb49e904650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/9f/c0fb49e904650011187edd98d8496234
deleted file mode 100644 (file)
index b9a43cf..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 1){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = sample + " " + date.toString();                                                       \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/9003368eeb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/9003368eeb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..4470e6e
--- /dev/null
@@ -0,0 +1,17 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/209be17eeb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/209be17eeb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..36fd2cf
--- /dev/null
@@ -0,0 +1,16 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a3/f0786f29006600111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a3/f0786f29006600111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..d5863ec
--- /dev/null
@@ -0,0 +1,138 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(1000); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\90U\91Ö");\r
+                       keywords.add("\92â\8e~");\r
+                       keywords.add("\8e\96\8cÌ");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a4/f03f48f8eb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a4/f03f48f8eb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..0bd3159
--- /dev/null
@@ -0,0 +1,136 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a5/30ef1ee3ef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a5/30ef1ee3ef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..83690cc
--- /dev/null
@@ -0,0 +1,147 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret. requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0a39ab6126500111a4595e8dbbae88d b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0a39ab6126500111a4595e8dbbae88d
deleted file mode 100644 (file)
index d5b755d..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 1){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = sample + " " + date.toString() + "count=" + count;                                                    \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-                       keywords.add("\92â");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/aa/60880ca7e86500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/aa/60880ca7e86500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..ac352b8
--- /dev/null
@@ -0,0 +1,5 @@
+package com.yuji.tdb.db;\r
+\r
+public class PMFactory {\r
+\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f08063aafb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/aa/f08063aafb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..cac908a
--- /dev/null
@@ -0,0 +1,136 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.logging.Logger;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(1000); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\8bÙ\8b}\92â\8e~");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ad/10bcbf2ef86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ad/10bcbf2ef86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index bcfd4ea..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-               try {\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ad/f0f050edf76400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ad/f0f050edf76400111689baadc7f8b0eb
deleted file mode 100644 (file)
index 12aa09e..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-                       \r
-                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
-                                       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ae/60f3eb638c6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ae/60f3eb638c6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..1388d5f
--- /dev/null
@@ -0,0 +1,8 @@
+<cronentries>\r
+       <cron>\r
+               <url>/traindelaybot</url>\r
+               <description>traindelaybot the run every 30 minutes</description>\r
+               <schedule>every 30 minutes</schedule>\r
+               <timezone>Asia/Tokyo</timezone>\r
+       </cron>\r
+</cronentries>\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b0/603ec758ee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b0/603ec758ee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..5569c02
--- /dev/null
@@ -0,0 +1,143 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00571300f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00571300f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index a4f0d5b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               }\r
-               else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-                       \r
-                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
-                                       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b5/b0c6e469f16500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b5/b0c6e469f16500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..5141fc1
--- /dev/null
@@ -0,0 +1,161 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       // private static RequestToken requestToken = null;\r
+       //private static AccessToken accessToken = null;\r
+       // private static String consumerKey = null;\r
+       // private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+\r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao\r
+                                               .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;\r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey,\r
+                                               requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret,\r
+                                               requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       String accessTokenKey = dao.get(KeyValueDao.KEY_ACCESS_TOKEN);\r
+                       String accessTokenSecret = dao.get(KeyValueDao.KEY_ACCESS_TOKEN_SECRET);\r
+                       if (CommonUtil.isNull(accessTokenKey)\r
+                                       || CommonUtil.isNull(accessTokenSecret)) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken accessToken = new AccessToken(requestTokenKey,\r
+                                       accessTokenSecret);\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       // consumerKey = parmConsumerKey;\r
+                       // consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,\r
+                                       requestToken.getTokenSecret());\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey,\r
+                       String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN, accessToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN_SECRET, accessToken.getTokenSecret());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b8/c0d35c3af66400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b8/c0d35c3af66400111689baadc7f8b0eb
deleted file mode 100644 (file)
index da07c4d..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       \r
-                       Twitter twitter = factory.getInstance();\r
-                       accessToken = twitter.getOAuthAccessToken();\r
-                                       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d09c7050f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d09c7050f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index dc6b647..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b0b49a548b6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/bb/b0b49a548b6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..aadde10
--- /dev/null
@@ -0,0 +1,113 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey, parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey,\r
+                               consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey, String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/bd/a0ca78a0f16500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/bd/a0ca78a0f16500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..1388d5f
--- /dev/null
@@ -0,0 +1,8 @@
+<cronentries>\r
+       <cron>\r
+               <url>/traindelaybot</url>\r
+               <description>traindelaybot the run every 30 minutes</description>\r
+               <schedule>every 30 minutes</schedule>\r
+               <timezone>Asia/Tokyo</timezone>\r
+       </cron>\r
+</cronentries>\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10133829f16500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10133829f16500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..48b34f1
--- /dev/null
@@ -0,0 +1,154 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       // private static RequestToken requestToken = null;\r
+       //private static AccessToken accessToken = null;\r
+       // private static String consumerKey = null;\r
+       // private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+\r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao\r
+                                               .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;\r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey,\r
+                                               requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret,\r
+                                               requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       // consumerKey = parmConsumerKey;\r
+                       // consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,\r
+                                       requestToken.getTokenSecret());\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey,\r
+                       String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c0/b0f57aa302650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c0/b0f57aa302650011187edd98d8496234
deleted file mode 100644 (file)
index beeca9e..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c1/70cc2ee48a6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c1/70cc2ee48a6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..2958f91
--- /dev/null
@@ -0,0 +1,113 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String result = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey, parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerKey)\r
+                               || CommonUtil.isNull(TrainDelayBotServlet.consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(result)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(TrainDelayBotServlet.consumerKey,\r
+                               TrainDelayBotServlet.consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(consumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       TrainDelayBotServlet.consumerKey = consumerKey;\r
+                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c3/50c1af74ef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c3/50c1af74ef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..ecb8d67
--- /dev/null
@@ -0,0 +1,138 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c8/f0a63d728e6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c8/f0a63d728e6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..affd3a9
--- /dev/null
@@ -0,0 +1,118 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                       parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       resp.getWriter().println("<div>001</div>");\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               if (accessToken == null){\r
+                       resp.getWriter().println("<div>002</div>");\r
+                       return;\r
+               }\r
+               \r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey, consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c9/20d77e29906500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/c9/20d77e29906500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..105ca8c
--- /dev/null
@@ -0,0 +1,132 @@
+package com.yuji.tdb.twitter;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import twitter4j.Query;\r
+import twitter4j.QueryResult;\r
+import twitter4j.Status;\r
+import twitter4j.Tweet;\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+\r
+public class TwitterUtil {\r
+       private static TwitterUtil instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static TwitterUtil getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new TwitterUtil();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private TwitterUtil() {\r
+\r
+       }\r
+\r
+       public void main(String consumerKey, String consumerSecret, AccessToken accessToken) {\r
+\r
+               String text = "\8b\9e\95l\93\8c\96k";\r
+\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance(accessToken);\r
+\r
+                       Calendar cal = Calendar.getInstance();\r
+                       Date date = cal.getTime();\r
+                       long cur = date.getTime();\r
+                       \r
+                       Query query = new Query();\r
+                       query.setRpp(100); // TODO\r
+                       query.setQuery(text);\r
+                       QueryResult result = twitter.search(query);\r
+                       List<Tweet> tweets = result.getTweets();\r
+                       \r
+                       int count = 0;\r
+                       int hit = 0;\r
+                       int mhit = 0;\r
+                       \r
+                       int index;\r
+                       int mindex = 0;\r
+                       int size = tweets.size();\r
+                       for (index = 0; index < size; index++) {\r
+                               Tweet tweet = tweets.get(index);\r
+                               \r
+                               Date at = tweet.getCreatedAt();\r
+                               long t = at.getTime();\r
+                               String message = tweet.getText();\r
+                               \r
+                               if (t < cur - 30 * 60 * 1000){\r
+                                       continue;\r
+                               }\r
+                               hit = filter(message);\r
+                               if (hit <= 0) {\r
+                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
+                                       continue;\r
+                               }\r
+                               if (hit > mhit){\r
+                                       hit = mhit;\r
+                                       mindex = index;\r
+                               }\r
+\r
+                               System.out.println("@" + tweet.getFromUser() + " - "\r
+                                               + tweet.getText() + at);\r
+                               count++;\r
+                       }\r
+               \r
+                       String message = "";\r
+                       if (count < 10){\r
+                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
+                       }\r
+                       else {\r
+                               int N = 50;\r
+                               \r
+                               String sample = tweets.get(mindex).getText();\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
+                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
+                               message = sample + " " + date.toString() + " count=" + count;                                                   \r
+                       }\r
+                       Status status = twitter.updateStatus(message);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+       \r
+       private static List<String> keywords = null;\r
+\r
+       public int filter(String text) {\r
+               if (keywords == null) {\r
+                       keywords = new ArrayList<String>();\r
+                       keywords.add("\92x\89\84");\r
+                       keywords.add("\92x\82ê");\r
+                       keywords.add("\90U\82è\91Ö\82¦");\r
+                       keywords.add("\8bÙ\8b}\92â\8e~");\r
+               }\r
+\r
+               int count = 0;\r
+               for (String keyword : keywords) {\r
+                       if (text.indexOf(keyword) >= 0) {\r
+                               count++;\r
+                       }\r
+               }\r
+               return count;\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ca/b0e1f82eee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ca/b0e1f82eee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..454f1e6
--- /dev/null
@@ -0,0 +1,39 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private static final String KEY_CONSUMER_KEY = "CONSUMER_KEY";\r
+       private static final String KEY_CONSUMER_SECRET = "CONSUMER_SECRET";\r
+       private static final String KEY_REQUEST_TOKEN = "REQUEST_TOKEN";\r
+       private static final String KEY_REQUEST_TOKEN_SECRET = "REQUEST_TOKEN_SECRET";\r
+       private static final String KEY_ACCESS_TOKEN = "ACCESS_TOKEN";\r
+       private static final String KEY_ACCESS_TOKEN_SECRET = "ACCESS_TOKEN_SECRET";\r
+\r
+       private static KeyValueDao instance = null;\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+               \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ce/50114f10ec6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ce/50114f10ec6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..5c296d3
--- /dev/null
@@ -0,0 +1,137 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d0/50d07ddf02650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d0/50d07ddf02650011187edd98d8496234
deleted file mode 100644 (file)
index 0427f62..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d1/e01807fae96500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d1/e01807fae96500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..dc4bab6
--- /dev/null
@@ -0,0 +1,6 @@
+package com.yuji.tdb.db;\r
+\r
+public class KeyValue {\r
+       private String key;\r
+       private String value;\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f06a9ca303650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d3/f06a9ca303650011187edd98d8496234
deleted file mode 100644 (file)
index e0aab72..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "\83e\83X\83g " + date.toString();\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d4/0072607dee6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d4/0072607dee6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..04b713b
--- /dev/null
@@ -0,0 +1,145 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               \r
+                               dao.put("FOO", "aaa");\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               resultOAuthAuthorization();\r
+                               \r
+                               String value = dao.get("FOO");\r
+                               log.warning("VALUE=" + value);\r
+                               \r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("002");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken a = new AccessToken(parmResult, parmResult);\r
+                       \r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       consumerKey = parmConsumerKey;\r
+                       consumerSecret = parmConsumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d6/10694e16f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d6/10694e16f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index 9b15e7b..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               }\r
-               else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-                       \r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-                                       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d7/20c7a723f06500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/d7/20c7a723f06500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..e95d27c
--- /dev/null
@@ -0,0 +1,148 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret, requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, value);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0607deaef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/db/e0607deaef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..3c1433a
--- /dev/null
@@ -0,0 +1,147 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret, requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/de/b036e208fa6400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/de/b036e208fa6400111689baadc7f8b0eb
deleted file mode 100644 (file)
index f1b206d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e5/e009bfcbf76400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e5/e009bfcbf76400111689baadc7f8b0eb
deleted file mode 100644 (file)
index 830d831..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-                       \r
-                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
-                                       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e6/a04fe410f06500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e6/a04fe410f06500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..0052388
--- /dev/null
@@ -0,0 +1,148 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret, requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       String requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, value);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret, RequestToken requestToken) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e8/b0c70338ea6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e8/b0c70338ea6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..11cdc1e
--- /dev/null
@@ -0,0 +1,5 @@
+package com.yuji.tdb.db;\r
+\r
+public class KeyValueDao {\r
+\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e8/e0809f86f96400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e8/e0809f86f96400111689baadc7f8b0eb
deleted file mode 100644 (file)
index fd96adf..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e9/b04b6ed5ef6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e9/b04b6ed5ef6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..d9bdd8f
--- /dev/null
@@ -0,0 +1,147 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+import java.util.logging.Logger;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       //private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       //private static String consumerKey = null;\r
+       //private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               try {\r
+                       log.info("start");\r
+                       \r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);                            \r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao.get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;                                 \r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey, requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret. requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       if (accessToken == null) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
+               }\r
+\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       //consumerKey = parmConsumerKey;\r
+                       //consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       \r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization(String consumerKey, String consumerSecret) {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+                       log.severe(e.toString());\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ef/702f96cdea6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/ef/702f96cdea6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..aa7a0b3
--- /dev/null
@@ -0,0 +1,9 @@
+package com.yuji.tdb.db;\r
+\r
+public class KeyValueDao {\r
+       PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               \r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f1/90eb7b06eb6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f1/90eb7b06eb6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..9f22d26
--- /dev/null
@@ -0,0 +1,12 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               return keyValue.getValue();\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f2/e0c3d16004650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f2/e0c3d16004650011187edd98d8496234
deleted file mode 100644 (file)
index b63846d..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = null;\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 10){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f4/00f54854f86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f4/00f54854f86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index c83d56d..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80ac9a0f8b6500111e5bcf098ae37dc9 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80ac9a0f8b6500111e5bcf098ae37dc9
new file mode 100644 (file)
index 0000000..1dba3c6
--- /dev/null
@@ -0,0 +1,113 @@
+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+       private static RequestToken requestToken = null;\r
+       private static AccessToken accessToken = null;\r
+       private static String consumerKey = null;\r
+       private static String consumerSecret = null;\r
+\r
+       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+                       throws IOException {\r
+               resp.setContentType("text/plain");\r
+               resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+               String parmConsumerKey = req.getParameter("key");\r
+               String parmConsumerSecret = req.getParameter("secret");\r
+               String parmResult = req.getParameter("result");\r
+               if (!CommonUtil.isNull(parmConsumerKey)\r
+                               && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                       setOAuthAuthorization(req, resp, parmConsumerKey, parmConsumerSecret);\r
+                       return;\r
+               }\r
+\r
+               if (requestToken == null\r
+                               || CommonUtil.isNull(consumerKey)\r
+                               || CommonUtil.isNull(consumerSecret)) {\r
+                       return;\r
+               }\r
+\r
+               if (!CommonUtil.isNull(parmResult)) {\r
+                       resultOAuthAuthorization();\r
+                       return;\r
+               }\r
+\r
+               // TODO null check\r
+               TwitterUtil util = TwitterUtil.getInstance();\r
+               util.main(consumerKey,\r
+                               consumerSecret, accessToken);\r
+       }\r
+\r
+       private void setOAuthAuthorization(HttpServletRequest req,\r
+                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+               try {\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+                       confBuilder.setDebugEnabled(true);\r
+                       confBuilder.setOAuthConsumerKey(consumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       Configuration conf = confBuilder.build();\r
+\r
+                       String url = req.getRequestURL().toString();\r
+\r
+                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+                       String callbackURL = url + "?result=yes";\r
+                       // RequestToken requestToken =\r
+                       // oauth.getOAuthRequestToken(callbackURL);\r
+                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+                       // sessionScope("RequestToken", requestToken);\r
+                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+                       TrainDelayBotServlet.consumerKey = consumerKey;\r
+                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+\r
+                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               } catch (IOException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
+       private void resultOAuthAuthorization() {\r
+               try {\r
+                       // Twitter twitter = new TwitterFactory().getInstance();\r
+                       // String tokenKey = requestToken.getToken();\r
+                       // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+                                       .setOAuthConsumerSecret(consumerSecret);\r
+                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+                       Twitter twitter = factory.getInstance();\r
+\r
+                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+               } catch (TwitterException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fd/f08cf77f04650011187edd98d8496234 b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fd/f08cf77f04650011187edd98d8496234
deleted file mode 100644 (file)
index 37e4111..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       String url = req.getRequestURL().toString();\r
-                       \r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = url + "?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       long cur = date.getTime();\r
-                       \r
-                       Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
-                       query.setQuery(text);\r
-                       QueryResult result = twitter.search(query);\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       int count = 0;\r
-                       String sample = "<none>";\r
-                       for (Tweet tweet : tweets) {\r
-                               Date at = tweet.getCreatedAt();\r
-                               long t = at.getTime();\r
-                               String message = tweet.getText();\r
-                               \r
-                               if (t < cur - 30 * 60 * 1000){\r
-                                       continue;\r
-                               }\r
-                               if (!filter(message)) {\r
-                                       // \92x\89\84\88È\8aO\82Ì\8f\91\82«\8d\9e\82Ý\r
-                                       continue;\r
-                               }\r
-                               if (sample == null){\r
-                                       sample = message;\r
-                               }\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText() + at);\r
-                       }\r
-               \r
-                       String message = "";\r
-                       if (count < 10){\r
-                               message = "\92x\89\84\82È\82µ " + date.toString();                        \r
-                       }\r
-                       else {\r
-                               sample = CommonUtil.replaceString(sample, "@", "(a)");\r
-                               message = " " + date.toString();                                                        \r
-                       }\r
-                       Status status = twitter.updateStatus(message);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-       \r
-       private List<String> keywords = null;\r
-       \r
-       private boolean filter(String text) {\r
-               if (keywords == null) {\r
-                       keywords = new ArrayList<String>();\r
-                       keywords.add("\92x\89\84");\r
-                       keywords.add("\92x\82ê");\r
-                       keywords.add("\90U\82è\91Ö\82¦");\r
-               }\r
-\r
-               for (String keyword : keywords) {\r
-                       if (text.indexOf(keyword) >= 0) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }       \r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fe/305a6c1ef86400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fe/305a6c1ef86400111689baadc7f8b0eb
deleted file mode 100644 (file)
index d542dc0..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization(req, resp);\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null\r
-                                       || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       //String tokenKey = requestToken.getToken();\r
-                       //String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-                       \r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               }\r
-                       private void main() {\r
-       \r
-//                     AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       //Twitter twitter = factory.getInstance();\r
-\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fe/e0cb967bf96400111689baadc7f8b0eb b/workspace/.metadata/.plugins/org.eclipse.core.resources/.history/fe/e0cb967bf96400111689baadc7f8b0eb
deleted file mode 100644 (file)
index d25abbc..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-package com.yuji.tdb;\r
-\r
-import java.io.IOException;\r
-import java.util.Calendar;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.servlet.http.HttpServlet;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import twitter4j.Query;\r
-import twitter4j.QueryResult;\r
-import twitter4j.Status;\r
-import twitter4j.Tweet;\r
-import twitter4j.Twitter;\r
-import twitter4j.TwitterException;\r
-import twitter4j.TwitterFactory;\r
-import twitter4j.auth.AccessToken;\r
-import twitter4j.auth.OAuthAuthorization;\r
-import twitter4j.auth.RequestToken;\r
-import twitter4j.conf.Configuration;\r
-import twitter4j.conf.ConfigurationBuilder;\r
-\r
-import com.yuji.tdb.common.CommonUtil;\r
-\r
-@SuppressWarnings("serial")\r
-public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
-\r
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
-                       throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
-               }\r
-\r
-               main();\r
-       }\r
-\r
-       private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
-               try {\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-\r
-                       confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
-                       // Configuration conf = ConfigurationContext.getInstance();\r
-                       Configuration conf = confBuilder.build();\r
-\r
-                       OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
-                       String callbackURL = "http://localhost:8888/traindelaybot?result=yes";\r
-                       // RequestToken requestToken =\r
-                       // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
-                       // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
-                       // sessionScope("RequestToken", requestToken);\r
-                       // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
-\r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
-\r
-                       resp.sendRedirect(requestToken.getAuthenticationURL());\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void resultOAuthAuthorization() {\r
-               try {\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
-                       // String tokenKey = requestToken.getToken();\r
-                       // String tokenSecret = requestToken.getTokenSecret();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance();\r
-\r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       private void main() {\r
-\r
-               String text = "\8b\9e\95l\93\8c\96k";\r
-\r
-               try {\r
-                       Calendar cal = Calendar.getInstance();\r
-                       Date date = cal.getTime();\r
-                       String message = "\83e\83X\83g " + date.toString();\r
-\r
-                       // AccessToken accessToken = new AccessToken(tokenKey, tokenSecret);\r
-                       // Twitter twitter = factory.getInstance();\r
-\r
-                       ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
-                       confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
-                                       .setOAuthConsumerSecret(consumerSecret);\r
-                       TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
-                       Twitter twitter = factory.getInstance(accessToken);\r
-                       Status status = twitter.updateStatus(message);\r
-\r
-                       // Twitter twitter = new TwitterFactory().getInstance();\r
-                       QueryResult result = twitter.search(new Query(text));\r
-                       List<Tweet> tweets = result.getTweets();\r
-                       for (Tweet tweet : tweets) {\r
-                               System.out.println("@" + tweet.getFromUser() + " - "\r
-                                               + tweet.getText());\r
-                       }\r
-               } catch (TwitterException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}\r
index d071419..fdf9202 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/Test/org.eclipse.jdt.core/state.dat and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/Test/org.eclipse.jdt.core/state.dat differ
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/7e/history.index b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/7e/history.index
new file mode 100644 (file)
index 0000000..7aa7daa
Binary files /dev/null and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/7e/history.index differ
index dd14aca..35c7adf 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/8d/history.index and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/8d/history.index differ
index 697ca94..239319c 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/history.index and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e4/81/5b/f2/history.index differ
index b4f4f12..4e0b112 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e8/a8/history.index and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/e8/a8/history.index differ
index e5727e8..322187a 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/properties.index and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.indexes/properties.index differ
index c99f12f..c444845 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.markers and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/.markers differ
index 3326b4f..ce693ad 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/org.eclipse.jdt.core/state.dat and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/TrainDelayBot/org.eclipse.jdt.core/state.dat differ
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.root/5.tree b/workspace/.metadata/.plugins/org.eclipse.core.resources/.root/5.tree
deleted file mode 100644 (file)
index 1b55beb..0000000
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.root/5.tree and /dev/null differ
diff --git a/workspace/.metadata/.plugins/org.eclipse.core.resources/.root/8.tree b/workspace/.metadata/.plugins/org.eclipse.core.resources/.root/8.tree
new file mode 100644 (file)
index 0000000..79a29ea
Binary files /dev/null and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.root/8.tree differ
index 552e34a..2a29953 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/workspace/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ
diff --git a/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv b/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload11.csv
new file mode 100644 (file)
index 0000000..4453291
--- /dev/null
@@ -0,0 +1,244 @@
+what,kind,bundleId,bundleVersion,description,time
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767698767
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330767713620
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767719580
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767745158
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330767758308
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767760926
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767763420
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330767764530
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767771595
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767772364
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767797054
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767879295
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767886361
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767952105
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330767955792
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330767956136
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767960460
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767961350
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767962506
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767963866
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767972951
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330767979269
+started,bundle,org.eclipse.wst.sse.core,1.1.602.v201112071516,"org.eclipse.wst.sse.core",1330767986953
+started,bundle,org.eclipse.wst.xml.core,1.1.602.v201201091944,"org.eclipse.wst.xml.core",1330767987163
+started,bundle,org.eclipse.wst.common.uriresolver,1.1.401.v201004280700,"org.eclipse.wst.common.uriresolver",1330767988453
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767988653
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767990310
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330767992609
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767992770
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768003075
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768010341
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768036288
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768038478
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768040336
+closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768041046
+stopped,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330768042086
+stopped,bundle,org.eclipse.ui.cheatsheets,3.4.100.v20110425,"org.eclipse.ui.cheatsheets",1330768042086
+stopped,bundle,org.eclipse.help.ui,3.5.100.v20110425,"org.eclipse.help.ui",1330768042086
+stopped,bundle,org.eclipse.help.webapp,3.6.0.v20110518,"org.eclipse.help.webapp",1330768042086
+stopped,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330768042087
+stopped,bundle,org.eclipse.epp.usagedata.ui,1.3.1.R201106061540,"org.eclipse.epp.usagedata.ui",1330768042087
+stopped,bundle,org.eclipse.ui.intro.universal,3.2.500.v20110510,"org.eclipse.ui.intro.universal",1330768042087
+stopped,bundle,org.eclipse.ui.intro,3.4.100.v20110425,"org.eclipse.ui.intro",1330768042087
+stopped,bundle,org.eclipse.help.base,3.6.0.v201106131736,"org.eclipse.help.base",1330768042087
+stopped,bundle,org.eclipse.equinox.http.jetty,2.0.100.v20110502,"org.eclipse.equinox.http.jetty",1330768042087
+stopped,bundle,com.google.appengine.eclipse.datatools,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.datatools",1330768042088
+stopped,bundle,com.google.appengine.eclipse.sdkbundle,1.6.3.v201202290255r37,"com.google.appengine.eclipse.sdkbundle",1330768042088
+stopped,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330768042091
+stopped,bundle,com.google.gdt.eclipse.gph.e36,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.e36",1330768042091
+stopped,bundle,com.google.gdt.eclipse.gph.hge,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.hge",1330768042091
+stopped,bundle,com.google.gdt.eclipse.gph.subclipse,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subclipse",1330768042091
+stopped,bundle,com.google.gdt.eclipse.gph.subversive,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subversive",1330768042091
+stopped,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330768042091
+stopped,bundle,com.google.gdt.eclipse.gph,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph",1330768042091
+stopped,bundle,com.google.gdt.eclipse.maven.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven.e37",1330768042091
+stopped,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330768042092
+stopped,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330768042092
+stopped,bundle,com.google.gdt.eclipse.appsmarketplace,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appsmarketplace",1330768042092
+stopped,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330768042093
+stopped,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330768042094
+stopped,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330768042130
+stopped,bundle,com.google.gwt.eclipse.oophm,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.oophm",1330768042130
+stopped,bundle,com.google.gwt.eclipse.sdkbundle,2.4.0.v201202290255-rel-r37,"com.google.gwt.eclipse.sdkbundle",1330768042130
+stopped,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330768042230
+stopped,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330768042231
+stopped,bundle,com.google.gdt.eclipse.platform,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform",1330768042231
+stopped,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330768042231
+stopped,bundle,com.google.gdt.eclipse.platform.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.e37",1330768042231
+stopped,bundle,org.eclipse.m2e.discovery,1.0.200.20111228-1245,"org.eclipse.m2e.discovery",1330768042232
+stopped,bundle,org.eclipse.m2e.refactoring,1.0.200.20111228-1245,"org.eclipse.m2e.refactoring",1330768042232
+stopped,bundle,org.eclipse.m2e.editor,1.0.200.20111228-1245,"org.eclipse.m2e.editor",1330768042233
+stopped,bundle,org.eclipse.m2e.editor.xml,1.0.200.20111228-1245,"org.eclipse.m2e.editor.xml",1330768042233
+stopped,bundle,org.eclipse.m2e.jdt,1.0.200.20111228-1245,"org.eclipse.m2e.jdt",1330768042233
+stopped,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1330768042233
+stopped,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330768042234
+stopped,bundle,org.eclipse.m2e.core.ui,1.0.200.20111228-1245,"org.eclipse.m2e.core.ui",1330768042234
+stopped,bundle,org.eclipse.m2e.core,1.0.200.20111228-1245,"org.eclipse.m2e.core",1330768042234
+stopped,bundle,org.eclipse.mylyn.ide.ant,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ant",1330768042234
+stopped,bundle,org.eclipse.ant.ui,3.5.100.v20110510,"org.eclipse.ant.ui",1330768042234
+stopped,bundle,org.eclipse.ant.launching,1.0.100.v20110506,"org.eclipse.ant.launching",1330768042235
+stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1330768042235
+stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1330768042235
+stopped,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330768042236
+stopped,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330768042236
+stopped,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330768042236
+stopped,bundle,com.google.gdt.eclipse.designer.gpe,2.5.0.r37x201201030222,"com.google.gdt.eclipse.designer.gpe",1330768042236
+stopped,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330768042237
+stopped,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330768042237
+stopped,bundle,org.eclipse.jdt.apt.ui,3.3.300.v20110305-1450,"org.eclipse.jdt.apt.ui",1330768042237
+stopped,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330768042288
+stopped,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330768042288
+stopped,bundle,org.eclipse.wb.swing.FormLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.FormLayout",1330768042288
+stopped,bundle,org.eclipse.wb.swing.MigLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.MigLayout",1330768042288
+stopped,bundle,org.eclipse.wb.swing.databinding,1.0.0.r37x201106081552,"org.eclipse.wb.swing.databinding",1330768042289
+stopped,bundle,org.eclipse.wb.swing.java6,1.0.0.r37x201106081552,"org.eclipse.wb.swing.java6",1330768042289
+stopped,bundle,org.eclipse.wb.swing.jsr296,1.0.0.r37x201106081552,"org.eclipse.wb.swing.jsr296",1330768042289
+stopped,bundle,org.eclipse.wb.swing,1.0.0.r37x201106081552,"org.eclipse.wb.swing",1330768042289
+stopped,bundle,org.eclipse.wb.core.ui,1.0.0.r37x201106081733,"org.eclipse.wb.core.ui",1330768042289
+stopped,bundle,org.eclipse.wb.layout.group,1.0.0.r37x201106081642,"org.eclipse.wb.layout.group",1330768042290
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.ie",1330768042290
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.webkit",1330768042290
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0",1330768042290
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.ie",1330768042290
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.webkit",1330768042292
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2",1330768042292
+stopped,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330768042293
+stopped,bundle,org.eclipse.wb.core.databinding.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.databinding.xml",1330768042293
+stopped,bundle,org.eclipse.wb.core.databinding,1.2.0.r37x201112290923,"org.eclipse.wb.core.databinding",1330768042293
+stopped,bundle,org.eclipse.wb.core.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.xml",1330768042293
+stopped,bundle,org.eclipse.wb.css,1.2.0.r37x201112290951,"org.eclipse.wb.css",1330768042293
+stopped,bundle,org.eclipse.wb.os.win32,1.2.0.r37x201112290923,"org.eclipse.wb.os.win32",1330768042293
+stopped,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330768042294
+stopped,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330768042367
+stopped,bundle,org.eclipse.wst.dtd.ui,1.0.600.v201103171359,"org.eclipse.wst.dtd.ui",1330768042367
+stopped,bundle,org.eclipse.wst.xsd.ui,1.2.404.v201105050216,"org.eclipse.wst.xsd.ui",1330768042368
+stopped,bundle,org.eclipse.wst.css.ui,1.0.601.v201201101544,"org.eclipse.wst.css.ui",1330768042368
+stopped,bundle,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui",1330768042368
+stopped,bundle,org.eclipse.wst.common.ui,1.1.500.v200911190730,"org.eclipse.wst.common.ui",1330768042368
+stopped,bundle,org.eclipse.wst.jsdt.ui,1.1.102.v201201131900,"org.eclipse.wst.jsdt.ui",1330768042369
+stopped,bundle,org.eclipse.wst.sse.ui,1.3.2.v201201041522,"org.eclipse.wst.sse.ui",1330768042369
+stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330768042511
+stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1330768042511
+stopped,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330768042512
+stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1330768042512
+stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330768042512
+stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330768042515
+stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1330768042515
+stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1330768042515
+stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1330768042515
+stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330768042516
+stopped,bundle,org.eclipse.mylyn.help.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.help.ui",1330768042516
+stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.bugs",1330768042516
+stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330768042517
+stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330768042517
+stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330768042518
+stopped,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330768042518
+stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1330768042518
+stopped,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1330768042532
+stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1330768042532
+stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330768042533
+stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330768042533
+stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330768042533
+stopped,bundle,org.eclipse.wst.common.snippets,1.2.100.v201103281740,"org.eclipse.wst.common.snippets",1330768042534
+activated,perspective,org.eclipse.jdt.ui,,"org.eclipse.jdt.ui.JavaPerspective",1330783493509
+started,bundle,org.eclipse.osgi,3.7.0.v20110613,"org.eclipse.osgi",1330783493524
+started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1330783493587
+started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1330783493649
+started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1330783493665
+started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1330783493758
+started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1330783493805
+started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1330783493805
+started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1330783493805
+started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1330783493821
+started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1330783493914
+started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1330783494398
+started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1330783494507
+started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1330783494507
+started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1330783494569
+started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1330783494632
+started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1330783494694
+started,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330783494725
+started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1330783494741
+started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1330783494772
+started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1330783494819
+started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1330783494897
+started,bundle,org.eclipse.equinox.ds,1.3.0.v20110502,"org.eclipse.equinox.ds",1330783495022
+started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1330783495100
+started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1330783495131
+started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1330783495178
+started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1330783495225
+started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1330783495256
+started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1330783495303
+started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1330783495303
+started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1330783495443
+started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1330783495490
+started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1330783495490
+started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1330783495537
+started,bundle,org.eclipse.equinox.preferences,3.4.0.v20110502,"org.eclipse.equinox.preferences",1330783495537
+started,bundle,org.eclipse.equinox.registry,3.5.100.v20110502,"org.eclipse.equinox.registry",1330783495599
+started,bundle,org.eclipse.equinox.security,1.1.0.v20110502,"org.eclipse.equinox.security",1330783495771
+started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1330783495802
+started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1330783495833
+started,bundle,org.eclipse.jdt.core,3.7.0.v_B61,"org.eclipse.jdt.core",1330783495880
+started,bundle,org.eclipse.jdt.core.manipulation,1.4.0.v20110505-0800,"org.eclipse.jdt.core.manipulation",1330783495958
+started,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330783496036
+started,bundle,org.eclipse.jdt.launching,3.6.0.v20110509,"org.eclipse.jdt.launching",1330783496098
+started,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330783496098
+started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1330783496535
+started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1330783496582
+started,bundle,org.eclipse.ltk.core.refactoring,3.5.200.v20110505-0800,"org.eclipse.ltk.core.refactoring",1330783496660
+started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330783496831
+started,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330783496925
+started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.core",1330783496941
+started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330783496941
+started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1330783496941
+started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1330783496941
+started,bundle,org.eclipse.mylyn.context.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.core",1330783496941
+started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330783496987
+started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1330783497019
+started,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330783497128
+started,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330783497206
+started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330783497284
+started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1330783497331
+started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1330783497377
+started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330783497487
+started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330783497596
+started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1330783497721
+started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330783497721
+started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330783497721
+started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1330783497783
+started,bundle,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.ide",1330783497877
+started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1330783497923
+started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1330783497923
+started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1330783497970
+started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1330783498017
+started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1330783498048
+started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1330783498142
+started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1330783498173
+started,bundle,org.eclipse.wb.discovery.core,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.core",1330783498173
+started,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330783498189
+started,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330783498204
+started,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330783498204
+started,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330783498235
+started,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330783498251
+started,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330783498267
+started,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330783498298
+started,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330783498298
+started,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330783498298
+started,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330783498298
+started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330783498360
+started,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330783498469
+started,bundle,org.eclipse.wb.core.lib,1.2.0.r37x201112290923,"org.eclipse.wb.core.lib",1330783498532
+os,sysinfo,,,"win32",1330783498532
+arch,sysinfo,,,"x86",1330783498532
+ws,sysinfo,,,"win32",1330783498532
+locale,sysinfo,,,"ja_JP",1330783498532
+processors,sysinfo,,,"2",1330783498532
+java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1330783498532
+java.runtime.version,sysinfo,,,"1.6.0_26-b03",1330783498532
+java.specification.name,sysinfo,,,"Java Platform API Specification",1330783498532
+java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330783498532
+java.specification.version,sysinfo,,,"1.6",1330783498532
+java.vendor,sysinfo,,,"Sun Microsystems Inc.",1330783498532
diff --git a/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv b/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload12.csv
new file mode 100644 (file)
index 0000000..d10cf3d
--- /dev/null
@@ -0,0 +1,258 @@
+what,kind,bundleId,bundleVersion,description,time
+java.version,sysinfo,,,"1.6.0_26",1330783498532
+java.vm.info,sysinfo,,,"mixed mode",1330783498532
+java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1330783498532
+java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1330783498532
+java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330783498532
+java.vm.specification.version,sysinfo,,,"1.0",1330783498532
+java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1330783498532
+java.vm.version,sysinfo,,,"20.1-b02",1330783498532
+started,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330783498735
+started,bundle,org.eclipse.wb.discovery.ui,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.ui",1330783498735
+started,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330783499656
+started,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330783499891
+opened,view,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.views.ProblemView",1330783500125
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330783500219
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330783503619
+closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330783503994
+started,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330783505164
+stopped,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330783507956
+stopped,bundle,org.eclipse.ui.cheatsheets,3.4.100.v20110425,"org.eclipse.ui.cheatsheets",1330783507956
+stopped,bundle,org.eclipse.help.ui,3.5.100.v20110425,"org.eclipse.help.ui",1330783507956
+stopped,bundle,org.eclipse.help.webapp,3.6.0.v20110518,"org.eclipse.help.webapp",1330783507956
+stopped,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330783507956
+stopped,bundle,org.eclipse.epp.usagedata.ui,1.3.1.R201106061540,"org.eclipse.epp.usagedata.ui",1330783507972
+stopped,bundle,org.eclipse.ui.intro.universal,3.2.500.v20110510,"org.eclipse.ui.intro.universal",1330783507972
+stopped,bundle,org.eclipse.ui.intro,3.4.100.v20110425,"org.eclipse.ui.intro",1330783507972
+stopped,bundle,org.eclipse.help.base,3.6.0.v201106131736,"org.eclipse.help.base",1330783507972
+stopped,bundle,org.eclipse.equinox.http.jetty,2.0.100.v20110502,"org.eclipse.equinox.http.jetty",1330783507972
+stopped,bundle,com.google.appengine.eclipse.datatools,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.datatools",1330783507972
+stopped,bundle,com.google.appengine.eclipse.sdkbundle,1.6.3.v201202290255r37,"com.google.appengine.eclipse.sdkbundle",1330783507972
+stopped,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330783507972
+stopped,bundle,com.google.gdt.eclipse.gph.e36,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.e36",1330783508128
+stopped,bundle,com.google.gdt.eclipse.gph.hge,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.hge",1330783508268
+stopped,bundle,com.google.gdt.eclipse.gph.subclipse,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subclipse",1330783508346
+stopped,bundle,com.google.gdt.eclipse.gph.subversive,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subversive",1330783508518
+started,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330783513059
+stopped,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330783513075
+stopped,bundle,com.google.gdt.eclipse.gph,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph",1330783513075
+stopped,bundle,com.google.gdt.eclipse.maven.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven.e37",1330783513075
+stopped,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330783513075
+stopped,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330783513075
+stopped,bundle,com.google.gdt.eclipse.appsmarketplace,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appsmarketplace",1330783513075
+stopped,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330783513075
+stopped,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330783513075
+stopped,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330783513075
+stopped,bundle,com.google.gwt.eclipse.oophm,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.oophm",1330783513075
+stopped,bundle,com.google.gwt.eclipse.sdkbundle,2.4.0.v201202290255-rel-r37,"com.google.gwt.eclipse.sdkbundle",1330783513075
+error,log,,,"An internal error occurred during: ""Updating GPE launch configurations"".",1330783513293
+error,log,,,"An internal error occurred during: ""Updating GPE launch configurations"".",1330783513309
+stopped,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330783513293
+stopped,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330783513309
+error,log,,,"An internal error occurred during: ""Updating GPE launch configurations"".",1330783513309
+error,log,,,"An internal error occurred during: ""Updating GPE launch configurations"".",1330783513309
+stopped,bundle,com.google.gdt.eclipse.platform,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform",1330783513309
+stopped,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330783513309
+stopped,bundle,com.google.gdt.eclipse.platform.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.e37",1330783513309
+stopped,bundle,org.eclipse.m2e.discovery,1.0.200.20111228-1245,"org.eclipse.m2e.discovery",1330783513309
+stopped,bundle,org.eclipse.m2e.refactoring,1.0.200.20111228-1245,"org.eclipse.m2e.refactoring",1330783513309
+stopped,bundle,org.eclipse.m2e.editor,1.0.200.20111228-1245,"org.eclipse.m2e.editor",1330783513309
+stopped,bundle,org.eclipse.m2e.editor.xml,1.0.200.20111228-1245,"org.eclipse.m2e.editor.xml",1330783513309
+stopped,bundle,org.eclipse.m2e.jdt,1.0.200.20111228-1245,"org.eclipse.m2e.jdt",1330783513309
+stopped,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1330783513309
+stopped,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330783513309
+stopped,bundle,org.eclipse.m2e.core.ui,1.0.200.20111228-1245,"org.eclipse.m2e.core.ui",1330783513309
+stopped,bundle,org.eclipse.m2e.core,1.0.200.20111228-1245,"org.eclipse.m2e.core",1330783513309
+stopped,bundle,org.eclipse.mylyn.ide.ant,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ant",1330783513309
+stopped,bundle,org.eclipse.ant.ui,3.5.100.v20110510,"org.eclipse.ant.ui",1330783513309
+stopped,bundle,org.eclipse.ant.launching,1.0.100.v20110506,"org.eclipse.ant.launching",1330783513309
+stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1330783513309
+stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1330783513325
+stopped,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330783513325
+stopped,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330783513325
+stopped,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330783513325
+stopped,bundle,com.google.gdt.eclipse.designer.gpe,2.5.0.r37x201201030222,"com.google.gdt.eclipse.designer.gpe",1330783513325
+stopped,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330783513325
+stopped,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330783513325
+stopped,bundle,org.eclipse.jdt.apt.ui,3.3.300.v20110305-1450,"org.eclipse.jdt.apt.ui",1330783513340
+stopped,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330783513340
+stopped,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330783513340
+stopped,bundle,org.eclipse.wb.swing.FormLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.FormLayout",1330783513340
+stopped,bundle,org.eclipse.wb.swing.MigLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.MigLayout",1330783513340
+stopped,bundle,org.eclipse.wb.swing.databinding,1.0.0.r37x201106081552,"org.eclipse.wb.swing.databinding",1330783513340
+stopped,bundle,org.eclipse.wb.swing.java6,1.0.0.r37x201106081552,"org.eclipse.wb.swing.java6",1330783513340
+stopped,bundle,org.eclipse.wb.swing.jsr296,1.0.0.r37x201106081552,"org.eclipse.wb.swing.jsr296",1330783513340
+stopped,bundle,org.eclipse.wb.swing,1.0.0.r37x201106081552,"org.eclipse.wb.swing",1330783513340
+stopped,bundle,org.eclipse.wb.core.ui,1.0.0.r37x201106081733,"org.eclipse.wb.core.ui",1330783513340
+stopped,bundle,org.eclipse.wb.layout.group,1.0.0.r37x201106081642,"org.eclipse.wb.layout.group",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.ie",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.webkit",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.ie",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.webkit",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2",1330783513340
+stopped,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330783513340
+stopped,bundle,org.eclipse.wb.core.databinding.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.databinding.xml",1330783513340
+stopped,bundle,org.eclipse.wb.core.databinding,1.2.0.r37x201112290923,"org.eclipse.wb.core.databinding",1330783513340
+stopped,bundle,org.eclipse.wb.core.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.xml",1330783513340
+stopped,bundle,org.eclipse.wb.css,1.2.0.r37x201112290951,"org.eclipse.wb.css",1330783513340
+stopped,bundle,org.eclipse.wb.os.win32,1.2.0.r37x201112290923,"org.eclipse.wb.os.win32",1330783513340
+stopped,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330783513340
+stopped,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330783513496
+stopped,bundle,org.eclipse.wst.dtd.ui,1.0.600.v201103171359,"org.eclipse.wst.dtd.ui",1330783513496
+stopped,bundle,org.eclipse.wst.xsd.ui,1.2.404.v201105050216,"org.eclipse.wst.xsd.ui",1330783513496
+stopped,bundle,org.eclipse.wst.css.ui,1.0.601.v201201101544,"org.eclipse.wst.css.ui",1330783513496
+stopped,bundle,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui",1330783513496
+stopped,bundle,org.eclipse.wst.common.ui,1.1.500.v200911190730,"org.eclipse.wst.common.ui",1330783513496
+stopped,bundle,org.eclipse.wst.jsdt.ui,1.1.102.v201201131900,"org.eclipse.wst.jsdt.ui",1330783513496
+stopped,bundle,org.eclipse.wst.sse.ui,1.3.2.v201201041522,"org.eclipse.wst.sse.ui",1330783513496
+activated,perspective,org.eclipse.jdt.ui,,"org.eclipse.jdt.ui.JavaPerspective",1330785713522
+started,bundle,org.eclipse.osgi,3.7.0.v20110613,"org.eclipse.osgi",1330785713525
+started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1330785713553
+started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1330785713583
+started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1330785713623
+started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1330785713809
+started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1330785713857
+started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1330785713858
+started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1330785713860
+started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1330785713901
+started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1330785713935
+started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1330785713952
+started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1330785714041
+started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1330785714129
+started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1330785714131
+started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1330785714133
+started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1330785714157
+started,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330785714208
+started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1330785714209
+started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1330785714721
+started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1330785715227
+started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1330785715228
+started,bundle,org.eclipse.equinox.ds,1.3.0.v20110502,"org.eclipse.equinox.ds",1330785715230
+started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1330785715257
+started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1330785715359
+started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1330785715419
+started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1330785715421
+started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1330785715459
+started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1330785715486
+started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1330785715487
+started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1330785715514
+started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1330785715549
+started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1330785715551
+started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1330785715594
+started,bundle,org.eclipse.equinox.preferences,3.4.0.v20110502,"org.eclipse.equinox.preferences",1330785715636
+started,bundle,org.eclipse.equinox.registry,3.5.100.v20110502,"org.eclipse.equinox.registry",1330785715638
+started,bundle,org.eclipse.equinox.security,1.1.0.v20110502,"org.eclipse.equinox.security",1330785715677
+started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1330785715720
+started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1330785715811
+started,bundle,org.eclipse.jdt.core,3.7.0.v_B61,"org.eclipse.jdt.core",1330785715884
+started,bundle,org.eclipse.jdt.core.manipulation,1.4.0.v20110505-0800,"org.eclipse.jdt.core.manipulation",1330785715923
+started,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330785715926
+started,bundle,org.eclipse.jdt.launching,3.6.0.v20110509,"org.eclipse.jdt.launching",1330785716028
+started,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330785716028
+started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1330785716349
+started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1330785716390
+started,bundle,org.eclipse.ltk.core.refactoring,3.5.200.v20110505-0800,"org.eclipse.ltk.core.refactoring",1330785716433
+started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330785716554
+started,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330785716589
+started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.core",1330785716591
+started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330785716593
+started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1330785716595
+started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1330785716595
+started,bundle,org.eclipse.mylyn.context.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.core",1330785716597
+started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330785716599
+started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1330785716642
+started,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330785716645
+started,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330785716646
+started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330785716730
+started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1330785716781
+started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1330785716808
+started,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330785716948
+started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330785716951
+started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1330785717164
+started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330785717165
+started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330785717165
+started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1330785717168
+started,bundle,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.ide",1330785717171
+started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1330785717194
+started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1330785717196
+started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1330785717225
+started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1330785717307
+started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1330785717308
+started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1330785717402
+started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1330785717460
+started,bundle,org.eclipse.wb.discovery.core,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.core",1330785717461
+started,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330785717462
+started,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330785717524
+started,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330785717526
+started,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330785717554
+started,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330785717570
+started,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330785717576
+started,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330785717608
+started,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330785717609
+started,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330785717610
+started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330785717613
+started,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330785717694
+started,bundle,org.eclipse.wb.core.lib,1.2.0.r37x201112290923,"org.eclipse.wb.core.lib",1330785718059
+os,sysinfo,,,"win32",1330785718211
+arch,sysinfo,,,"x86",1330785718211
+ws,sysinfo,,,"win32",1330785718211
+locale,sysinfo,,,"ja_JP",1330785718211
+processors,sysinfo,,,"2",1330785718211
+java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1330785718211
+java.runtime.version,sysinfo,,,"1.6.0_26-b03",1330785718211
+java.specification.name,sysinfo,,,"Java Platform API Specification",1330785718211
+java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330785718211
+java.specification.version,sysinfo,,,"1.6",1330785718211
+java.vendor,sysinfo,,,"Sun Microsystems Inc.",1330785718211
+java.version,sysinfo,,,"1.6.0_26",1330785718211
+java.vm.info,sysinfo,,,"mixed mode",1330785718211
+java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1330785718211
+java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1330785718211
+java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330785718211
+java.vm.specification.version,sysinfo,,,"1.0",1330785718211
+java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1330785718211
+java.vm.version,sysinfo,,,"20.1-b02",1330785718211
+started,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330785718329
+started,bundle,org.eclipse.wb.discovery.ui,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.ui",1330785718522
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330785719449
+started,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330785719613
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330785719836
+started,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330785719994
+started,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330785720593
+opened,view,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.views.ProblemView",1330785720594
+started,bundle,org.eclipse.jdt.apt.core,3.3.500.v20110420-1015,"org.eclipse.jdt.apt.core",1330785720995
+started,bundle,org.eclipse.jdt.apt.pluggable.core,1.0.400.v20110305-1450,"org.eclipse.jdt.apt.pluggable.core",1330785721028
+started,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330785729698
+started,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330785729873
+started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1330785730109
+started,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330785739798
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330785740655
+started,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1330785744753
+started,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330785744827
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330785757699
+started,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1330785761085
+started,bundle,org.eclipse.jdt.debug,3.7.0.v20110509,"org.eclipse.jdt.debug",1330785761426
+started,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330785761958
+started,bundle,org.eclipse.wst.sse.core,1.1.602.v201112071516,"org.eclipse.wst.sse.core",1330785767229
+started,bundle,org.eclipse.wst.xml.core,1.1.602.v201201091944,"org.eclipse.wst.xml.core",1330785767325
+started,bundle,org.eclipse.wst.common.uriresolver,1.1.401.v201004280700,"org.eclipse.wst.common.uriresolver",1330785767645
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785767823
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785769313
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330785772128
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785773495
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785773509
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785773602
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785780373
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785796884
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785808165
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330785808935
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330786030300
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330786052075
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330786262343
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330786265715
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330786293810
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330786298260
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330787038512
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330787039874
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330788049068
diff --git a/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv b/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload13.csv
new file mode 100644 (file)
index 0000000..19ae338
--- /dev/null
@@ -0,0 +1,247 @@
+what,kind,bundleId,bundleVersion,description,time
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330788060286
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330788068282
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330788068650
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330788114088
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330788128333
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330788139416
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330788188317
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330788204469
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330789806403
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330789815053
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330789817779
+closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330789823558
+started,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330789829665
+stopped,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330789841196
+stopped,bundle,org.eclipse.ui.cheatsheets,3.4.100.v20110425,"org.eclipse.ui.cheatsheets",1330789841214
+stopped,bundle,org.eclipse.help.ui,3.5.100.v20110425,"org.eclipse.help.ui",1330789841214
+stopped,bundle,org.eclipse.help.webapp,3.6.0.v20110518,"org.eclipse.help.webapp",1330789841215
+stopped,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330789841215
+stopped,bundle,org.eclipse.epp.usagedata.ui,1.3.1.R201106061540,"org.eclipse.epp.usagedata.ui",1330789841215
+stopped,bundle,org.eclipse.ui.intro.universal,3.2.500.v20110510,"org.eclipse.ui.intro.universal",1330789841215
+stopped,bundle,org.eclipse.ui.intro,3.4.100.v20110425,"org.eclipse.ui.intro",1330789841215
+stopped,bundle,org.eclipse.help.base,3.6.0.v201106131736,"org.eclipse.help.base",1330789841216
+stopped,bundle,org.eclipse.equinox.http.jetty,2.0.100.v20110502,"org.eclipse.equinox.http.jetty",1330789841216
+stopped,bundle,com.google.appengine.eclipse.datatools,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.datatools",1330789841216
+stopped,bundle,com.google.appengine.eclipse.sdkbundle,1.6.3.v201202290255r37,"com.google.appengine.eclipse.sdkbundle",1330789841216
+stopped,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330789841216
+stopped,bundle,com.google.gdt.eclipse.gph.e36,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.e36",1330789841217
+stopped,bundle,com.google.gdt.eclipse.gph.hge,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.hge",1330789841217
+stopped,bundle,com.google.gdt.eclipse.gph.subclipse,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subclipse",1330789841218
+stopped,bundle,com.google.gdt.eclipse.gph.subversive,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subversive",1330789841218
+stopped,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330789841241
+stopped,bundle,com.google.gdt.eclipse.gph,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph",1330789841244
+stopped,bundle,com.google.gdt.eclipse.maven.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven.e37",1330789841244
+stopped,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330789841244
+stopped,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330789841244
+stopped,bundle,com.google.gdt.eclipse.appsmarketplace,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appsmarketplace",1330789841244
+stopped,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330789841244
+stopped,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330789841244
+stopped,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330789841344
+stopped,bundle,com.google.gwt.eclipse.oophm,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.oophm",1330789841344
+stopped,bundle,com.google.gwt.eclipse.sdkbundle,2.4.0.v201202290255-rel-r37,"com.google.gwt.eclipse.sdkbundle",1330789841344
+stopped,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330789841653
+stopped,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330789841654
+stopped,bundle,com.google.gdt.eclipse.platform,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform",1330789841654
+stopped,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330789841654
+stopped,bundle,com.google.gdt.eclipse.platform.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.e37",1330789841654
+stopped,bundle,org.eclipse.m2e.discovery,1.0.200.20111228-1245,"org.eclipse.m2e.discovery",1330789841655
+stopped,bundle,org.eclipse.m2e.refactoring,1.0.200.20111228-1245,"org.eclipse.m2e.refactoring",1330789841655
+stopped,bundle,org.eclipse.m2e.editor,1.0.200.20111228-1245,"org.eclipse.m2e.editor",1330789841655
+stopped,bundle,org.eclipse.m2e.editor.xml,1.0.200.20111228-1245,"org.eclipse.m2e.editor.xml",1330789841656
+stopped,bundle,org.eclipse.m2e.jdt,1.0.200.20111228-1245,"org.eclipse.m2e.jdt",1330789841656
+stopped,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1330789841656
+stopped,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330789841657
+stopped,bundle,org.eclipse.m2e.core.ui,1.0.200.20111228-1245,"org.eclipse.m2e.core.ui",1330789841657
+stopped,bundle,org.eclipse.m2e.core,1.0.200.20111228-1245,"org.eclipse.m2e.core",1330789841657
+stopped,bundle,org.eclipse.mylyn.ide.ant,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ant",1330789841657
+stopped,bundle,org.eclipse.ant.ui,3.5.100.v20110510,"org.eclipse.ant.ui",1330789841660
+stopped,bundle,org.eclipse.ant.launching,1.0.100.v20110506,"org.eclipse.ant.launching",1330789841660
+stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1330789841660
+stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1330789841661
+stopped,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330789841661
+stopped,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330789841661
+stopped,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330789841662
+stopped,bundle,com.google.gdt.eclipse.designer.gpe,2.5.0.r37x201201030222,"com.google.gdt.eclipse.designer.gpe",1330789841662
+stopped,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330789841662
+stopped,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330789841662
+stopped,bundle,org.eclipse.jdt.apt.ui,3.3.300.v20110305-1450,"org.eclipse.jdt.apt.ui",1330789841662
+stopped,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330789842348
+stopped,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330789842348
+stopped,bundle,org.eclipse.wb.swing.FormLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.FormLayout",1330789842348
+stopped,bundle,org.eclipse.wb.swing.MigLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.MigLayout",1330789842349
+stopped,bundle,org.eclipse.wb.swing.databinding,1.0.0.r37x201106081552,"org.eclipse.wb.swing.databinding",1330789842349
+stopped,bundle,org.eclipse.wb.swing.java6,1.0.0.r37x201106081552,"org.eclipse.wb.swing.java6",1330789842350
+stopped,bundle,org.eclipse.wb.swing.jsr296,1.0.0.r37x201106081552,"org.eclipse.wb.swing.jsr296",1330789842351
+stopped,bundle,org.eclipse.wb.swing,1.0.0.r37x201106081552,"org.eclipse.wb.swing",1330789842351
+stopped,bundle,org.eclipse.wb.core.ui,1.0.0.r37x201106081733,"org.eclipse.wb.core.ui",1330789842351
+stopped,bundle,org.eclipse.wb.layout.group,1.0.0.r37x201106081642,"org.eclipse.wb.layout.group",1330789842355
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.ie",1330789842357
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.webkit",1330789842358
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0",1330789842358
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.ie",1330789842359
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.webkit",1330789842359
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2",1330789842359
+stopped,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330789842359
+stopped,bundle,org.eclipse.wb.core.databinding.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.databinding.xml",1330789842360
+stopped,bundle,org.eclipse.wb.core.databinding,1.2.0.r37x201112290923,"org.eclipse.wb.core.databinding",1330789842360
+stopped,bundle,org.eclipse.wb.core.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.xml",1330789842360
+stopped,bundle,org.eclipse.wb.css,1.2.0.r37x201112290951,"org.eclipse.wb.css",1330789842360
+stopped,bundle,org.eclipse.wb.os.win32,1.2.0.r37x201112290923,"org.eclipse.wb.os.win32",1330789842360
+stopped,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330789842361
+stopped,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330789843603
+stopped,bundle,org.eclipse.wst.dtd.ui,1.0.600.v201103171359,"org.eclipse.wst.dtd.ui",1330789843603
+stopped,bundle,org.eclipse.wst.xsd.ui,1.2.404.v201105050216,"org.eclipse.wst.xsd.ui",1330789843603
+stopped,bundle,org.eclipse.wst.css.ui,1.0.601.v201201101544,"org.eclipse.wst.css.ui",1330789843603
+stopped,bundle,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui",1330789843604
+stopped,bundle,org.eclipse.wst.common.ui,1.1.500.v200911190730,"org.eclipse.wst.common.ui",1330789843604
+stopped,bundle,org.eclipse.wst.jsdt.ui,1.1.102.v201201131900,"org.eclipse.wst.jsdt.ui",1330789843604
+stopped,bundle,org.eclipse.wst.sse.ui,1.3.2.v201201041522,"org.eclipse.wst.sse.ui",1330789843604
+stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330789843972
+stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1330789843972
+stopped,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330789843972
+stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1330789843973
+stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330789843973
+stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330789843973
+stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1330789843974
+stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1330789843974
+stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1330789843974
+stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330789843974
+stopped,bundle,org.eclipse.mylyn.help.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.help.ui",1330789843975
+stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.bugs",1330789843976
+stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330789843976
+stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330789843977
+stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330789843977
+stopped,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330789843978
+stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1330789843981
+stopped,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1330789844309
+stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1330789844309
+stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330789844310
+stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330789844311
+stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330789844311
+stopped,bundle,org.eclipse.wst.common.snippets,1.2.100.v201103281740,"org.eclipse.wst.common.snippets",1330789844311
+activated,perspective,org.eclipse.jdt.ui,,"org.eclipse.jdt.ui.JavaPerspective",1330817846100
+started,bundle,org.eclipse.osgi,3.7.0.v20110613,"org.eclipse.osgi",1330817846103
+started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.200.v20110502-1955,"org.eclipse.equinox.simpleconfigurator",1330817846104
+started,bundle,com.ibm.icu,4.4.2.v20110208,"com.ibm.icu",1330817846145
+started,bundle,org.eclipse.compare.core,3.5.200.I20110208-0800,"org.eclipse.compare.core",1330817846260
+started,bundle,org.eclipse.core.contenttype,3.4.100.v20110423-0524,"org.eclipse.core.contenttype",1330817846313
+started,bundle,org.eclipse.core.databinding.observable,1.4.0.I20110222-0800,"org.eclipse.core.databinding.observable",1330817846386
+started,bundle,org.eclipse.core.expressions,3.4.300.v20110228,"org.eclipse.core.expressions",1330817846387
+started,bundle,org.eclipse.core.filebuffers,3.5.200.v20110505-0800,"org.eclipse.core.filebuffers",1330817846389
+started,bundle,org.eclipse.core.filesystem,1.3.100.v20110423-0524,"org.eclipse.core.filesystem",1330817846488
+started,bundle,org.eclipse.core.jobs,3.5.100.v20110404,"org.eclipse.core.jobs",1330817846490
+started,bundle,org.eclipse.core.net,1.2.100.I20110511-0800,"org.eclipse.core.net",1330817846532
+started,bundle,org.eclipse.core.resources,3.7.100.v20110510-0712,"org.eclipse.core.resources",1330817846579
+started,bundle,org.eclipse.core.runtime,3.7.0.v20110110,"org.eclipse.core.runtime",1330817846580
+started,bundle,org.eclipse.core.runtime.compatibility,3.2.100.v20100505,"org.eclipse.core.runtime.compatibility",1330817846615
+started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.200.v20110110,"org.eclipse.core.runtime.compatibility.auth",1330817846647
+started,bundle,org.eclipse.debug.core,3.7.0.v20110518,"org.eclipse.debug.core",1330817846802
+started,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330817846820
+started,bundle,org.eclipse.epp.usagedata.gathering,1.3.1.R201106061540,"org.eclipse.epp.usagedata.gathering",1330817846821
+started,bundle,org.eclipse.epp.usagedata.recording,1.3.1.R201106061540,"org.eclipse.epp.usagedata.recording",1330817846881
+started,bundle,org.eclipse.equinox.app,1.3.100.v20110321,"org.eclipse.equinox.app",1330817846882
+started,bundle,org.eclipse.equinox.common,3.6.0.v20110523,"org.eclipse.equinox.common",1330817846883
+started,bundle,org.eclipse.equinox.ds,1.3.0.v20110502,"org.eclipse.equinox.ds",1330817846885
+started,bundle,org.eclipse.equinox.event,1.2.100.v20110502,"org.eclipse.equinox.event",1330817846920
+started,bundle,org.eclipse.equinox.p2.core,2.1.0.v20110502-1955,"org.eclipse.equinox.p2.core",1330817846962
+started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.300.v20110502-1955,"org.eclipse.equinox.p2.directorywatcher",1330817847099
+started,bundle,org.eclipse.equinox.p2.engine,2.1.0.v20110511,"org.eclipse.equinox.p2.engine",1330817847180
+started,bundle,org.eclipse.equinox.p2.metadata,2.1.0.v20110510,"org.eclipse.equinox.p2.metadata",1330817847297
+started,bundle,org.eclipse.equinox.p2.metadata.repository,1.2.0.v20110511-1359,"org.eclipse.equinox.p2.metadata.repository",1330817847316
+started,bundle,org.eclipse.equinox.p2.operations,2.1.0.v20110511-1821,"org.eclipse.equinox.p2.operations",1330817847319
+started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.1.100.v20110510,"org.eclipse.equinox.p2.reconciler.dropins",1330817847369
+started,bundle,org.eclipse.equinox.p2.repository,2.1.0.v20110601,"org.eclipse.equinox.p2.repository",1330817847562
+started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.100.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk.scheduler",1330817847564
+started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.200.v20110502-1955,"org.eclipse.equinox.p2.updatechecker",1330817847607
+started,bundle,org.eclipse.equinox.preferences,3.4.0.v20110502,"org.eclipse.equinox.preferences",1330817847641
+started,bundle,org.eclipse.equinox.registry,3.5.100.v20110502,"org.eclipse.equinox.registry",1330817847643
+started,bundle,org.eclipse.equinox.security,1.1.0.v20110502,"org.eclipse.equinox.security",1330817847755
+started,bundle,org.eclipse.equinox.util,1.0.300.v20110502,"org.eclipse.equinox.util",1330817847775
+started,bundle,org.eclipse.help,3.5.100.v20110426,"org.eclipse.help",1330817847815
+started,bundle,org.eclipse.jdt.core,3.7.0.v_B61,"org.eclipse.jdt.core",1330817847887
+started,bundle,org.eclipse.jdt.core.manipulation,1.4.0.v20110505-0800,"org.eclipse.jdt.core.manipulation",1330817848011
+started,bundle,org.eclipse.jdt.launching,3.6.0.v20110509,"org.eclipse.jdt.launching",1330817848260
+started,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330817848260
+started,bundle,org.eclipse.jface,3.7.0.I20110522-1430,"org.eclipse.jface",1330817848487
+started,bundle,org.eclipse.jsch.core,1.1.300.I20110514-0800,"org.eclipse.jsch.core",1330817849058
+started,bundle,org.eclipse.ltk.core.refactoring,3.5.200.v20110505-0800,"org.eclipse.ltk.core.refactoring",1330817849104
+started,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330817849309
+started,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330817849360
+started,bundle,org.eclipse.mylyn.bugzilla.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.core",1330817849362
+started,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330817849364
+started,bundle,org.eclipse.mylyn.commons.identity,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.identity",1330817849366
+started,bundle,org.eclipse.mylyn.commons.net,3.6.0.v20110608-1400,"org.eclipse.mylyn.commons.net",1330817849366
+started,bundle,org.eclipse.mylyn.context.core,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.core",1330817849368
+started,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330817849371
+started,bundle,org.eclipse.mylyn.monitor.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.monitor.ui",1330817849372
+started,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330817849472
+started,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330817849539
+started,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330817849651
+started,bundle,org.eclipse.team.core,3.6.0.I20110525-0800,"org.eclipse.team.core",1330817849653
+started,bundle,org.eclipse.team.cvs.core,3.3.400.I20110510-0800,"org.eclipse.team.cvs.core",1330817849785
+started,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330817849946
+started,bundle,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui",1330817849987
+started,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330817849989
+started,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330817849989
+started,bundle,org.eclipse.ui.forms,3.5.100.v20110425,"org.eclipse.ui.forms",1330817850037
+started,bundle,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.ide",1330817850150
+started,bundle,org.eclipse.ui.net,1.2.100.I20110511-0800,"org.eclipse.ui.net",1330817850250
+started,bundle,org.eclipse.ui.views,3.6.0.I20110412-0800,"org.eclipse.ui.views",1330817850252
+started,bundle,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"org.eclipse.ui.workbench",1330817850372
+started,bundle,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.workbench.texteditor",1330817850500
+started,bundle,org.eclipse.update.configurator,3.3.100.v20100512,"org.eclipse.update.configurator",1330817850561
+started,bundle,org.eclipse.update.core,3.2.500.v20110330,"org.eclipse.update.core",1330817850873
+started,bundle,org.eclipse.update.scheduler,3.2.300.v20100512,"org.eclipse.update.scheduler",1330817850957
+started,bundle,org.eclipse.wb.discovery.core,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.core",1330817850959
+started,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330817850961
+started,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330817851054
+started,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330817851056
+started,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330817851058
+started,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330817851065
+started,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330817851066
+started,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330817851097
+started,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330817851225
+started,bundle,org.eclipse.wb.core.lib,1.2.0.r37x201112290923,"org.eclipse.wb.core.lib",1330817851550
+os,sysinfo,,,"win32",1330817851559
+arch,sysinfo,,,"x86",1330817851559
+ws,sysinfo,,,"win32",1330817851559
+locale,sysinfo,,,"ja_JP",1330817851559
+processors,sysinfo,,,"2",1330817851559
+java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1330817851559
+java.runtime.version,sysinfo,,,"1.6.0_26-b03",1330817851559
+java.specification.name,sysinfo,,,"Java Platform API Specification",1330817851559
+java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330817851559
+java.specification.version,sysinfo,,,"1.6",1330817851559
+java.vendor,sysinfo,,,"Sun Microsystems Inc.",1330817851559
+java.version,sysinfo,,,"1.6.0_26",1330817851559
+java.vm.info,sysinfo,,,"mixed mode",1330817851559
+java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1330817851559
+java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1330817851559
+java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1330817851559
+java.vm.specification.version,sysinfo,,,"1.0",1330817851559
+java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1330817851559
+java.vm.version,sysinfo,,,"20.1-b02",1330817851559
+started,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330817851761
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330817851774
+started,bundle,org.eclipse.wb.discovery.ui,1.0.0.r37x201106081733,"org.eclipse.wb.discovery.ui",1330817852309
+opened,view,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.ui.views.ProblemView",1330817853500
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330817864514
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817867663
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817868094
+error,log,,,"Invalid preference page path: CSS Files",1330817875761
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330817876151
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330817903994
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.window.preferences",1330817904036
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330817906849
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330817910256
+started,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330817912870
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817932872
+started,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330817958051
+started,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330817958111
+started,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330817958294
+started,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330817958314
+started,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330817958902
+started,bundle,org.eclipse.jdt.apt.core,3.3.500.v20110420-1015,"org.eclipse.jdt.apt.core",1330817959013
+started,bundle,org.eclipse.jdt.apt.pluggable.core,1.0.400.v20110305-1450,"org.eclipse.jdt.apt.pluggable.core",1330817959036
+started,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330817968994
diff --git a/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv b/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload14.csv
new file mode 100644 (file)
index 0000000..23a4956
--- /dev/null
@@ -0,0 +1,276 @@
+what,kind,bundleId,bundleVersion,description,time
+started,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330817969134
+started,bundle,org.eclipse.core.variables,3.2.500.v20110511,"org.eclipse.core.variables",1330817969242
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817983534
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817983844
+started,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330817983996
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817987420
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330817994308
+started,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330818032282
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818032672
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330818047121
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818061787
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818088618
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818091708
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818093990
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818097697
+started,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1330818100374
+started,bundle,org.eclipse.jdt.debug,3.7.0.v20110509,"org.eclipse.jdt.debug",1330818102243
+started,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330818102809
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330818103014
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330818103249
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330818104731
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818110586
+started,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330818241348
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818254043
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818255401
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818255413
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818259853
+started,bundle,org.eclipse.wst.jsdt.manipulation,1.0.300.v201104272153,"org.eclipse.wst.jsdt.manipulation",1330818269794
+started,bundle,org.eclipse.wst.jsdt.core,1.1.102.v201111090634,"org.eclipse.wst.jsdt.core",1330818271400
+started,bundle,org.eclipse.wst.jsdt.ui,1.1.102.v201201131900,"org.eclipse.wst.jsdt.ui",1330818271649
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818276477
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330818291234
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818294055
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818305392
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818306560
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1330818306613
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818307449
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818324212
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330818339728
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330818340385
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330818342655
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818346730
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818366376
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818384383
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.rename.element",1330818408783
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818441961
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818443208
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818447261
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818477775
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330818487077
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330818488342
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818489401
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818500404
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818513830
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818562041
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818566104
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818576542
+started,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1330818588593
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818600119
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818609527
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818610759
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818625136
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818629356
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818648729
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818652050
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818664905
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330818669913
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818672606
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818679791
+opened,view,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.DebugView",1330818680562
+started,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1330818684794
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330818694232
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Resume",1330818695712
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818697244
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818723673
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818761577
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818764338
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330818784620
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330818787583
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818791019
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818799107
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818799131
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818799181
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818813035
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818825748
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818848872
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818861362
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818917221
+activated,view,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.DebugView",1330818924176
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Terminate",1330818924248
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330818925946
+started,bundle,org.eclipse.wst.sse.core,1.1.602.v201112071516,"org.eclipse.wst.sse.core",1330818928863
+started,bundle,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui",1330818932568
+started,bundle,org.eclipse.wst.sse.ui,1.3.2.v201201041522,"org.eclipse.wst.sse.ui",1330818932667
+started,bundle,org.eclipse.wst.xml.core,1.1.602.v201201091944,"org.eclipse.wst.xml.core",1330818933069
+started,bundle,org.eclipse.wst.common.uriresolver,1.1.401.v201004280700,"org.eclipse.wst.common.uriresolver",1330818933815
+started,bundle,org.eclipse.m2e.editor.xml,1.0.200.20111228-1245,"org.eclipse.m2e.editor.xml",1330818934174
+started,bundle,org.eclipse.wst.validation,1.2.303.v201202090300,"org.eclipse.wst.validation",1330818935438
+started,bundle,org.eclipse.wst.common.project.facet.core,1.4.201.v201201101553,"org.eclipse.wst.common.project.facet.core",1330818935473
+error,log,,,"Project facet wst.web has not been defined. It is used in plugin org.eclipse.jst.common.project.facet.core.",1330818935638
+started,bundle,org.eclipse.jst.common.project.facet.core,1.4.200.v201103170302,"org.eclipse.jst.common.project.facet.core",1330818935688
+started,bundle,org.eclipse.wst.dtd.ui,1.0.600.v201103171359,"org.eclipse.wst.dtd.ui",1330818935962
+started,bundle,org.eclipse.emf.common,2.7.0.v20120127-1122,"org.eclipse.emf.common",1330818936091
+opened,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330818936391
+activated,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330818936906
+started,bundle,org.eclipse.wst.common.frameworks,1.2.102.v201201190400,"org.eclipse.wst.common.frameworks",1330818937992
+started,bundle,org.eclipse.wst.internet.cache,1.0.400.v201004280700,"org.eclipse.wst.internet.cache",1330818939677
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330818944540
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818950941
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818953758
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330818956008
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330818984650
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819098838
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819121736
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819652130
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330819653852
+opened,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330819654749
+activated,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330819654934
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819666146
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819669276
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330819671248
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PropertiesFileEditor",1330819672563
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PropertiesFileEditor",1330819672814
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819680252
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819683342
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819689390
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819748236
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330819757774
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330819769808
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330819785128
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330819790303
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330819793511
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819797783
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819808035
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.organize.imports",1330819808239
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PropertiesFileEditor",1330819810490
+activated,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330819812518
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330819825588
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330819827627
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330819831006
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330819857145
+started,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330819858485
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330819875422
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330819876415
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330819880355
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330819888762
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330819889790
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330819951416
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330819952626
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330819955709
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330819959938
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330819967717
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330819968464
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330819999317
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820006792
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820012147
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820013119
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820027187
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820028615
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820030718
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820033294
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820056760
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820065428
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820075406
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820084925
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820108816
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820109754
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820111300
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820112682
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820114000
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820114733
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820134265
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820160349
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820185434
+started,bundle,org.eclipse.wb.os,1.2.0.r37x201112290923,"org.eclipse.wb.os",1330820190445
+started,bundle,org.eclipse.wb.os.win32,1.2.0.r37x201112290923,"org.eclipse.wb.os.win32",1330820190700
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330820191219
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820195288
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820212469
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820239774
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820240246
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820241323
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820245809
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330820264932
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820274757
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330820290865
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820294892
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820301101
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330820335420
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820339676
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820345235
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330820369858
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820373041
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330820392298
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820392662
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820407108
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820415401
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820429039
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820482280
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330820484126
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330820484626
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330820486506
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820489732
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820521434
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820523002
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820528964
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820535491
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820540892
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820543487
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820549876
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820550510
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820552071
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820556538
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330820561894
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820563566
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820564457
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820565161
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820567743
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330820571405
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820572183
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.organize.imports",1330820573695
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820574423
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820575899
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330820577488
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330820578779
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820580612
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820596249
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820609316
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820612462
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820669838
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330820701998
+activated,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330820702474
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330820704209
+activated,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330820704460
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330820707258
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330820708129
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330820709818
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820712834
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820726122
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330820730877
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820737637
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820740201
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330820741169
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820770967
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820770980
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820771034
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820824902
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330820829964
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330820850043
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330821223045
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330821291360
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330822737847
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330822739182
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330823013348
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330823050629
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858339834
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330858354493
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858385658
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330858396179
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858412653
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330858429815
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330858434116
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330858507148
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330858508548
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858510708
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858513126
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330858515925
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858520477
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858523001
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330858524863
+error,log,,,"Problems occurred when invoking code from plug-in: ""org.eclipse.jdt.core"".",1330858525872
+error,log,,,"Exception occurred in reconcile participant",1330858525884
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330858527142
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858529217
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.findReplace",1330858529535
diff --git a/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv b/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload15.csv
new file mode 100644 (file)
index 0000000..b2751bf
--- /dev/null
@@ -0,0 +1,276 @@
+what,kind,bundleId,bundleVersion,description,time
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330858530057
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858541880
+executed,command,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals",1330858548088
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330858554628
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330858559916
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330858564220
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330858565079
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330858567076
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330858570921
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330858576553
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859084772
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330859087696
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859092367
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859096482
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859097117
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859097458
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859114992
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859130591
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859135139
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.create.getter.setter",1330859135991
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859139554
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859140742
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859146911
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859149513
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859150889
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859155132
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859157289
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859158895
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859162963
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859165284
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859167651
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859172735
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.organize.imports",1330859172865
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859176878
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859196193
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330859200892
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859205638
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859210895
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859212312
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859212596
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859236126
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859243480
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859245172
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859246106
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.organize.imports",1330859246190
+executed,command,org.eclipse.ui.workbench.texteditor,3.7.0.v20110505-0800,"org.eclipse.ui.edit.text.goto.lineStart",1330859264750
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859273197
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859350797
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859354616
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859406384
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859439271
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859464182
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859465261
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859469679
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859470599
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859480346
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859481420
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859483569
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859484653
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859494420
+executed,command,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals",1330859506114
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859510281
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859511296
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859511798
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330859537183
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859537617
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859539858
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859543350
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859570723
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859574740
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859589924
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859604377
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859654040
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859658862
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859662407
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859664210
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859666217
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859667403
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330859785367
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859788030
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859790436
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859791269
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859791878
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859807525
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859810642
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859817591
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859832969
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330859834360
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859834684
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859853675
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859857677
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859862894
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859869884
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859885394
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859898319
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859912419
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859923938
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859932881
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859935887
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330859939014
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859940584
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859941787
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330859946482
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.organize.imports",1330859949341
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859950785
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330859959915
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859964245
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859968310
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859970477
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330859976137
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330859995554
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330859997783
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330860035909
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860046843
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860055525
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860080553
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860084472
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330860088872
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860090102
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860112828
+activated,view,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.DebugView",1330860126040
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Resume",1330860126048
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330860126704
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330860375000
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860418815
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860423358
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330860429750
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860430722
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860434133
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860458258
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860458585
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.open.editor",1330860458701
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330860469334
+closed,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860469335
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860519100
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860519368
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.open.editor",1330860519445
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330860540731
+closed,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860540732
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330860570532
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860575285
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860577677
+executed,command,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals",1330860581192
+opened,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860596486
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860596825
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.open.editor",1330860596907
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330860605057
+closed,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.ClassFileEditor",1330860605057
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860608648
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860926469
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330860928319
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330860928795
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860932269
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330860934885
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860935557
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860937009
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330860939637
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860941079
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860941954
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860942791
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860943895
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860944765
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860945706
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330860946300
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860946939
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330860950776
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330860956849
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330860966578
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330860971439
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330860979789
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330860981650
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861000077
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861000319
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861003976
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861004739
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861006757
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861008199
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861014965
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861015180
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861016442
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861023222
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861024087
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861025022
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861053133
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861054995
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861058270
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861059006
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861062970
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861063688
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861074186
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861074399
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861076291
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861077214
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861078068
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861087648
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861090676
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861093220
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861096791
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861097784
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861105324
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861106917
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861108460
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861110885
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861111964
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330861145401
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861160515
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861194976
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861214040
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330861223416
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861226749
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861245420
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861252880
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330861255751
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861264697
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861283926
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861381114
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861381592
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861383570
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.cut",1330861469375
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861474737
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330861476111
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861479247
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861489978
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861491780
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861492761
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861516858
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861518310
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861520747
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861524822
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861546341
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861560065
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861562555
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861565723
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861568372
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861580022
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861581164
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861582191
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861583239
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861589091
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861604986
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861608254
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861617702
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861627515
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861628780
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861631556
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861632891
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861633516
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861640769
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.open.editor",1330861644164
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861650192
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861650709
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861655066
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861678039
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861690435
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861710998
+executed,command,org.eclipse.ui.ide,3.7.0.I20110519-0100,"org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals",1330861750759
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861751964
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861753395
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861754828
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861757533
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861758507
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861765421
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861766356
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330861769853
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330861771793
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861786306
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330861787341
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330861788072
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330861788722
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861855086
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861903640
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330861968118
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861971991
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330861977916
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330861982514
diff --git a/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv b/workspace/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload16.csv
new file mode 100644 (file)
index 0000000..f59e2b3
--- /dev/null
@@ -0,0 +1,251 @@
+what,kind,bundleId,bundleVersion,description,time
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330861992410
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330861992883
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Resume",1330861994538
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862019679
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862038794
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862043527
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862044009
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Resume",1330862045026
+executed,command,,,"AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction",1330862056526
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862056993
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862057914
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862058419
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862071094
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.StepOver",1330862073174
+executed,command,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui.commands.Resume",1330862075232
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862085382
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862112713
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330862138329
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330862142212
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330862144658
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862168756
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862170349
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862177590
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862197766
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862215336
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330862225139
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862227364
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862231397
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862256116
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862257792
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862261033
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862262264
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862270787
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862272797
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862279932
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862280495
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862283861
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862286157
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862287985
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862288825
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862289913
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862291565
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862294633
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862297829
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862300409
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862301757
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862313744
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862314737
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862316138
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862317366
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862325105
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862326474
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330862326989
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330862331585
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330862332734
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330862333636
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.selectAll",1330862334611
+executed,command,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.edit.text.java.format",1330862335477
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330862336079
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862361830
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862413270
+activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330862414974
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330862416816
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330862420497
+activated,editor,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart",1330862421020
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330862425207
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862432887
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862434084
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330862435120
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330862440660
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330863085237
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330863088659
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330863119695
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330863252473
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330863264040
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330863948986
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330863951786
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330864128998
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330864133403
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330864349493
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330864354249
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330864855136
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330864862449
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330864867472
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330864900075
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865297820
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330865300601
+started,bundle,org.eclipse.wst.html.core,1.1.502.v201202091936,"org.eclipse.wst.html.core",1330865306753
+opened,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1330865308648
+activated,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1330865308764
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330865315905
+closed,editor,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.DefaultTextEditor",1330865315905
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330865317113
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330865323014
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865325616
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865604690
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330865607652
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330865608151
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330865617443
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330865619690
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330865641964
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865679146
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865680834
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330865705537
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330865717612
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865757575
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865831695
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330865838883
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330865839415
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865940750
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865952835
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330865960524
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866037909
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330866046621
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866054367
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866129145
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866135274
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866144553
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866151670
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866153461
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330866155902
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866256088
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866287157
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866380508
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866721564
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330866736814
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866739140
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866795842
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330866800742
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330866801520
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330866810315
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330866815153
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330866815969
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330866819426
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866825326
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866826786
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330866827716
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330866847512
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330867547018
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330867573884
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330867613560
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330867690321
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330867753013
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330867932426
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868018194
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868019956
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868409843
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868411896
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868425864
+activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330868431570
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330868432034
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868498543
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868644329
+activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330868649150
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330868667951
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868673581
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868675254
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330868676143
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330868703358
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869170607
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.undo",1330869172895
+executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330869173795
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869178223
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869179949
+executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330869180715
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869185164
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869256628
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869260447
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869332457
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330869335629
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330870224083
+deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330870226225
+activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330870228094
+closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330870236115
+stopped,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330870243058
+stopped,bundle,org.eclipse.ui.cheatsheets,3.4.100.v20110425,"org.eclipse.ui.cheatsheets",1330870243088
+stopped,bundle,org.eclipse.help.ui,3.5.100.v20110425,"org.eclipse.help.ui",1330870243089
+stopped,bundle,org.eclipse.help.webapp,3.6.0.v20110518,"org.eclipse.help.webapp",1330870243089
+stopped,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330870243089
+stopped,bundle,org.eclipse.epp.usagedata.ui,1.3.1.R201106061540,"org.eclipse.epp.usagedata.ui",1330870243089
+stopped,bundle,org.eclipse.ui.intro.universal,3.2.500.v20110510,"org.eclipse.ui.intro.universal",1330870243089
+stopped,bundle,org.eclipse.ui.intro,3.4.100.v20110425,"org.eclipse.ui.intro",1330870243089
+stopped,bundle,org.eclipse.help.base,3.6.0.v201106131736,"org.eclipse.help.base",1330870243089
+stopped,bundle,org.eclipse.equinox.http.jetty,2.0.100.v20110502,"org.eclipse.equinox.http.jetty",1330870243089
+stopped,bundle,com.google.appengine.eclipse.datatools,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.datatools",1330870243111
+stopped,bundle,com.google.appengine.eclipse.sdkbundle,1.6.3.v201202290255r37,"com.google.appengine.eclipse.sdkbundle",1330870243111
+stopped,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330870243111
+stopped,bundle,com.google.gdt.eclipse.gph.e36,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.e36",1330870243111
+stopped,bundle,com.google.gdt.eclipse.gph.hge,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.hge",1330870243111
+stopped,bundle,com.google.gdt.eclipse.gph.subclipse,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subclipse",1330870243118
+stopped,bundle,com.google.gdt.eclipse.gph.subversive,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subversive",1330870243118
+stopped,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330870243118
+stopped,bundle,com.google.gdt.eclipse.gph,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph",1330870243118
+stopped,bundle,com.google.gdt.eclipse.maven.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven.e37",1330870243119
+stopped,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330870243141
+stopped,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330870243142
+stopped,bundle,com.google.gdt.eclipse.appsmarketplace,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appsmarketplace",1330870243142
+stopped,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330870243142
+stopped,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330870243142
+stopped,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330870243326
+stopped,bundle,com.google.gwt.eclipse.oophm,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.oophm",1330870243327
+stopped,bundle,com.google.gwt.eclipse.sdkbundle,2.4.0.v201202290255-rel-r37,"com.google.gwt.eclipse.sdkbundle",1330870243328
+stopped,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330870244411
+stopped,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330870244412
+stopped,bundle,com.google.gdt.eclipse.platform,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform",1330870244412
+stopped,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330870244507
+stopped,bundle,com.google.gdt.eclipse.platform.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.e37",1330870244507
+stopped,bundle,org.eclipse.m2e.discovery,1.0.200.20111228-1245,"org.eclipse.m2e.discovery",1330870244590
+stopped,bundle,org.eclipse.m2e.refactoring,1.0.200.20111228-1245,"org.eclipse.m2e.refactoring",1330870244658
+stopped,bundle,org.eclipse.m2e.editor,1.0.200.20111228-1245,"org.eclipse.m2e.editor",1330870244658
+stopped,bundle,org.eclipse.m2e.editor.xml,1.0.200.20111228-1245,"org.eclipse.m2e.editor.xml",1330870244658
+stopped,bundle,org.eclipse.m2e.jdt,1.0.200.20111228-1245,"org.eclipse.m2e.jdt",1330870244658
+stopped,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1330870244658
+stopped,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330870244726
+stopped,bundle,org.eclipse.m2e.core.ui,1.0.200.20111228-1245,"org.eclipse.m2e.core.ui",1330870244759
+stopped,bundle,org.eclipse.m2e.core,1.0.200.20111228-1245,"org.eclipse.m2e.core",1330870244759
+stopped,bundle,org.eclipse.mylyn.ide.ant,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ant",1330870244759
+stopped,bundle,org.eclipse.ant.ui,3.5.100.v20110510,"org.eclipse.ant.ui",1330870244759
+stopped,bundle,org.eclipse.ant.launching,1.0.100.v20110506,"org.eclipse.ant.launching",1330870244759
+stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1330870244759
+stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1330870244759
+stopped,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330870244760
+stopped,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330870244760
+stopped,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330870244760
+stopped,bundle,com.google.gdt.eclipse.designer.gpe,2.5.0.r37x201201030222,"com.google.gdt.eclipse.designer.gpe",1330870244760
+stopped,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330870244760
+stopped,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330870244760
+stopped,bundle,org.eclipse.jdt.apt.ui,3.3.300.v20110305-1450,"org.eclipse.jdt.apt.ui",1330870244760
+stopped,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330870244978
+stopped,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330870244979
+stopped,bundle,org.eclipse.wb.swing.FormLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.FormLayout",1330870244979
+stopped,bundle,org.eclipse.wb.swing.MigLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.MigLayout",1330870244979
+stopped,bundle,org.eclipse.wb.swing.databinding,1.0.0.r37x201106081552,"org.eclipse.wb.swing.databinding",1330870244979
+stopped,bundle,org.eclipse.wb.swing.java6,1.0.0.r37x201106081552,"org.eclipse.wb.swing.java6",1330870244979
+stopped,bundle,org.eclipse.wb.swing.jsr296,1.0.0.r37x201106081552,"org.eclipse.wb.swing.jsr296",1330870244979
+stopped,bundle,org.eclipse.wb.swing,1.0.0.r37x201106081552,"org.eclipse.wb.swing",1330870244979
+stopped,bundle,org.eclipse.wb.core.ui,1.0.0.r37x201106081733,"org.eclipse.wb.core.ui",1330870244979
+stopped,bundle,org.eclipse.wb.layout.group,1.0.0.r37x201106081642,"org.eclipse.wb.layout.group",1330870244979
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.ie",1330870244980
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.webkit",1330870244980
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0",1330870244980
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.ie",1330870244982
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.webkit",1330870244982
+stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2",1330870244982
+stopped,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330870245072
+stopped,bundle,org.eclipse.wb.core.databinding.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.databinding.xml",1330870245105
+stopped,bundle,org.eclipse.wb.core.databinding,1.2.0.r37x201112290923,"org.eclipse.wb.core.databinding",1330870245105
+stopped,bundle,org.eclipse.wb.core.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.xml",1330870245105
+stopped,bundle,org.eclipse.wb.css,1.2.0.r37x201112290951,"org.eclipse.wb.css",1330870245147
+stopped,bundle,org.eclipse.wb.os.win32,1.2.0.r37x201112290923,"org.eclipse.wb.os.win32",1330870245190
index 9888727..85ba517 100644 (file)
 what,kind,bundleId,bundleVersion,description,time
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767698767
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330767713620
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767719580
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767745158
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330767758308
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767760926
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767763420
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.copy",1330767764530
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.paste",1330767771595
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767772364
-deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767797054
-activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767879295
-deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767886361
-activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767952105
-activated,view,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.PackageExplorer",1330767955792
-activated,editor,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui.CompilationUnitEditor",1330767956136
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767960460
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767961350
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767962506
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.edit.delete",1330767963866
-executed,command,org.eclipse.ui,3.7.0.I20110602-0100,"org.eclipse.ui.file.save",1330767972951
-activated,view,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console.ConsoleView",1330767979269
-started,bundle,org.eclipse.wst.sse.core,1.1.602.v201112071516,"org.eclipse.wst.sse.core",1330767986953
-started,bundle,org.eclipse.wst.xml.core,1.1.602.v201201091944,"org.eclipse.wst.xml.core",1330767987163
-started,bundle,org.eclipse.wst.common.uriresolver,1.1.401.v201004280700,"org.eclipse.wst.common.uriresolver",1330767988453
-deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767988653
-activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767990310
-executed,command,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core.deployToGoogle",1330767992609
-deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330767992770
-activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768003075
-deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768010341
-activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768036288
-deactivated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768038478
-activated,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768040336
-closed,workbench,org.eclipse.ui.workbench,3.7.0.I20110519-0100,"",1330768041046
-stopped,bundle,org.eclipse.m2e.logback.configuration,1.0.0.20110607-2117,"org.eclipse.m2e.logback.configuration",1330768042086
-stopped,bundle,org.eclipse.ui.cheatsheets,3.4.100.v20110425,"org.eclipse.ui.cheatsheets",1330768042086
-stopped,bundle,org.eclipse.help.ui,3.5.100.v20110425,"org.eclipse.help.ui",1330768042086
-stopped,bundle,org.eclipse.help.webapp,3.6.0.v20110518,"org.eclipse.help.webapp",1330768042086
-stopped,bundle,org.eclipse.epp.mpc.ui,1.1.0.I20110525-0742,"org.eclipse.epp.mpc.ui",1330768042087
-stopped,bundle,org.eclipse.epp.usagedata.ui,1.3.1.R201106061540,"org.eclipse.epp.usagedata.ui",1330768042087
-stopped,bundle,org.eclipse.ui.intro.universal,3.2.500.v20110510,"org.eclipse.ui.intro.universal",1330768042087
-stopped,bundle,org.eclipse.ui.intro,3.4.100.v20110425,"org.eclipse.ui.intro",1330768042087
-stopped,bundle,org.eclipse.help.base,3.6.0.v201106131736,"org.eclipse.help.base",1330768042087
-stopped,bundle,org.eclipse.equinox.http.jetty,2.0.100.v20110502,"org.eclipse.equinox.http.jetty",1330768042087
-stopped,bundle,com.google.appengine.eclipse.datatools,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.datatools",1330768042088
-stopped,bundle,com.google.appengine.eclipse.sdkbundle,1.6.3.v201202290255r37,"com.google.appengine.eclipse.sdkbundle",1330768042088
-stopped,bundle,com.google.gdt.eclipse.appengine.rpc,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appengine.rpc",1330768042091
-stopped,bundle,com.google.gdt.eclipse.gph.e36,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.e36",1330768042091
-stopped,bundle,com.google.gdt.eclipse.gph.hge,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.hge",1330768042091
-stopped,bundle,com.google.gdt.eclipse.gph.subclipse,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subclipse",1330768042091
-stopped,bundle,com.google.gdt.eclipse.gph.subversive,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph.subversive",1330768042091
-stopped,bundle,com.google.gdt.eclipse.suite.ext,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite.ext",1330768042091
-stopped,bundle,com.google.gdt.eclipse.gph,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.gph",1330768042091
-stopped,bundle,com.google.gdt.eclipse.maven.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven.e37",1330768042091
-stopped,bundle,com.google.gdt.eclipse.maven,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.maven",1330768042092
-stopped,bundle,com.google.gdt.eclipse.suite,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.suite",1330768042092
-stopped,bundle,com.google.gdt.eclipse.appsmarketplace,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.appsmarketplace",1330768042092
-stopped,bundle,com.google.appengine.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.appengine.eclipse.core",1330768042093
-stopped,bundle,com.google.gdt.eclipse.login,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.login",1330768042094
-stopped,bundle,com.google.gdt.eclipse.managedapis,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.managedapis",1330768042130
-stopped,bundle,com.google.gwt.eclipse.oophm,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.oophm",1330768042130
-stopped,bundle,com.google.gwt.eclipse.sdkbundle,2.4.0.v201202290255-rel-r37,"com.google.gwt.eclipse.sdkbundle",1330768042130
-stopped,bundle,com.google.gwt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gwt.eclipse.core",1330768042230
-stopped,bundle,com.google.gdt.eclipse.core,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.core",1330768042231
-stopped,bundle,com.google.gdt.eclipse.platform,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform",1330768042231
-stopped,bundle,com.google.gdt.eclipse.platform.e36,2.5.2.v201202290255-rel-r36,"com.google.gdt.eclipse.platform.e36",1330768042231
-stopped,bundle,com.google.gdt.eclipse.platform.e37,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.e37",1330768042231
-stopped,bundle,org.eclipse.m2e.discovery,1.0.200.20111228-1245,"org.eclipse.m2e.discovery",1330768042232
-stopped,bundle,org.eclipse.m2e.refactoring,1.0.200.20111228-1245,"org.eclipse.m2e.refactoring",1330768042232
-stopped,bundle,org.eclipse.m2e.editor,1.0.200.20111228-1245,"org.eclipse.m2e.editor",1330768042233
-stopped,bundle,org.eclipse.m2e.editor.xml,1.0.200.20111228-1245,"org.eclipse.m2e.editor.xml",1330768042233
-stopped,bundle,org.eclipse.m2e.jdt,1.0.200.20111228-1245,"org.eclipse.m2e.jdt",1330768042233
-stopped,bundle,org.eclipse.m2e.launching,1.0.200.20111228-1245,"org.eclipse.m2e.launching",1330768042233
-stopped,bundle,org.eclipse.m2e.usagedata,1.0.200.20111228-1245,"org.eclipse.m2e.usagedata",1330768042234
-stopped,bundle,org.eclipse.m2e.core.ui,1.0.200.20111228-1245,"org.eclipse.m2e.core.ui",1330768042234
-stopped,bundle,org.eclipse.m2e.core,1.0.200.20111228-1245,"org.eclipse.m2e.core",1330768042234
-stopped,bundle,org.eclipse.mylyn.ide.ant,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ant",1330768042234
-stopped,bundle,org.eclipse.ant.ui,3.5.100.v20110510,"org.eclipse.ant.ui",1330768042234
-stopped,bundle,org.eclipse.ant.launching,1.0.100.v20110506,"org.eclipse.ant.launching",1330768042235
-stopped,bundle,org.eclipse.compare.win32,1.0.200.I20110510-0800,"org.eclipse.compare.win32",1330768042235
-stopped,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.200.v20110502-1955,"org.eclipse.equinox.p2.ui.sdk",1330768042235
-stopped,bundle,org.eclipse.mylyn.java.tasks,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.tasks",1330768042236
-stopped,bundle,org.eclipse.mylyn.java.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.java.ui",1330768042236
-stopped,bundle,com.google.gdt.eclipse.designer.UiBinder,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer.UiBinder",1330768042236
-stopped,bundle,com.google.gdt.eclipse.designer.gpe,2.5.0.r37x201201030222,"com.google.gdt.eclipse.designer.gpe",1330768042236
-stopped,bundle,com.google.gdt.eclipse.designer,2.5.0.r37x201112291029,"com.google.gdt.eclipse.designer",1330768042237
-stopped,bundle,org.eclipse.jdt.junit,3.7.0.v20110505-0800,"org.eclipse.jdt.junit",1330768042237
-stopped,bundle,org.eclipse.jdt.apt.ui,3.3.300.v20110305-1450,"org.eclipse.jdt.apt.ui",1330768042237
-stopped,bundle,org.eclipse.jdt.debug.ui,3.6.0.v20110512,"org.eclipse.jdt.debug.ui",1330768042288
-stopped,bundle,com.google.gdt.eclipse.platform.shared,2.5.2.v201202290255-rel-r37,"com.google.gdt.eclipse.platform.shared",1330768042288
-stopped,bundle,org.eclipse.wb.swing.FormLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.FormLayout",1330768042288
-stopped,bundle,org.eclipse.wb.swing.MigLayout,1.0.0.r37x201106081552,"org.eclipse.wb.swing.MigLayout",1330768042288
-stopped,bundle,org.eclipse.wb.swing.databinding,1.0.0.r37x201106081552,"org.eclipse.wb.swing.databinding",1330768042289
-stopped,bundle,org.eclipse.wb.swing.java6,1.0.0.r37x201106081552,"org.eclipse.wb.swing.java6",1330768042289
-stopped,bundle,org.eclipse.wb.swing.jsr296,1.0.0.r37x201106081552,"org.eclipse.wb.swing.jsr296",1330768042289
-stopped,bundle,org.eclipse.wb.swing,1.0.0.r37x201106081552,"org.eclipse.wb.swing",1330768042289
-stopped,bundle,org.eclipse.wb.core.ui,1.0.0.r37x201106081733,"org.eclipse.wb.core.ui",1330768042289
-stopped,bundle,org.eclipse.wb.layout.group,1.0.0.r37x201106081642,"org.eclipse.wb.layout.group",1330768042290
-stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.ie",1330768042290
-stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0.webkit",1330768042290
-stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_0,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_0",1330768042290
-stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.ie,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.ie",1330768042290
-stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2.webkit,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2.webkit",1330768042292
-stopped,bundle,com.google.gdt.eclipse.designer.hosted.2_2,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted.2_2",1330768042292
-stopped,bundle,com.google.gdt.eclipse.designer.hosted,2.5.0.r37x201112291019,"com.google.gdt.eclipse.designer.hosted",1330768042293
-stopped,bundle,org.eclipse.wb.core.databinding.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.databinding.xml",1330768042293
-stopped,bundle,org.eclipse.wb.core.databinding,1.2.0.r37x201112290923,"org.eclipse.wb.core.databinding",1330768042293
-stopped,bundle,org.eclipse.wb.core.xml,1.2.0.r37x201112291009,"org.eclipse.wb.core.xml",1330768042293
-stopped,bundle,org.eclipse.wb.css,1.2.0.r37x201112290951,"org.eclipse.wb.css",1330768042293
-stopped,bundle,org.eclipse.wb.os.win32,1.2.0.r37x201112290923,"org.eclipse.wb.os.win32",1330768042293
-stopped,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330768042294
-stopped,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330768042367
-stopped,bundle,org.eclipse.wst.dtd.ui,1.0.600.v201103171359,"org.eclipse.wst.dtd.ui",1330768042367
-stopped,bundle,org.eclipse.wst.xsd.ui,1.2.404.v201105050216,"org.eclipse.wst.xsd.ui",1330768042368
-stopped,bundle,org.eclipse.wst.css.ui,1.0.601.v201201101544,"org.eclipse.wst.css.ui",1330768042368
-stopped,bundle,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui",1330768042368
-stopped,bundle,org.eclipse.wst.common.ui,1.1.500.v200911190730,"org.eclipse.wst.common.ui",1330768042368
-stopped,bundle,org.eclipse.wst.jsdt.ui,1.1.102.v201201131900,"org.eclipse.wst.jsdt.ui",1330768042369
-stopped,bundle,org.eclipse.wst.sse.ui,1.3.2.v201201041522,"org.eclipse.wst.sse.ui",1330768042369
-stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330768042511
-stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1330768042511
-stopped,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330768042512
-stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1330768042512
-stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330768042512
-stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330768042515
-stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1330768042515
-stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1330768042515
-stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1330768042515
-stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330768042516
-stopped,bundle,org.eclipse.mylyn.help.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.help.ui",1330768042516
-stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.bugs",1330768042516
-stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330768042517
-stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330768042517
-stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330768042518
-stopped,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330768042518
-stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1330768042518
-stopped,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1330768042532
-stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1330768042532
-stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330768042533
-stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330768042533
-stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330768042533
-stopped,bundle,org.eclipse.wst.common.snippets,1.2.100.v201103281740,"org.eclipse.wst.common.snippets",1330768042534
+stopped,bundle,org.eclipse.wb.core,1.2.0.r37x201112290923,"org.eclipse.wb.core",1330870245190
+stopped,bundle,org.eclipse.jdt.ui,3.7.0.v20110531-1200,"org.eclipse.jdt.ui",1330870245634
+stopped,bundle,org.eclipse.wst.dtd.ui,1.0.600.v201103171359,"org.eclipse.wst.dtd.ui",1330870245634
+stopped,bundle,org.eclipse.wst.xsd.ui,1.2.404.v201105050216,"org.eclipse.wst.xsd.ui",1330870245728
+stopped,bundle,org.eclipse.wst.css.ui,1.0.601.v201201101544,"org.eclipse.wst.css.ui",1330870245855
+stopped,bundle,org.eclipse.wst.xml.ui,1.1.202.v201112071516,"org.eclipse.wst.xml.ui",1330870245856
+stopped,bundle,org.eclipse.wst.common.ui,1.1.500.v200911190730,"org.eclipse.wst.common.ui",1330870245856
+stopped,bundle,org.eclipse.wst.jsdt.ui,1.1.102.v201201131900,"org.eclipse.wst.jsdt.ui",1330870246096
+stopped,bundle,org.eclipse.wst.sse.ui,1.3.2.v201201041522,"org.eclipse.wst.sse.ui",1330870246156
+stopped,bundle,org.eclipse.search,3.7.0.v20110505-0800,"org.eclipse.search",1330870246669
+stopped,bundle,org.eclipse.mylyn.commons.team,0.8.0.v20110608-1400,"org.eclipse.mylyn.commons.team",1330870246669
+stopped,bundle,org.eclipse.mylyn.team.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.team.ui",1330870246710
+stopped,bundle,org.eclipse.ui.navigator.resources,3.4.300.I20110421-1800,"org.eclipse.ui.navigator.resources",1330870246710
+stopped,bundle,org.eclipse.ltk.ui.refactoring,3.6.0.v20110505-0800,"org.eclipse.ltk.ui.refactoring",1330870246761
+stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.bugzilla.ui",1330870246781
+stopped,bundle,org.eclipse.mylyn.ide.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.ide.ui",1330870246807
+stopped,bundle,org.eclipse.mylyn.resources.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.resources.ui",1330870246807
+stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.tasks.ui",1330870246807
+stopped,bundle,org.eclipse.mylyn.context.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.context.ui",1330870246807
+stopped,bundle,org.eclipse.mylyn.help.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.help.ui",1330870246807
+stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.bugs",1330870246807
+stopped,bundle,org.eclipse.mylyn.tasks.ui,3.6.0.v20110608-1400,"org.eclipse.mylyn.tasks.ui",1330870246839
+stopped,bundle,org.eclipse.team.cvs.ui,3.3.400.I20110510-0800,"org.eclipse.team.cvs.ui",1330870246911
+stopped,bundle,org.eclipse.team.ui,3.6.100.I20110525-0800,"org.eclipse.team.ui",1330870246911
+stopped,bundle,org.eclipse.compare,3.5.200.I20110525-0800,"org.eclipse.compare",1330870246922
+stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20110506,"org.eclipse.ui.externaltools",1330870246922
+stopped,bundle,org.eclipse.debug.ui,3.7.0.v20110518,"org.eclipse.debug.ui",1330870247158
+stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.5.0.v20110608-1400,"org.eclipse.mylyn.wikitext.ui",1330870247158
+stopped,bundle,org.eclipse.ui.console,3.5.100.v20110511,"org.eclipse.ui.console",1330870247158
+stopped,bundle,org.eclipse.mylyn.commons.ui,3.6.1.v20110720-0100,"org.eclipse.mylyn.commons.ui",1330870247158
+stopped,bundle,org.eclipse.ui.editors,3.7.0.v20110517-0800,"org.eclipse.ui.editors",1330870247158
+stopped,bundle,org.eclipse.wst.common.snippets,1.2.100.v201103281740,"org.eclipse.wst.common.snippets",1330870247158
index bcf51ef..af0fe73 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.jdt.core/2316769267.index and b/workspace/.metadata/.plugins/org.eclipse.jdt.core/2316769267.index differ
index 99156b8..716e875 100644 (file)
Binary files a/workspace/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps and b/workspace/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps differ
index d3d617e..7c0d002 100644 (file)
@@ -1,5 +1,5 @@
 INDEX VERSION 1.126+C:\yuji\prog\Android\workspaces\TrainDelayBot\source\workspace\.metadata\.plugins\org.eclipse.jdt.core
-1936741151.index
+2594609853.index
 300720839.index
 3439653972.index
 3647253411.index
@@ -30,6 +30,6 @@ INDEX VERSION 1.126+C:\yuji\prog\Android\workspaces\TrainDelayBot\source\workspa
 1793416353.index
 3277441100.index
 36897195.index
-4251467834.index
-2594609853.index
 1789169078.index
+4251467834.index
+1936741151.index
index 01a82a0..6450422 100644 (file)
@@ -11,4 +11,6 @@
 <fullyQualifiedTypeName name="java.util.Date"/>\r
 <fullyQualifiedTypeName name="java.util.ArrayList"/>\r
 <fullyQualifiedTypeName name="twitter4j.Status"/>\r
+<fullyQualifiedTypeName name="java.util.logging.Logger"/>\r
+<fullyQualifiedTypeName name="javax.jdo.annotations.IdentityType"/>\r
 </qualifiedTypeNameHistroy>\r
index b3beffa..45e54d5 100644 (file)
                <item value="400" key="height"/>\r
                <item value="600" key="width"/>\r
        </section>\r
+       <section name="RenameInformationPopup">\r
+       </section>\r
+       <section name="quick_assist_proposal_size">\r
+       </section>\r
        <section name="org.eclipse.ltk.ui.refactoring.settings">\r
-               <item value="*" key="patterns"/>\r
-               <item value="false" key="updateQualifiedNames"/>\r
                <item value="false" key="renameSubpackages"/>\r
+               <item value="false" key="updateQualifiedNames"/>\r
+               <item value="*" key="patterns"/>\r
                <item value="false" key="updateTextualMatches"/>\r
        </section>\r
-       <section name="quick_assist_proposal_size">\r
+       <section name="SourceActionDialog.methods">\r
+               <item value="false" key="Comments"/>\r
+               <item value="1" key="VisibilityModifier"/>\r
+               <item value="false" key="SynchronizedModifier"/>\r
+               <item value="false" key="FinalModifier"/>\r
+       </section>\r
+       <section name="AddGetterSetterDialog">\r
+               <item value="false" key="RemoveFinal"/>\r
+               <item value="false" key="SortOrdering"/>\r
        </section>\r
 </section>\r
index 4e7b231..ab34599 100644 (file)
@@ -1,3 +1,3 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
-<session version="1.0">&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;lib&apos;" description="Delete element" element1="lib" elements="0" flags="589830" id="org.eclipse.jdt.ui.delete" resources="1" stamp="1330743374742" subPackages="false" version="1.0"/>&#x0A;<refactoring comment="Rename package &apos;com.yuji.tdb.util&apos; to &apos;com.yuji.tdb.common&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;TrainDelayBot/src/com.yuji.tdb.util&apos;&#x0D;&#x0A;- Renamed element: &apos;TrainDelayBot/src/com.yuji.tdb.common&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename package &apos;com.yuji.tdb.util&apos;" flags="589830" hierarchical="false" id="org.eclipse.jdt.ui.rename.package" input="/src&lt;com.yuji.tdb.util" name="com.yuji.tdb.common" qualified="false" references="true" stamp="1330751572941" textual="false" version="1.0"/>\r
+<session version="1.0">&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;lib&apos;" description="Delete element" element1="lib" elements="0" flags="589830" id="org.eclipse.jdt.ui.delete" resources="1" stamp="1330743374742" subPackages="false" version="1.0"/>&#x0A;<refactoring comment="Rename package &apos;com.yuji.tdb.util&apos; to &apos;com.yuji.tdb.common&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;TrainDelayBot/src/com.yuji.tdb.util&apos;&#x0D;&#x0A;- Renamed element: &apos;TrainDelayBot/src/com.yuji.tdb.common&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename package &apos;com.yuji.tdb.util&apos;" flags="589830" hierarchical="false" id="org.eclipse.jdt.ui.rename.package" input="/src&lt;com.yuji.tdb.util" name="com.yuji.tdb.common" qualified="false" references="true" stamp="1330751572941" textual="false" version="1.0"/>&#x0A;<refactoring comment="Rename local variable &apos;consumerKey&apos; in &apos;com.yuji.tdb.TrainDelayBotServlet.doGet(...)&apos; to &apos;parmConsumerKey&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;com.yuji.tdb.TrainDelayBotServlet.doGet(HttpServletRequest, HttpServletResponse).consumerKey&apos;&#x0D;&#x0A;- Renamed element: &apos;consumerKey&apos;&#x0D;&#x0A;- Update references to refactored element" description="Rename local variable &apos;consumerKey&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;com.yuji.tdb{TrainDelayBotServlet.java[TrainDelayBotServlet~doGet~QHttpServletRequest;~QHttpServletResponse;@consumerKey!1051!1095!1058!1068!QString;!0!false" name="parmConsumerKey" references="true" stamp="1330818273079" version="1.0"/>&#x0A;<refactoring comment="Rename local variable &apos;consumerSecret&apos; in &apos;com.yuji.tdb.TrainDelayBotServlet.doGet(...)&apos; to &apos;parmConsumerSecret&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;com.yuji.tdb.TrainDelayBotServlet.doGet(HttpServletRequest, HttpServletResponse).consumerSecret&apos;&#x0D;&#x0A;- Renamed element: &apos;consumerSecret&apos;&#x0D;&#x0A;- Update references to refactored element" description="Rename local variable &apos;consumerSecret&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;com.yuji.tdb{TrainDelayBotServlet.java[TrainDelayBotServlet~doGet~QHttpServletRequest;~QHttpServletResponse;@consumerSecret!1104!1154!1111!1124!QString;!0!false" name="parmConsumerSecret" references="true" stamp="1330818284773" version="1.0"/>&#x0A;<refactoring comment="Rename local variable &apos;result&apos; in &apos;com.yuji.tdb.TrainDelayBotServlet.doGet(...)&apos; to &apos;parmResult&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;com.yuji.tdb.TrainDelayBotServlet.doGet(HttpServletRequest, HttpServletResponse).result&apos;&#x0D;&#x0A;- Renamed element: &apos;result&apos;&#x0D;&#x0A;- Update references to refactored element" description="Rename local variable &apos;result&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;com.yuji.tdb{TrainDelayBotServlet.java[TrainDelayBotServlet~doGet~QHttpServletRequest;~QHttpServletResponse;@result!1163!1205!1170!1175!QString;!0!false" name="parmResult" references="true" stamp="1330818300734" version="1.0"/>&#x0A;<refactoring comment="Rename local variable &apos;consumerKey&apos; in &apos;com.yuji.tdb.TrainDelayBotServlet.setOAuthAuthorization(...)&apos; to &apos;pramConsumerKey&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;com.yuji.tdb.TrainDelayBotServlet.setOAuthAuthorization(HttpServletRequest, HttpServletResponse, String, String).consumerKey&apos;&#x0D;&#x0A;- Renamed element: &apos;consumerKey&apos;&#x0D;&#x0A;- Update references to refactored element" description="Rename local variable &apos;consumerKey&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;com.yuji.tdb{TrainDelayBotServlet.java[TrainDelayBotServlet~setOAuthAuthorization~QHttpServletRequest;~QHttpServletResponse;~QString;~QString;@consumerKey!1850!1867!1857!1867!QString;!0!true" name="pramConsumerKey" references="true" stamp="1330818373536" version="1.0"/>&#x0A;<refactoring comment="Rename local variable &apos;conRsumerSecret&apos; in &apos;com.yuji.tdb.TrainDelayBotServlet.setOAuthAuthorization(...)&apos; to &apos;parmConsumerSecret&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;com.yuji.tdb.TrainDelayBotServlet.setOAuthAuthorization(HttpServletRequest, HttpServletResponse, String, String).conRsumerSecret&apos;&#x0D;&#x0A;- Renamed element: &apos;conRsumerSecret&apos;&#x0D;&#x0A;- Update references to refactored element" description="Rename local variable &apos;conRsumerSecret&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;com.yuji.tdb{TrainDelayBotServlet.java[TrainDelayBotServlet~setOAuthAuthorization~QHttpServletRequest;~QHttpServletResponse;~QString;~QString;@conRsumerSecret!1874!1895!1881!1895!QString;!0!true" name="parmConsumerSecret" references="true" stamp="1330818401171" version="1.0"/>&#x0A;<refactoring comment="Rename local variable &apos;pramConsumerKey&apos; in &apos;com.yuji.tdb.TrainDelayBotServlet.setOAuthAuthorization(...)&apos; to &apos;parmConsumerKey&apos;&#x0D;&#x0A;- Original project: &apos;TrainDelayBot&apos;&#x0D;&#x0A;- Original element: &apos;com.yuji.tdb.TrainDelayBotServlet.setOAuthAuthorization(HttpServletRequest, HttpServletResponse, String, String).pramConsumerKey&apos;&#x0D;&#x0A;- Renamed element: &apos;pramConsumerKey&apos;&#x0D;&#x0A;- Update references to refactored element" description="Rename local variable &apos;pramConsumerKey&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;com.yuji.tdb{TrainDelayBotServlet.java[TrainDelayBotServlet~setOAuthAuthorization~QHttpServletRequest;~QHttpServletResponse;~QString;~QString;@pramConsumerKey!1850!1871!1857!1871!QString;!0!true" name="parmConsumerKey" references="true" stamp="1330818421004" version="1.0"/>\r
 </session>
\ No newline at end of file
index a96dc95..14b055f 100644 (file)
@@ -1,2 +1,8 @@
 1330743374742  Delete element
 1330751572941  Rename package 'com.yuji.tdb.util'
+1330818273079  Rename local variable 'consumerKey'
+1330818284773  Rename local variable 'consumerSecret'
+1330818300734  Rename local variable 'result'
+1330818373536  Rename local variable 'consumerKey'
+1330818401171  Rename local variable 'conRsumerSecret'
+1330818421004  Rename local variable 'pramConsumerKey'
index d48477b..07ff7a6 100644 (file)
@@ -1,3 +1,6 @@
 2012-03-03 10:29:26,216 [main] INFO  org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog\r
 2012-03-03 16:23:08,834 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO  org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog\r
 2012-03-03 18:07:26,156 [main] INFO  org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog\r
+2012-03-03 23:04:54,694 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO  org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog\r
+2012-03-03 23:41:57,631 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO  org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog\r
+2012-03-04 08:39:18,450 [org.eclipse.jdt.internal.ui.text.JavaReconciler] INFO  org.mortbay.log - Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog\r
diff --git a/workspace/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml b/workspace/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml
new file mode 100644 (file)
index 0000000..e4f30a7
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<section name="Workbench">\r
+       <section name="quick_assist_proposal_size">\r
+       </section>\r
+</section>\r
index caa7447..e52d69b 100644 (file)
@@ -2,22 +2,26 @@
 <section name="Workbench">\r
        <section name="org.eclipse.ui.texteditor.FindReplaceDialog_dialogBounds">\r
                <item value="407" key="DIALOG_WIDTH"/>\r
-               <item value="87" key="DIALOG_Y_ORIGIN"/>\r
+               <item value="0" key="DIALOG_Y_ORIGIN"/>\r
+               <item value="758" key="DIALOG_X_ORIGIN"/>\r
                <item value="410" key="DIALOG_HEIGHT"/>\r
-               <item value="363" key="DIALOG_X_ORIGIN"/>\r
                <item value="1|メイリオ|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|メイリオ" key="DIALOG_FONT_NAME"/>\r
        </section>\r
        <section name="org.eclipse.ui.texteditor.FindReplaceDialog">\r
                <item value="true" key="wrap"/>\r
-               <item value="false" key="isRegEx"/>\r
                <item value="false" key="casesensitive"/>\r
+               <item value="false" key="isRegEx"/>\r
                <item value="false" key="incremental"/>\r
                <item value="false" key="wholeword"/>\r
-               <item value="" key="selection"/>\r
+               <item value="PMFactory" key="selection"/>\r
                <list key="findhistory">\r
+                       <item value="PMF"/>\r
+                       <item value="TrainDelayBotServlet."/>\r
                        <item value="localhost"/>\r
                </list>\r
                <list key="replacehistory">\r
+                       <item value="PMFactory"/>\r
+                       <item value=""/>\r
                </list>\r
        </section>\r
 </section>\r
index 3184440..462a0a0 100644 (file)
@@ -1,10 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <section name="Workbench">\r
+       <section name="WorkbenchPreferenceDialogSettings">\r
+               <item value="-29" key="DIALOG_Y_ORIGIN"/>\r
+               <item value="249" key="DIALOG_X_ORIGIN"/>\r
+       </section>\r
        <section name="ShowViewDialog">\r
                <item value="436" key="DIALOG_WIDTH"/>\r
                <item value="56" key="DIALOG_Y_ORIGIN"/>\r
-               <item value="456" key="DIALOG_HEIGHT"/>\r
                <item value="348" key="DIALOG_X_ORIGIN"/>\r
+               <item value="456" key="DIALOG_HEIGHT"/>\r
                <item value="1|メイリオ|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|メイリオ" key="DIALOG_FONT_NAME"/>\r
        </section>\r
 </section>\r
index 9882ca2..a29a10f 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
-<workbench progressCount="36" version="2.0">\r
+<workbench progressCount="33" version="2.0">\r
 <workbenchAdvisor/>\r
 <window height="721" width="1132" x="72" y="29">\r
 <fastViewData fastViewLocation="1024"/>\r
 <coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="101" y="22"/>\r
 <coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="130" y="22"/>\r
 <coolItem id="org.eclipse.wst.xml.ui.perspective.NewFileToolBar" itemType="typeToolBarContribution" x="-1" y="-1"/>\r
-<coolItem id="org.eclipse.wst.xml.ui.design.DesignToolBar" itemType="typeToolBarContribution" x="-1" y="-1"/>\r
+<coolItem id="org.eclipse.wst.xml.ui.design.DesignToolBar" itemType="typeToolBarContribution" x="61" y="22"/>\r
 <coolItem id="group.nav" itemType="typeGroupMarker"/>\r
 <coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="198" y="22"/>\r
 <coolItem id="group.editor" itemType="typeGroupMarker"/>\r
+<coolItem id="org.eclipse.ui.DefaultTextEditor" itemType="typePlaceholder" x="-1" y="-1"/>\r
+<coolItem id="org.eclipse.jdt.ui.ClassFileEditor" itemType="typePlaceholder" x="-1" y="-1"/>\r
+<coolItem id="org.eclipse.jdt.ui.PropertiesFileEditor" itemType="typeToolBarContribution" x="-1" y="-1"/>\r
 <coolItem id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart" itemType="typeToolBarContribution" x="-1" y="-1"/>\r
 <coolItem id="org.eclipse.jdt.ui.CompilationUnitEditor" itemType="typeToolBarContribution" x="-1" y="-1"/>\r
 <coolItem id="group.help" itemType="typeGroupMarker"/>\r
 <part id="3"/>\r
 <part id="4"/>\r
 <part id="5"/>\r
+<part id="6"/>\r
+<part id="7"/>\r
+<part id="8"/>\r
+<part id="9"/>\r
 </presentation>\r
 </folder>\r
 </info>\r
 </editorArea>\r
 <editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="TrainDelayBotServlet.java" partName="TrainDelayBotServlet.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/TrainDelayBotServlet.java" title="TrainDelayBotServlet.java" tooltip="TrainDelayBot/src/com/yuji/tdb/TrainDelayBotServlet.java" workbook="DefaultEditorWorkbook">\r
 <input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/TrainDelayBotServlet.java"/>\r
-<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="1455" selectionTopPixel="1062"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="3089" selectionTopPixel="1724"/>\r
 </editor>\r
 <editor id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart" name="cron.xml" partName="cron.xml" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/war/WEB-INF/cron.xml" title="cron.xml" tooltip="TrainDelayBot/war/WEB-INF/cron.xml" workbook="DefaultEditorWorkbook">\r
 <input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/war/WEB-INF/cron.xml"/>\r
 <input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/common/CommonUtil.java"/>\r
 <editorState selectionHorizontalPixel="0" selectionLength="13" selectionOffset="130" selectionTopPixel="47"/>\r
 </editor>\r
-<editor activePart="true" focus="true" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Main.java" partName="Main.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/main/Main.java" title="Main.java" tooltip="TrainDelayBot/src/com/yuji/tdb/main/Main.java" workbook="DefaultEditorWorkbook">\r
+<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Main.java" partName="Main.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/main/Main.java" title="Main.java" tooltip="TrainDelayBot/src/com/yuji/tdb/main/Main.java" workbook="DefaultEditorWorkbook">\r
 <input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/main/Main.java"/>\r
-<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="837" selectionTopPixel="205"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="837" selectionTopPixel="0"/>\r
 </editor>\r
-<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="TwitterUtil.java" partName="TwitterUtil.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java" title="TwitterUtil.java" tooltip="TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java" workbook="DefaultEditorWorkbook">\r
+<editor activePart="true" focus="true" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="TwitterUtil.java" partName="TwitterUtil.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java" title="TwitterUtil.java" tooltip="TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java" workbook="DefaultEditorWorkbook">\r
 <input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java"/>\r
-<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="2367" selectionTopPixel="1008"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="2608" selectionTopPixel="1104"/>\r
+</editor>\r
+<editor id="org.eclipse.jdt.ui.PropertiesFileEditor" name="logging.properties" partName="logging.properties" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/war/WEB-INF/logging.properties" title="logging.properties" tooltip="TrainDelayBot/war/WEB-INF/logging.properties" workbook="DefaultEditorWorkbook">\r
+<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/war/WEB-INF/logging.properties"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="0" selectionTopPixel="0"/>\r
+</editor>\r
+<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="PMFactory.java" partName="PMFactory.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java" title="PMFactory.java" tooltip="TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java" workbook="DefaultEditorWorkbook">\r
+<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="23" selectionTopPixel="0"/>\r
+</editor>\r
+<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="KeyValue.java" partName="KeyValue.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java" title="KeyValue.java" tooltip="TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java" workbook="DefaultEditorWorkbook">\r
+<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="492" selectionTopPixel="48"/>\r
+</editor>\r
+<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="KeyValueDao.java" partName="KeyValueDao.java" path="C:/yuji/prog/Android/workspaces/TrainDelayBot/source/workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java" title="KeyValueDao.java" tooltip="TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java" workbook="DefaultEditorWorkbook">\r
+<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java"/>\r
+<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="1322" selectionTopPixel="168"/>\r
 </editor>\r
 </editors>\r
 <views>\r
@@ -71,9 +94,9 @@
 <view id="org.eclipse.ui.views.ProblemView" partName="Problems">\r
 <viewState PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator" partName="Problems">\r
 <expanded>\r
-<category IMemento.internal.id="Warnings (1 item)"/>\r
 <category IMemento.internal.id="Warnings"/>\r
 <category IMemento.internal.id="Errors"/>\r
+<category IMemento.internal.id="Warnings (2 items)"/>\r
 </expanded>\r
 <columnWidths org.eclipse.ui.ide.locationField="180" org.eclipse.ui.ide.markerType="180" org.eclipse.ui.ide.pathField="240" org.eclipse.ui.ide.resourceField="180" org.eclipse.ui.ide.severityAndDescriptionField="600"/>\r
 <visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>\r
 <viewState/>\r
 </view>\r
 </views>\r
-<perspectives activePart="org.eclipse.ui.console.ConsoleView" activePerspective="org.eclipse.jdt.ui.JavaPerspective">\r
+<perspectives activePart="org.eclipse.jdt.ui.CompilationUnitEditor" activePerspective="org.eclipse.jdt.ui.JavaPerspective">\r
 <perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">\r
 <descriptor class="org.eclipse.jdt.internal.ui.JavaPerspectiveFactory" id="org.eclipse.jdt.ui.JavaPerspective" label="Java"/>\r
 <alwaysOnActionSet id="org.eclipse.mylyn.context.ui.actionSet"/>\r
 <navigationHistory>\r
 <editors>\r
 <editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/TrainDelayBot/src/com/yuji/tdb/TrainDelayBotServlet.java"/>\r
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/TrainDelayBot/src/com/yuji/tdb/main/Main.java"/>\r
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java"/>\r
+<editor factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" org.eclipse.jdt.ui.ClassFileIdentifier="=TrainDelayBot/war\/WEB-INF\/lib\/twitter4j-core-2.2.5.jar&lt;twitter4j.auth(RequestToken.class"/>\r
+<editor factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" org.eclipse.jdt.ui.ClassFileIdentifier="=TrainDelayBot/war\/WEB-INF\/lib\/twitter4j-core-2.2.5.jar&lt;twitter4j.auth(AccessToken.class"/>\r
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart" path="/TrainDelayBot/war/WEB-INF/cron.xml"/>\r
 <editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java"/>\r
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.DefaultTextEditor" path="/TrainDelayBot/war/index.html"/>\r
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java"/>\r
 </editors>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="0" y="0"/>\r
-</item>\r
-<item historyLabel="Main.java" index="1">\r
-<position/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="2497" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position/>\r
+<position info="not_deleted" x="855" y="0"/>\r
+</item>\r
+<item historyLabel="RequestToken.class" index="2">\r
+<position info="not_deleted" x="0" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="907" y="0"/>\r
+</item>\r
+<item historyLabel="AccessToken.class" index="3">\r
 <position/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="801" y="0"/>\r
+<position info="not_deleted" x="907" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
 <position/>\r
 </item>\r
+<item historyLabel="AccessToken.class" index="3">\r
+<position info="not_deleted" x="0" y="0"/>\r
+</item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
 <position/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="404" y="0"/>\r
-</item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="989" y="0"/>\r
-</item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="992" y="0"/>\r
-</item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="445" y="0"/>\r
+<item historyLabel="KeyValueDao.java" index="1">\r
+<position info="not_deleted" x="447" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
 <position/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="439" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1757" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position/>\r
+<position info="not_deleted" x="4097" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="0" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="4099" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="3727" y="0"/>\r
+<position info="not_deleted" x="2397" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="0" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="2395" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="815" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="2422" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="628" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="4662" y="24"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="786" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="4234" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="746" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1785" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="583" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1496" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="482" y="11"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1695" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position/>\r
+<position info="not_deleted" x="1759" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="803" y="11"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="2999" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position/>\r
+<position info="not_deleted" x="1496" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="1523" y="0"/>\r
+<position info="not_deleted" x="1540" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="846" y="66"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1591" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="1479" y="0"/>\r
+<position info="not_deleted" x="1496" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="604" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1695" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="1540" y="0"/>\r
+<position info="not_deleted" x="1759" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="835" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1829" y="0"/>\r
 </item>\r
 <item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="3727" y="0"/>\r
+<position info="not_deleted" x="1691" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="835" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1868" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="439" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="1960" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="454" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="5361" y="11"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="521" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="5471" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="592" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="5441" y="11"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="639" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="3089" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="711" y="0"/>\r
+<item historyLabel="cron.xml" index="4">\r
+<position info="not_deleted" x="140" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="781" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="3089" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="839" y="0"/>\r
+<item historyLabel="TwitterUtil.java" index="5">\r
+<position info="not_deleted" x="619" y="0"/>\r
 </item>\r
-<item historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="961" y="0"/>\r
+<item historyLabel="index.html" index="6">\r
+<position info="not_deleted" x="0" y="0"/>\r
 </item>\r
-<item historyLabel="TrainDelayBotServlet.java" index="0">\r
-<position info="not_deleted" x="1455" y="0"/>\r
+<item historyLabel="TwitterUtil.java" index="5">\r
+<position info="not_deleted" x="619" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="835" y="0"/>\r
+<item historyLabel="PMFactory.java" index="7">\r
+<position info="not_deleted" x="23" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="2418" y="0"/>\r
+<item historyLabel="KeyValueDao.java" index="1">\r
+<position info="not_deleted" x="447" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="2104" y="0"/>\r
+<item historyLabel="KeyValueDao.java" index="1">\r
+<position info="not_deleted" x="1318" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="2368" y="0"/>\r
+<item historyLabel="KeyValueDao.java" index="1">\r
+<position info="not_deleted" x="1322" y="0"/>\r
 </item>\r
-<item historyLabel="TwitterUtil.java" index="2">\r
-<position info="not_deleted" x="2367" y="0"/>\r
+<item historyLabel="TwitterUtil.java" index="5">\r
+<position info="not_deleted" x="3178" y="0"/>\r
 </item>\r
-<item active="true" historyLabel="Main.java" index="1">\r
-<position info="not_deleted" x="961" y="0"/>\r
+<item historyLabel="TrainDelayBotServlet.java" index="0">\r
+<position info="not_deleted" x="3089" y="0"/>\r
+</item>\r
+<item active="true" historyLabel="TwitterUtil.java" index="5">\r
+<position info="not_deleted" x="3178" y="0"/>\r
 </item>\r
 </navigationHistory>\r
 <input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>\r
 </trimLayout>\r
 </window>\r
 <mruList>\r
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.DefaultTextEditor" name="index.html" tooltip="TrainDelayBot/war/index.html">\r
+<persistable path="/TrainDelayBot/war/index.html"/>\r
+</file>\r
+<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="AccessToken.class" tooltip="twitter4j.auth.AccessToken">\r
+<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=TrainDelayBot/war\/WEB-INF\/lib\/twitter4j-core-2.2.5.jar&lt;twitter4j.auth(AccessToken.class"/>\r
+</file>\r
+<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="RequestToken.class" tooltip="twitter4j.auth.RequestToken">\r
+<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=TrainDelayBot/war\/WEB-INF\/lib\/twitter4j-core-2.2.5.jar&lt;twitter4j.auth(RequestToken.class"/>\r
+</file>\r
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="KeyValueDao.java" tooltip="TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java">\r
+<persistable path="/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java"/>\r
+</file>\r
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="KeyValue.java" tooltip="TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java">\r
+<persistable path="/TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java"/>\r
+</file>\r
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="PMFactory.java" tooltip="TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java">\r
+<persistable path="/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java"/>\r
+</file>\r
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.PropertiesFileEditor" name="logging.properties" tooltip="TrainDelayBot/war/WEB-INF/logging.properties">\r
+<persistable path="/TrainDelayBot/war/WEB-INF/logging.properties"/>\r
+</file>\r
 <file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="TwitterUtil.java" tooltip="TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java">\r
 <persistable path="/TrainDelayBot/src/com/yuji/tdb/twitter/TwitterUtil.java"/>\r
 </file>\r
index 71ecdd4..9815f69 100644 (file)
@@ -1,6 +1,7 @@
 package com.yuji.tdb;\r
 \r
 import java.io.IOException;\r
+import java.util.logging.Logger;\r
 \r
 import javax.servlet.http.HttpServlet;\r
 import javax.servlet.http.HttpServletRequest;\r
@@ -16,46 +17,91 @@ import twitter4j.conf.Configuration;
 import twitter4j.conf.ConfigurationBuilder;\r
 \r
 import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.db.KeyValueDao;\r
 import com.yuji.tdb.twitter.TwitterUtil;\r
 \r
 @SuppressWarnings("serial")\r
 public class TrainDelayBotServlet extends HttpServlet {\r
-       private static RequestToken requestToken = null;\r
-       private static AccessToken accessToken = null;\r
-       private static String consumerKey = null;\r
-       private static String consumerSecret = null;\r
+       private static final Logger log = Logger\r
+                       .getLogger(TrainDelayBotServlet.class.getName());\r
+       // private static RequestToken requestToken = null;\r
+       // private static AccessToken accessToken = null;\r
+       // private static String consumerKey = null;\r
+       // private static String consumerSecret = null;\r
+\r
+       private KeyValueDao dao = KeyValueDao.getInstance();\r
 \r
        public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
                        throws IOException {\r
-               resp.setContentType("text/plain");\r
-               resp.getWriter().println(" traindelaybot Hello, world");\r
-\r
-               String consumerKey = req.getParameter("key");\r
-               String consumerSecret = req.getParameter("secret");\r
-               String result = req.getParameter("result");\r
-               if (!CommonUtil.isNull(consumerKey)\r
-                               && !CommonUtil.isNull(consumerSecret)) {\r
-                       setOAuthAuthorization(req, resp, consumerKey, consumerSecret);\r
-                       return;\r
-               } else if (!CommonUtil.isNull(result)) {\r
-                       resultOAuthAuthorization();\r
-                       return;\r
+               try {\r
+                       log.info("start");\r
+\r
+                       resp.setContentType("text/plain");\r
+                       resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");\r
+\r
+                       String parmConsumerKey = req.getParameter("key");\r
+                       String parmConsumerSecret = req.getParameter("secret");\r
+                       String parmResult = req.getParameter("result");\r
+                       if (!CommonUtil.isNull(parmConsumerKey)\r
+                                       && !CommonUtil.isNull(parmConsumerSecret)) {\r
+                               setOAuthAuthorization(req, resp, parmConsumerKey,\r
+                                               parmConsumerSecret);\r
+                               return;\r
+                       }\r
+\r
+                       String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);\r
+                       String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);\r
+                       if (CommonUtil.isNull(consumerKey)\r
+                                       || CommonUtil.isNull(consumerSecret)) {\r
+                               log.warning("001");\r
+                               return;\r
+                       }\r
+\r
+                       if (!CommonUtil.isNull(parmResult)) {\r
+                               String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);\r
+                               String requestTokenSecret = dao\r
+                                               .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);\r
+\r
+                               if (CommonUtil.isNull(requestTokenKey)\r
+                                               || CommonUtil.isNull(requestTokenSecret)) {\r
+                                       log.warning("003");\r
+                                       return;\r
+                               }\r
+                               RequestToken requestToken = new RequestToken(requestTokenKey,\r
+                                               requestTokenSecret);\r
+                               resultOAuthAuthorization(consumerKey, consumerSecret,\r
+                                               requestToken);\r
+                               return;\r
+                       }\r
+\r
+                       String accessTokenKey = dao.get(KeyValueDao.KEY_ACCESS_TOKEN);\r
+                       String accessTokenSecret = dao\r
+                                       .get(KeyValueDao.KEY_ACCESS_TOKEN_SECRET);\r
+                       if (CommonUtil.isNull(accessTokenKey)\r
+                                       || CommonUtil.isNull(accessTokenSecret)) {\r
+                               log.warning("003");\r
+                               return;\r
+                       }\r
+\r
+                       AccessToken accessToken = new AccessToken(accessTokenKey,\r
+                                       accessTokenSecret);\r
+                       TwitterUtil util = TwitterUtil.getInstance();\r
+                       util.main(consumerKey, consumerSecret, accessToken);\r
+               } finally {\r
+                       log.info("end");\r
                }\r
 \r
-               // TODO null check\r
-               TwitterUtil util = TwitterUtil.getInstance();\r
-               util.main(TrainDelayBotServlet.consumerKey,\r
-                               TrainDelayBotServlet.consumerSecret, accessToken);\r
        }\r
 \r
        private void setOAuthAuthorization(HttpServletRequest req,\r
-                       HttpServletResponse resp, String consumerKey, String consumerSecret) {\r
+                       HttpServletResponse resp, String parmConsumerKey,\r
+                       String parmConsumerSecret) {\r
                try {\r
                        ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
 \r
                        confBuilder.setDebugEnabled(true);\r
-                       confBuilder.setOAuthConsumerKey(consumerKey);\r
-                       confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+                       confBuilder.setOAuthConsumerKey(parmConsumerKey);\r
+                       confBuilder.setOAuthConsumerSecret(parmConsumerSecret);\r
                        Configuration conf = confBuilder.build();\r
 \r
                        String url = req.getRequestURL().toString();\r
@@ -66,31 +112,35 @@ public class TrainDelayBotServlet extends HttpServlet {
                        String callbackURL = url + "?result=yes";\r
                        // RequestToken requestToken =\r
                        // oauth.getOAuthRequestToken(callbackURL);\r
-                       requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+                       RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);\r
                        // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
                        // sessionScope("RequestToken", requestToken);\r
                        // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
 \r
-                       TrainDelayBotServlet.consumerKey = consumerKey;\r
-                       TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+                       // consumerKey = parmConsumerKey;\r
+                       // consumerSecret = parmConsumerSecret;\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);\r
+                       dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,\r
+                                       requestToken.getTokenSecret());\r
 \r
                        resp.sendRedirect(requestToken.getAuthenticationURL());\r
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                } catch (IOException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 \r
-       private void resultOAuthAuthorization() {\r
+       private void resultOAuthAuthorization(String consumerKey,\r
+                       String consumerSecret, RequestToken requestToken) {\r
                try {\r
                        // Twitter twitter = new TwitterFactory().getInstance();\r
-                       if (requestToken == null || CommonUtil.isNull(consumerKey)\r
-                                       || CommonUtil.isNull(consumerSecret)) {\r
-                               return;\r
-                       }\r
                        // String tokenKey = requestToken.getToken();\r
                        // String tokenSecret = requestToken.getTokenSecret();\r
 \r
@@ -100,10 +150,14 @@ public class TrainDelayBotServlet extends HttpServlet {
                        TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
                        Twitter twitter = factory.getInstance();\r
 \r
-                       accessToken = twitter.getOAuthAccessToken(requestToken);\r
+                       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN, accessToken.getToken());\r
+                       dao.put(KeyValueDao.KEY_ACCESS_TOKEN_SECRET,\r
+                                       accessToken.getTokenSecret());\r
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
 }\r
diff --git a/workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java b/workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValue.java
new file mode 100644 (file)
index 0000000..d0c0c56
--- /dev/null
@@ -0,0 +1,33 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.annotations.IdentityType;\r
+import javax.jdo.annotations.PersistenceCapable;\r
+import javax.jdo.annotations.Persistent;\r
+import javax.jdo.annotations.PrimaryKey;\r
+\r
+@PersistenceCapable(identityType = IdentityType.APPLICATION)\r
+public class KeyValue {\r
+    @PrimaryKey\r
+    @Persistent\r
+    private String key;\r
+    @Persistent\r
+       private String value;\r
+       \r
+    public KeyValue(String key, String value){\r
+       this.key = key;\r
+       this.value = value;\r
+    }\r
+    \r
+       public String getKey() {\r
+               return key;\r
+       }\r
+       public void setKey(String key) {\r
+               this.key = key;\r
+       }\r
+       public String getValue() {\r
+               return value;\r
+       }\r
+       public void setValue(String value) {\r
+               this.value = value;\r
+       }\r
+}\r
diff --git a/workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java b/workspace/TrainDelayBot/src/com/yuji/tdb/db/KeyValueDao.java
new file mode 100644 (file)
index 0000000..96eb609
--- /dev/null
@@ -0,0 +1,48 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.PersistenceManager;\r
+\r
+public class KeyValueDao {\r
+       public static final String KEY_CONSUMER_KEY = "CONSUMER_KEY";\r
+       public static final String KEY_CONSUMER_SECRET = "CONSUMER_SECRET";\r
+       public static final String KEY_REQUEST_TOKEN = "REQUEST_TOKEN";\r
+       public static final String KEY_REQUEST_TOKEN_SECRET = "REQUEST_TOKEN_SECRET";\r
+       public static final String KEY_ACCESS_TOKEN = "ACCESS_TOKEN";\r
+       public static final String KEY_ACCESS_TOKEN_SECRET = "ACCESS_TOKEN_SECRET";\r
+\r
+       private static KeyValueDao instance = null;\r
+       private PersistenceManager pm = PMFactory.get().getPersistenceManager();\r
+               \r
+       public static KeyValueDao getInstance(){\r
+               if (instance == null){\r
+                       instance = new KeyValueDao();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       private KeyValueDao(){\r
+               \r
+       }\r
+       \r
+       public String get(String key){\r
+               KeyValue keyValue = pm.getObjectById(KeyValue.class, key);\r
+               if (keyValue == null){\r
+                       return null;\r
+               }\r
+               return keyValue.getValue();\r
+       }\r
+       \r
+       public int getInt(String key){\r
+               String value = get(key);\r
+               return Integer.valueOf(value).intValue();\r
+       }\r
+       \r
+       public void put(String key, String value){\r
+               KeyValue keyValue = new KeyValue(key, value);\r
+               pm.makePersistent(keyValue);\r
+       }\r
+\r
+       public void put(String key, int value){\r
+               put(key, String.valueOf(value));\r
+       }\r
+}\r
diff --git a/workspace/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java b/workspace/TrainDelayBot/src/com/yuji/tdb/db/PMFactory.java
new file mode 100644 (file)
index 0000000..b3bb310
--- /dev/null
@@ -0,0 +1,17 @@
+package com.yuji.tdb.db;\r
+\r
+import javax.jdo.JDOHelper;\r
+import javax.jdo.PersistenceManagerFactory;\r
+\r
+public class PMFactory {\r
+\r
+    private static final PersistenceManagerFactory PMFactoryInstance = JDOHelper\r
+        .getPersistenceManagerFactory("transactions-optional");\r
+\r
+    private PMFactory() {\r
+    }\r
+\r
+    public static PersistenceManagerFactory get() {\r
+        return PMFactoryInstance;\r
+    }\r
+}
\ No newline at end of file
index 12af0a6..d5863ec 100644 (file)
@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Calendar;\r
 import java.util.Date;\r
 import java.util.List;\r
+import java.util.logging.Logger;\r
 \r
 import twitter4j.Query;\r
 import twitter4j.QueryResult;\r
@@ -18,6 +19,8 @@ import twitter4j.conf.ConfigurationBuilder;
 import com.yuji.tdb.common.CommonUtil;\r
 \r
 public class TwitterUtil {\r
+       private static final Logger log = Logger\r
+                       .getLogger(TwitterUtil.class.getName());\r
        private static TwitterUtil instance = null;\r
        private static Object obj = new Object();\r
 \r
@@ -52,7 +55,7 @@ public class TwitterUtil {
                        long cur = date.getTime();\r
                        \r
                        Query query = new Query();\r
-                       query.setRpp(100); // TODO\r
+                       query.setRpp(1000); // TODO\r
                        query.setQuery(text);\r
                        QueryResult result = twitter.search(query);\r
                        List<Tweet> tweets = result.getTweets();\r
@@ -94,8 +97,12 @@ public class TwitterUtil {
                                message = "\92x\89\84\82È\82µ " + date.toString();                        \r
                        }\r
                        else {\r
+                               int N = 50;\r
+                               \r
                                String sample = tweets.get(mindex).getText();\r
-                               sample = sample.substring(0, 50);\r
+                               if (sample.length() > N){\r
+                                       sample = sample.substring(0, N);\r
+                               }\r
                                sample = CommonUtil.replaceString(sample, "@", "(a)");\r
                                message = sample + " " + date.toString() + " count=" + count;                                                   \r
                        }\r
@@ -103,6 +110,7 @@ public class TwitterUtil {
                } catch (TwitterException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+                       log.severe(e.toString());\r
                }\r
        }\r
        \r
@@ -114,7 +122,9 @@ public class TwitterUtil {
                        keywords.add("\92x\89\84");\r
                        keywords.add("\92x\82ê");\r
                        keywords.add("\90U\82è\91Ö\82¦");\r
-                       keywords.add("\8bÙ\8b}\92â\8e~");\r
+                       keywords.add("\90U\91Ö");\r
+                       keywords.add("\92â\8e~");\r
+                       keywords.add("\8e\96\8cÌ");\r
                }\r
 \r
                int count = 0;\r
diff --git a/workspace/TrainDelayBot/war/WEB-INF/appengine-generated/local_db.bin b/workspace/TrainDelayBot/war/WEB-INF/appengine-generated/local_db.bin
new file mode 100644 (file)
index 0000000..0cbae73
Binary files /dev/null and b/workspace/TrainDelayBot/war/WEB-INF/appengine-generated/local_db.bin differ
index 1388d5f..779eb26 100644 (file)
@@ -1,8 +1,8 @@
 <cronentries>\r
        <cron>\r
                <url>/traindelaybot</url>\r
-               <description>traindelaybot the run every 30 minutes</description>\r
-               <schedule>every 30 minutes</schedule>\r
+               <description>traindelaybot the run every 5 minutes</description>\r
+               <schedule>every 5 minutes</schedule>\r
                <timezone>Asia/Tokyo</timezone>\r
        </cron>\r
 </cronentries>\r