<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Samuraism</title>
  <link>http://samuraism.jp/blog/</link>
  <description></description>
  <language>en</language>
  <copyright>Yusuke Yamamoto</copyright>
  <lastBuildDate>Sun Apr 08 02:05:00 JST 2012</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>#samurai is now licensed under the Apache License 2.0</title>
    <link>http://samuraism.jp/blog/2012/04/08/samurai_is_now_licensed_under_the_apache_license_2_0.html</link>
    
      
        <description>
          &lt;p&gt;Samurai is a thread dump analysis tool and/or log browsing tool.&lt;br/&gt;It is my oldest open source project and I noticed that the license - LGPL - can be some times making it difficult to embed it&#039;s core part into proprietary solutions.&lt;br/&gt;&lt;br/&gt;So I decided to change the license to Apache License 2.0.&lt;br/&gt;It&#039;s less viral and you can use, integrate Samurai more casually with your commercial and non-commercial project.&lt;br/&gt;&lt;br/&gt;・&lt;a href=&#034;https://github.com/yusuke/samurai&#034;&gt;GitHub - yusuke/samurai&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2012/04/08/samurai_is_now_licensed_under_the_apache_license_2_0.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2012/04/08/samurai_is_now_licensed_under_the_apache_license_2_0.html</guid>
    <pubDate>Sun Apr 08 02:05:00 JST 2012</pubDate>
  </item>
  
  <item>
    <title>Just joined the flock!  #yuskey_at_twitter</title>
    <link>http://samuraism.jp/blog/2011/09/20/just_joined_the_flock_yuskey_at_twitter.html</link>
    
      
        <description>
          &lt;p&gt;After 4+ years of Twitter4J development, I accepted an engineering position at Twitter, Inc.&lt;br/&gt;Starting from this week, I&#039;m in the &lt;a href=&#034;https://twitter.com/#!/jointheflock&#034;&gt;flock&lt;/a&gt;!&lt;br/&gt;&lt;a href=&#034;http://samuraism.jp/diary/images/2011/09/20/photo-large.jpg&#034; rel=&#034;lightbox&#034;&gt;&lt;img src=&#034;http://samuraism.jp/diary/images/2011/09/20/photo-thumb.jpg&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2011/09/20/just_joined_the_flock_yuskey_at_twitter.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2011/09/20/just_joined_the_flock_yuskey_at_twitter.html</guid>
    <pubDate>Tue Sep 20 16:49:00 JST 2011</pubDate>
  </item>
  
  <item>
    <title>maven release:perform failed after upgrading to OSX Lion #gpg #fink #homebrew</title>
    <link>http://samuraism.jp/blog/2011/08/02/maven_releaseperform_failed_after_upgrading_to_osx_lion_gpg_fink_homebrew.html</link>
    
      
        <description>
          &lt;p&gt;Today I tried to release Twitter4J 2.2.4 using maven release plugin and it failed with an error.&lt;br/&gt;It turned out that mvn-release plugin was unable find gpg command as I cleaned up /sw/bin directory after upgrading to Lion.&lt;br/&gt;Unfortunately the fink team hasn&#039;t been managed to package gpg command and this time I used homebrew instead.&lt;br/&gt;&lt;br/&gt;Here&#039;s the logs for the later reference:&lt;br/&gt;&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;$ mvn -e release:perform -Dgpg.passphrase=*******  -Darguments=&amp;quot;-Dgpg.passphrase=****** -Dmaven.test.skip=true&amp;quot;  &lt;br/&gt;...&lt;br/&gt;[INFO] [INFO] Building jar: /Users/yusukey/opensource/twitter4j/target/checkout/twitter4j-core/target/twitter4j-core-2.2.4-javadoc.jar&lt;br/&gt;[INFO] [INFO] [gpg:sign {execution: sign-artifacts}]&lt;br/&gt;[INFO] [INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] [ERROR] BUILD ERROR&lt;br/&gt;[INFO] [INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] [INFO] Unable to execute gpg command&lt;br/&gt;[INFO] &lt;br/&gt;[INFO] Embedded error: Error while executing process.&lt;br/&gt;[INFO] error=2, No such file or directory&lt;br/&gt;[INFO] [INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] [INFO] For more information, run Maven with the -e switch&lt;br/&gt;[INFO] [INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] [INFO] Total time: 45 seconds&lt;br/&gt;[INFO] [INFO] Finished at: Tue Aug 02 19:11:43 JST 2011&lt;br/&gt;[INFO] [INFO] Final Memory: 35M/102M&lt;br/&gt;[INFO] [INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] ------------------------------------------------------------------------&lt;br/&gt;[ERROR] BUILD ERROR&lt;br/&gt;[INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] Maven execution failed, exit code: &#039;1&#039;&lt;br/&gt;&lt;br/&gt;[INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] Trace&lt;br/&gt;org.apache.maven.lifecycle.LifecycleExecutionException: Maven execution failed, exit code: &#039;1&#039;&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)&lt;br/&gt;	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)&lt;br/&gt;	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)&lt;br/&gt;	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)&lt;br/&gt;	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)&lt;br/&gt;	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br/&gt;	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br/&gt;	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br/&gt;	at java.lang.reflect.Method.invoke(Method.java:597)&lt;br/&gt;	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)&lt;br/&gt;	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)&lt;br/&gt;	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)&lt;br/&gt;	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)&lt;br/&gt;Caused by: org.apache.maven.plugin.MojoExecutionException: Maven execution failed, exit code: &#039;1&#039;&lt;br/&gt;	at org.apache.maven.plugins.release.PerformReleaseMojo.execute(PerformReleaseMojo.java:133)&lt;br/&gt;	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)&lt;br/&gt;	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)&lt;br/&gt;	... 17 more&lt;br/&gt;Caused by: org.apache.maven.shared.release.ReleaseExecutionException: Maven execution failed, exit code: &#039;1&#039;&lt;br/&gt;	at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:89)&lt;br/&gt;	at org.apache.maven.shared.release.phase.RunPerformGoalsPhase.execute(RunPerformGoalsPhase.java:67)&lt;br/&gt;	at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:334)&lt;br/&gt;	at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:282)&lt;br/&gt;	at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:262)&lt;br/&gt;	at org.apache.maven.plugins.release.PerformReleaseMojo.execute(PerformReleaseMojo.java:129)&lt;br/&gt;	... 19 more&lt;br/&gt;Caused by: org.apache.maven.shared.release.exec.MavenExecutorException: Maven execution failed, exit code: &#039;1&#039;&lt;br/&gt;	at org.apache.maven.shared.release.exec.InvokerMavenExecutor.executeGoals(InvokerMavenExecutor.java:375)&lt;br/&gt;	at org.apache.maven.shared.release.exec.InvokerMavenExecutor.executeGoals(InvokerMavenExecutor.java:393)&lt;br/&gt;	at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:81)&lt;br/&gt;	... 24 more&lt;br/&gt;[INFO] ------------------------------------------------------------------------&lt;br/&gt;[INFO] Total time: 1 minute 19 seconds&lt;br/&gt;[INFO] Finished at: Tue Aug 02 19:11:43 JST 2011&lt;br/&gt;[INFO] Final Memory: 9M/81M&lt;br/&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;$ fink install gpg&lt;br/&gt;Password:&lt;br/&gt;Information about 1817 packages read in 0 seconds.&lt;br/&gt;Failed: no package found for specification &#039;gpg&#039;!&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;$ /usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.github.com/gist/323731)&amp;quot;&lt;br/&gt;...&lt;br/&gt;/usr/local/lib/libfuse_ino64.2.dylib&lt;br/&gt;==&gt; Installation successful!&lt;br/&gt;Now type: brew help&lt;br/&gt;$ brew install gpg&lt;br/&gt;...&lt;br/&gt;ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.11.tar.bz2&lt;br/&gt;######################################################################## 100.0%&lt;br/&gt;######################################################################## 100.0%==&gt; Downloading patches&lt;br/&gt;==&gt; Patching&lt;br/&gt;patching file configure.ac&lt;br/&gt;patching file ChangeLog&lt;br/&gt;==&gt; /usr/bin/autoconf&lt;br/&gt;==&gt; ./configure --prefix=/usr/local/Cellar/gnupg/1.4.11 --disable-asm&lt;br/&gt;==&gt; make&lt;br/&gt;==&gt; make check&lt;br/&gt;==&gt; make install&lt;br/&gt;/usr/local/Cellar/gnupg/1.4.11: 52 files, 5.1M, built in 55 seconds&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2011/08/02/maven_releaseperform_failed_after_upgrading_to_osx_lion_gpg_fink_homebrew.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2011/08/02/maven_releaseperform_failed_after_upgrading_to_osx_lion_gpg_fink_homebrew.html</guid>
    <pubDate>Tue Aug 02 19:34:00 JST 2011</pubDate>
  </item>
  
  <item>
    <title>Hudson build fails with Maven JVM terminated unexpectedly with exit code 134</title>
    <link>http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html</link>
    
      
        <description>
          &lt;p&gt;We use &lt;a href=&#034;http://hudson-ci.org/&#034;&gt;Hudson&lt;/a&gt; as a continuous integration tool for &lt;a href=&#034;http://twitter4j.org/&#034;&gt;Twitter4J&lt;/a&gt;.&lt;br/&gt;I really love the maven oriented and easy to use tool and it makes Twitter4J development much smoother.&lt;br/&gt;&lt;br/&gt;But what unfortunate is the error message &lt;a href=&#034;http://twitter4j.org/hudson/job/T4J/1201/console&#034;&gt;&amp;quot;ERROR: Maven JVM terminated unexpectedly with exit code 134&amp;quot;&lt;/a&gt; which can be seen quite often. This is really annoying because it happens randomly and when it happens, it persists until I restart Hudson.&lt;br/&gt;&lt;br/&gt;I consulted &lt;a href=&#034;https://groups.google.com/group/hudson-ja/browse_thread/thread/4bfb2f6588a7e58b?hl=ja#6b159721308c4a98&#034;&gt;the mailing list&lt;/a&gt; and knew that exit code 134 indicates that the process crashed with SEGV or something like that.&lt;br/&gt;But somehow I don&#039;t couldn&#039;t find hs_err_pid[PID].log or core dump on the current directory.&lt;br/&gt;Then I dug an important message from syslog, saying&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;Nov 25 21:59:17 macmini com.apple.ReportCrash.Root[3736]: 2010-11-25 21:59:17.966 ReportCrash[3736:1407] Saved crash report for java[3732] version 1.0 (1.0) to /Library/Logs/DiagnosticReports/java_2010-11-25-215917_localhost.crash&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;It seems that Apple&#039;s JVM stores crash reports under /Library/Logs/DiagnosticReports/ as same as other native OSX apps.&lt;br/&gt;Here&#039;s snippet of the crash report:&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;Thread 0 Crashed:  Dispatch queue: com.apple.main-thread &lt;br/&gt;0   libSystem.B.dylib                   0x00007fff82e7a3d6 __kill + 10 &lt;br/&gt;1   libSystem.B.dylib                   0x00007fff82f1a972 abort + 83 &lt;br/&gt;2   com.apple.LaunchServices            0x00007fff80a31c9c GetOurLSSessionIDInit() + 298 &lt;br/&gt;3   libSystem.B.dylib                   0x00007fff82e447fa pthread_once + 95 &lt;br/&gt;4   com.apple.LaunchServices            0x00007fff80a31b6a GetOurLSSessionAttributeBits() + 23 &lt;br/&gt;5   com.apple.LaunchServices            0x00007fff80a31b3b NormalizeLSSessionID(LSSessionID) + 28 &lt;br/&gt;6   com.apple.LaunchServices            0x00007fff80a30c10 _LSApplicationCheckIn + 44 &lt;br/&gt;7   com.apple.HIServices                0x00007fff85e473ce _RegisterApplication + 1086 &lt;br/&gt;8   com.apple.HIServices                0x00007fff85e4e926 SetApplicationIsDaemon + 90 &lt;br/&gt;9   libawt.jnilib                       0x00000001150a9884 +[AWTStarter startAWT:] + 902 &lt;br/&gt;10  libawt.jnilib                       0x000000011506d625 -[CPerformer perform] + 93 &lt;br/&gt;11  com.apple.Foundation                0x00007fff811f563b __NSThreadPerformPerform + 219 &lt;br/&gt;12  com.apple.CoreFoundation            0x00007fff8734be91 __CFRunLoopDoSources0 + 1361 &lt;br/&gt;13  com.apple.CoreFoundation            0x00007fff8734a089 __CFRunLoopRun + 873 &lt;br/&gt;14  com.apple.CoreFoundation            0x00007fff8734984f CFRunLoopRunSpecific + 575 &lt;br/&gt;15  java                                0x0000000100004696 0x100000000 + 18070 &lt;br/&gt;16  java                                0x0000000100003eee 0x100000000 + 16110 &lt;br/&gt;17  java                                0x00000001000017b4 0x100000000 + 6068 &lt;/div&gt;&lt;br/&gt;From the stack, I can see that the JVM crashed while initializing AWT and it appears to be a Mac OSX specific issue.&lt;br/&gt;&lt;br/&gt;Then I &lt;a href=&#034;http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;client=safari&amp;rls=en&amp;q=AWTStarter+crashed+__NSThreadPerformPerform+java+com.apple.main-thread+GetOurLSSessionIDInit&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;gs_rfai=&#034;&gt;googled with &amp;quot;AWTStarter crashed __NSThreadPerformPerform java com.apple.main-thread GetOurLSSessionIDInit&amp;quot;&lt;/a&gt; and found this thread.&lt;br/&gt;・&lt;a href=&#034;http://www.techienuggets.com/Comments?tx=115123&#034;&gt;Comments about Nasty problem with headless mode in Tomcat 6-0-24&lt;/a&gt;&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;In fact just after receiving this email from you I also got one from &lt;br/&gt;Apple saying that it&#039;s a bug and that they&#039;re trying to solve it.&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;The above thread doesn&#039;t tell any solution or workaround, but the subject hints that it happens only on headless mode.&lt;br/&gt;So I turned -Djava.awt.headless=false to true and the problem solved, yay!&lt;br/&gt;&lt;br/&gt;Things learned from the issue:&lt;br/&gt;- usually exit code 134 is caused by SEGV &lt;br/&gt;- Apple&#039;s JVM dumps crash report to /Library/Logs/DiagnosticReports/java_YYYY-MM-DD-******_[hostname].crash&lt;br/&gt;- Apple&#039;s JVM dies with code 134 occasionally and it&#039;s a known issue&lt;br/&gt;- the issue can be workarounded with  -Djava.awt.headless=true (or just without -Djava.awt.headless option)&lt;br/&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html</guid>
    <pubDate>Thu Dec 16 10:09:00 JST 2010</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.8 released - now supports ALL official APIs</title>
    <link>http://samuraism.jp/blog/2010/12/07/twitter4j_2_1_8_released_now_supports_all_official_apis.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine/Android ready Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.8 is now available for download.&lt;br/&gt;This version supports all existing REST APIs, and comes with example codes for all APIs.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://samuraism.jp/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;


        Release Notes - Twitter4J - Version 2.1.8
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-392&#039;&gt;TFJ-392&lt;/a&gt;] -         &amp;amp; not escaped properly in JSON results
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-449&#039;&gt;TFJ-449&lt;/a&gt;] -         GetSuggestedUserCategories.java fails with ArrayIndexOutOfBoundsException
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-450&#039;&gt;TFJ-450&lt;/a&gt;] -         all trends Resources examples scripts point twitter4j.examples.tweets.UpdateStatus
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-455&#039;&gt;TFJ-455&lt;/a&gt;] -         createPlace() fails with 404
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-403&#039;&gt;TFJ-403&lt;/a&gt;] -         include entities is not enabled for some methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-447&#039;&gt;TFJ-447&lt;/a&gt;] -         getOAuthRequestToekn() should throw IllegalStateException if Access token is already available
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-448&#039;&gt;TFJ-448&lt;/a&gt;] -         getRetweetedBy(IDs)(long statusId, Paging paging) is useless as it returns only the first 100 users and no pagination is necessary
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-456&#039;&gt;TFJ-456&lt;/a&gt;] -         retry when receiving 503 status code
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-461&#039;&gt;TFJ-461&lt;/a&gt;] -         documentation is pointing old OAuth endpoints
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-397&#039;&gt;TFJ-397&lt;/a&gt;] -         support site streams
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-451&#039;&gt;TFJ-451&lt;/a&gt;] -         support /related_results/show
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-457&#039;&gt;TFJ-457&lt;/a&gt;] -         support twipplePhoto
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-452&#039;&gt;TFJ-452&lt;/a&gt;] -         deprecate updateDeliveryDevice
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-453&#039;&gt;TFJ-453&lt;/a&gt;] -         changing email via account/update_profile is no longer supported
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-458&#039;&gt;TFJ-458&lt;/a&gt;] -         refactor ImageUpload
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-459&#039;&gt;TFJ-459&lt;/a&gt;] -         ImageUpload example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-460&#039;&gt;TFJ-460&lt;/a&gt;] -         remove authentication credentials from the repository
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/12/07/twitter4j_2_1_8_released_now_supports_all_official_apis.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/12/07/twitter4j_2_1_8_released_now_supports_all_official_apis.html</guid>
    <pubDate>Tue Dec 07 23:35:00 JST 2010</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.7 released - supports ALL existing REST APIs</title>
    <link>http://samuraism.jp/blog/2010/11/24/twitter4j_2_1_7_released_supports_all_existing_rest_apis.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine/Android ready Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.7 is now available for download.&lt;br/&gt;This version supports all existing REST APIs, and comes with example codes for all APIs.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.7
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-408&#039;&gt;TFJ-408&lt;/a&gt;] -         Twitter.getLocationTrends(int woeid) throws twitter4j.internal.org.json.JSONException for some woeids
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-412&#039;&gt;TFJ-412&lt;/a&gt;] -         twitter4j-httpclient-support doesn&amp;#39;t respect HTTP timeout parameters
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-420&#039;&gt;TFJ-420&lt;/a&gt;] -         Searching for phrases with a whitespace leads 401 unauthorized
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-372&#039;&gt;TFJ-372&lt;/a&gt;] -         UserStream: support replies=all option
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-410&#039;&gt;TFJ-410&lt;/a&gt;] -         java.lang.SecurityException in ConfigurationBase
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-411&#039;&gt;TFJ-411&lt;/a&gt;] -         warn that Proxy is not supported with the default HTTPClient implementation on JDK1.4.2
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-366&#039;&gt;TFJ-366&lt;/a&gt;] -         support GET users/profile_image/:screen_name method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-398&#039;&gt;TFJ-398&lt;/a&gt;] -         UserStream example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-413&#039;&gt;TFJ-413&lt;/a&gt;] -         support legal resources
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-414&#039;&gt;TFJ-414&lt;/a&gt;] -         support POST :user/:list_id/create_all
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-415&#039;&gt;TFJ-415&lt;/a&gt;] -         support GET geo/search
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-416&#039;&gt;TFJ-416&lt;/a&gt;] -         support geo/similar_places
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-417&#039;&gt;TFJ-417&lt;/a&gt;] -         support POST geo/place
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-419&#039;&gt;TFJ-419&lt;/a&gt;] -         introduce stream connection lifecycle listener
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-421&#039;&gt;TFJ-421&lt;/a&gt;] -         add TwitterStream handling multiple Listener capability
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-422&#039;&gt;TFJ-422&lt;/a&gt;] -         provide access to raw JSON strings
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-445&#039;&gt;TFJ-445&lt;/a&gt;] -         ability to get response headers from TwitterException
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-399&#039;&gt;TFJ-399&lt;/a&gt;] -         example classes need to migrate to OAuth
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-423&#039;&gt;TFJ-423&lt;/a&gt;] -         Tweets Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-424&#039;&gt;TFJ-424&lt;/a&gt;] -         User Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-425&#039;&gt;TFJ-425&lt;/a&gt;] -         Trends Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-426&#039;&gt;TFJ-426&lt;/a&gt;] -         Local Trends Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-427&#039;&gt;TFJ-427&lt;/a&gt;] -         List Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-428&#039;&gt;TFJ-428&lt;/a&gt;] -         List Members Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-429&#039;&gt;TFJ-429&lt;/a&gt;] -         List Subscribers Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-430&#039;&gt;TFJ-430&lt;/a&gt;] -         Direct Message Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-431&#039;&gt;TFJ-431&lt;/a&gt;] -         Friendship Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-432&#039;&gt;TFJ-432&lt;/a&gt;] -         Friends and Followers Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-433&#039;&gt;TFJ-433&lt;/a&gt;] -         Account Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-434&#039;&gt;TFJ-434&lt;/a&gt;] -         Favorite Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-435&#039;&gt;TFJ-435&lt;/a&gt;] -         Notification Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-436&#039;&gt;TFJ-436&lt;/a&gt;] -         Block Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-437&#039;&gt;TFJ-437&lt;/a&gt;] -         Spam Reporting Resources example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-438&#039;&gt;TFJ-438&lt;/a&gt;] -         Saved Searches Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-439&#039;&gt;TFJ-439&lt;/a&gt;] -         Geo Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-440&#039;&gt;TFJ-440&lt;/a&gt;] -         Legal Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-441&#039;&gt;TFJ-441&lt;/a&gt;] -         Help Resource examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-442&#039;&gt;TFJ-442&lt;/a&gt;] -         Streamed Tweets Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-443&#039;&gt;TFJ-443&lt;/a&gt;] -         Search API Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-444&#039;&gt;TFJ-444&lt;/a&gt;] -         httpclient-support compilation fails: ThreadSafeClientConnManager#setMaxTotalConnections() is now setMaxTotal()
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/11/24/twitter4j_2_1_7_released_supports_all_existing_rest_apis.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/11/24/twitter4j_2_1_7_released_supports_all_existing_rest_apis.html</guid>
    <pubDate>Wed Nov 24 02:04:00 JST 2010</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.3 released - with UserStream and YFrog/TwitPic support</title>
    <link>http://samuraism.jp/blog/2010/07/24/twitter4j_2_1_3_released_with_userstream_and_yfrog_twitpic_support.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine/Android ready Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.3 is now available for download.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.3
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-326&#039;&gt;TFJ-326&lt;/a&gt;] -         xAuth: setOAuthConsumer() fails with IllegalStateException if the instance is Basic auth&#039;ed
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-338&#039;&gt;TFJ-338&lt;/a&gt;] -         getIncomingFriendship() / getOutgoingFriendship() are not checking credentials availability
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-341&#039;&gt;TFJ-341&lt;/a&gt;] -         StackOverFlowError at RequestToken.hashCode()
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-342&#039;&gt;TFJ-342&lt;/a&gt;] -         Streaming API: wait time for TCP level error is always initialized to 250ms
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-346&#039;&gt;TFJ-346&lt;/a&gt;] -         java.lang.IllegalStateException with httpclient-support
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-347&#039;&gt;TFJ-347&lt;/a&gt;] -         StatusUpdate#setInReplyToStatusId() is not functioning
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-348&#039;&gt;TFJ-348&lt;/a&gt;] -         JSONObject[&amp;quot;created_at&amp;quot;] not found. 
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-356&#039;&gt;TFJ-356&lt;/a&gt;] -         typo in reportSpam method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-357&#039;&gt;TFJ-357&lt;/a&gt;] -         NoSuchMethodError with Log4J 1.2.16
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-369&#039;&gt;TFJ-369&lt;/a&gt;] -         httpclient connection closing still not quite right
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-349&#039;&gt;TFJ-349&lt;/a&gt;] -         JSONObject[&amp;quot;created_at&amp;quot;] not found.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-355&#039;&gt;TFJ-355&lt;/a&gt;] -         make PagableResponseList mocking test friendly
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-358&#039;&gt;TFJ-358&lt;/a&gt;] -         Apache HttpClient need to be shutdown gracefully
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-359&#039;&gt;TFJ-359&lt;/a&gt;] -         defaulting useSSL=false
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-364&#039;&gt;TFJ-364&lt;/a&gt;] -         getRetweets() returns only 20 retweets
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-370&#039;&gt;TFJ-370&lt;/a&gt;] -         support location element in Tweet
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-39&#039;&gt;TFJ-39&lt;/a&gt;] -         ability to upload images to TwitPic
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-299&#039;&gt;TFJ-299&lt;/a&gt;] -         support YFrog APIs
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-330&#039;&gt;TFJ-330&lt;/a&gt;] -         include error code generated from stacktrace in TwitterException#getMessage() for the ease of support
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-334&#039;&gt;TFJ-334&lt;/a&gt;] -         support User Stream API
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-339&#039;&gt;TFJ-339&lt;/a&gt;] -         support statuses/id/retweeted_by and statuses/id/retweeted_by/ids
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-343&#039;&gt;TFJ-343&lt;/a&gt;] -         Add Twitter Search option parameter, result_type
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-350&#039;&gt;TFJ-350&lt;/a&gt;] -         support include_rts
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-352&#039;&gt;TFJ-352&lt;/a&gt;] -         Have a source code jar in the release zip
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-354&#039;&gt;TFJ-354&lt;/a&gt;] -         add verifyCredentials in AsyncTwitter
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-360&#039;&gt;TFJ-360&lt;/a&gt;] -         add httpclient max conns configuration
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-361&#039;&gt;TFJ-361&lt;/a&gt;] -         Add support for clients specifying arbitrary stream endpoints
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-362&#039;&gt;TFJ-362&lt;/a&gt;] -         Streaming API - OAuth support
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-363&#039;&gt;TFJ-363&lt;/a&gt;] -         deprecate Basic auth methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-365&#039;&gt;TFJ-365&lt;/a&gt;] -         move JavaDoc links from https://apiwiki.twitter.com/* to http://dev.twitter.com/doc/*
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-368&#039;&gt;TFJ-368&lt;/a&gt;] -         deprecate nearby_places
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/07/24/twitter4j_2_1_3_released_with_userstream_and_yfrog_twitpic_support.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/07/24/twitter4j_2_1_3_released_with_userstream_and_yfrog_twitpic_support.html</guid>
    <pubDate>Sat Jul 24 03:25:00 JST 2010</pubDate>
  </item>
  
  </channel>
</rss>
