SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Jenkins

              2011/2/25
                   @yusukey



     http://samuraism.jp/
     @yusukey
Copyright(c) Yusuke Yamamoto All rights reserved.
• Twitter4J
• Jenkins
•
•



              Copyright(c) Yusuke Yamamoto All rights reserved.
Twitter4J



    Copyright(c) Yusuke Yamamoto All rights reserved.
Java Twitter API
 30
•JDK1.4.2
•Google App Engine
• Android

 LOC: 5.3
        Copyright(c) Yusuke Yamamoto All rights reserved.
Twitter4J
        IntelliJ IDEA: github / Jira


        JUnit:


        Maven:


        Jira: issue

            Copyright(c) Yusuke Yamamoto All rights reserved.
Twitter4J
       Maven Central Repository
                                                                2008 6


       Hudson / Jenkins: CI
        2009     3                                    2011 2

       github:
                                                       2009 4

       Sonatype Nexus: Maven
                                                       2010 1

            Copyright(c) Yusuke Yamamoto All rights reserved.
Copyright(c) Yusuke Yamamoto All rights reserved.
Twitter4J
                                                       release:perform
  git push origin master




                                                             oss.sonatype.org
                      service hook
                                                               promote




       CI                       github.com repo1.maven.org
         Copyright(c) Yusuke Yamamoto All rights reserved.
2007
3



    Copyright(c) Yusuke Yamamoto All rights reserved.
2010                   10                     2




  Copyright(c) Yusuke Yamamoto All rights reserved.
• Twitter4J 2.1.5
     • OAuth
401:Authentication credentials were missing or incorrect.




                 Copyright(c) Yusuke Yamamoto All rights reserved.
Copyright(c) Yusuke Yamamoto All rights reserved.
•                                     StringUtil.split()

•                    OAuth
public static String[] split(String str, String separator){
 String[] returnValue;
 int index;
 if(-1 == str.indexOf(separator)){
  returnValue = new String[0];
 }else{
...




     StringUtil.split(“foo,bar”,”,”); » {“foo”, “bar”}

     StringUtil.split(“foobar”,”,”); » new String[0]
                 Copyright(c) Yusuke Yamamoto All rights reserved.
StringUtil.split
  • String#split
  • J2ME String#split(@since JDK1.4)

  • J2ME      JDK                                        JDK1.3(?)
Caused by: java.lang.NoSuchMethodError: java.lang.String: method
split(Ljava/lang/String;)[Ljava/lang/String; not found
 at twitter4j.conf.PropertyConfiguration.setFieldsWithTreePath
(Ljava/util/Properties;Ljava/lang/String;)V
(PropertyConfiguration.java:196)
 at twitter4j.conf.PropertyConfiguration.<init>(Ljava/lang/
String;)V(PropertyConfiguration.java:121)


                    Copyright(c) Yusuke Yamamoto All rights reserved.
Jenkins




     Copyright(c) Yusuke Yamamoto All rights reserved.
Jenkins




     Copyright(c) Yusuke Yamamoto All rights reserved.
•   Twitter         J


•     : 2010            8                 Basic




        Copyright(c) Yusuke Yamamoto All rights reserved.
TestCase

                         TwitterTestUnit
before


              BasicTest                      OAuthTest
         Basic                             OAuth


after
                                                                Maven
                          TwitterTestUnit

                          OAuth

                Copyright(c) Yusuke Yamamoto All rights reserved.
fail

         : Twitter API                                          API


 TwitterTestUnit   AsyncTwitterTest




                           fail


                     Copyright(c) Yusuke Yamamoto All rights reserved.
Copyright(c) Yusuke Yamamoto All rights reserved.
• fail
  •      age




               Copyright(c) Yusuke Yamamoto All rights reserved.
•
    •
    •




        Copyright(c) Yusuke Yamamoto All rights reserved.
Copyright(c) Yusuke Yamamoto All rights reserved.

Más contenido relacionado

Similar a 2011 02-25-jenkinsci study

Twitter4jソースコードリーディング
Twitter4jソースコードリーディングTwitter4jソースコードリーディング
Twitter4jソースコードリーディング
Yusuke Yamamoto
 
エンタープライズアプリケーション とTwitterの連携
エンタープライズアプリケーション とTwitterの連携エンタープライズアプリケーション とTwitterの連携
エンタープライズアプリケーション とTwitterの連携
Yusuke Yamamoto
 
Twitter 研究会2012-1-28 - Twitter APIの紹介
Twitter 研究会2012-1-28 - Twitter APIの紹介Twitter 研究会2012-1-28 - Twitter APIの紹介
Twitter 研究会2012-1-28 - Twitter APIの紹介
Yusuke Yamamoto
 
今熱いオープンソース
今熱いオープンソース今熱いオープンソース
今熱いオープンソース
Yusuke Yamamoto
 
地球で一番熱いライブラリ
地球で一番熱いライブラリ地球で一番熱いライブラリ
地球で一番熱いライブラリ
Yusuke Yamamoto
 
Eclipse Demo Camp 2010 - EGit
Eclipse Demo Camp 2010 - EGitEclipse Demo Camp 2010 - EGit
Eclipse Demo Camp 2010 - EGit
deepakazad
 
Realities of Mainlining -- Case of the TOMOYO Linux project
Realities of Mainlining -- Case of the TOMOYO Linux projectRealities of Mainlining -- Case of the TOMOYO Linux project
Realities of Mainlining -- Case of the TOMOYO Linux project
Toshiharu Harada, Ph.D
 

Similar a 2011 02-25-jenkinsci study (18)

Twitter4jソースコードリーディング
Twitter4jソースコードリーディングTwitter4jソースコードリーディング
Twitter4jソースコードリーディング
 
エンタープライズアプリケーション とTwitterの連携
エンタープライズアプリケーション とTwitterの連携エンタープライズアプリケーション とTwitterの連携
エンタープライズアプリケーション とTwitterの連携
 
Twitter 研究会2012-1-28 - Twitter APIの紹介
Twitter 研究会2012-1-28 - Twitter APIの紹介Twitter 研究会2012-1-28 - Twitter APIの紹介
Twitter 研究会2012-1-28 - Twitter APIの紹介
 
今熱いオープンソース
今熱いオープンソース今熱いオープンソース
今熱いオープンソース
 
livedoor における Twitter 活用事例と個人的趣味な小ネタたちのご紹介
livedoor における Twitter 活用事例と個人的趣味な小ネタたちのご紹介livedoor における Twitter 活用事例と個人的趣味な小ネタたちのご紹介
livedoor における Twitter 活用事例と個人的趣味な小ネタたちのご紹介
 
Minou Minou ! Les chat(bot)s continuent leur invasion de l'INTERNET
Minou Minou ! Les chat(bot)s continuent leur invasion de l'INTERNETMinou Minou ! Les chat(bot)s continuent leur invasion de l'INTERNET
Minou Minou ! Les chat(bot)s continuent leur invasion de l'INTERNET
 
Atom Text Editor: Resistance is Futile
Atom Text Editor: Resistance is FutileAtom Text Editor: Resistance is Futile
Atom Text Editor: Resistance is Futile
 
Historef: A Tool for Edit History Refactoring
Historef: A Tool  for Edit History RefactoringHistoref: A Tool  for Edit History Refactoring
Historef: A Tool for Edit History Refactoring
 
地球で一番熱いライブラリ
地球で一番熱いライブラリ地球で一番熱いライブラリ
地球で一番熱いライブラリ
 
SRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfSRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdf
 
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmIETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for Students
 
An overview of open source in east asia
An overview of open source in east asiaAn overview of open source in east asia
An overview of open source in east asia
 
Matcha
MatchaMatcha
Matcha
 
Eclipse Demo Camp 2010 - EGit
Eclipse Demo Camp 2010 - EGitEclipse Demo Camp 2010 - EGit
Eclipse Demo Camp 2010 - EGit
 
Java Empowered by Jython
Java Empowered by JythonJava Empowered by Jython
Java Empowered by Jython
 
Case Study: Large Scale Deployment for Machine Learning with Highspeed Storage
Case Study: Large Scale Deployment for Machine Learning with Highspeed StorageCase Study: Large Scale Deployment for Machine Learning with Highspeed Storage
Case Study: Large Scale Deployment for Machine Learning with Highspeed Storage
 
Realities of Mainlining -- Case of the TOMOYO Linux project
Realities of Mainlining -- Case of the TOMOYO Linux projectRealities of Mainlining -- Case of the TOMOYO Linux project
Realities of Mainlining -- Case of the TOMOYO Linux project
 

Más de Yusuke Yamamoto

Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpTwitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
 
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
 
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
 
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
 
テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjugテンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
 
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計  #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring 失敗から学ぶAPI設計  #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
Yusuke Yamamoto
 
HerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #wazaHerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #waza
Yusuke Yamamoto
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
Yusuke Yamamoto
 
Twitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hackTwitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hack
Yusuke Yamamoto
 
Twitter Cards #twtr_hack
Twitter Cards #twtr_hackTwitter Cards #twtr_hack
Twitter Cards #twtr_hack
Yusuke Yamamoto
 
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudyスローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
Yusuke Yamamoto
 

Más de Yusuke Yamamoto (20)

株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
 
これからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapyこれからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapy
 
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
 
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
 
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugExcel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
 
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackTwitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hack
 
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai 株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
 
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjugBotを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
 
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpTwitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
 
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
 
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp
 
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
 
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumiJavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
 
テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjugテンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjug
 
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計  #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring 失敗から学ぶAPI設計  #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
 
HerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #wazaHerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #waza
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
 
Twitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hackTwitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hack
 
Twitter Cards #twtr_hack
Twitter Cards #twtr_hackTwitter Cards #twtr_hack
Twitter Cards #twtr_hack
 
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudyスローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

2011 02-25-jenkinsci study

  • 1. Jenkins 2011/2/25 @yusukey http://samuraism.jp/ @yusukey Copyright(c) Yusuke Yamamoto All rights reserved.
  • 2. • Twitter4J • Jenkins • • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 3. Twitter4J Copyright(c) Yusuke Yamamoto All rights reserved.
  • 4. Java Twitter API 30 •JDK1.4.2 •Google App Engine • Android LOC: 5.3 Copyright(c) Yusuke Yamamoto All rights reserved.
  • 5. Twitter4J IntelliJ IDEA: github / Jira JUnit: Maven: Jira: issue Copyright(c) Yusuke Yamamoto All rights reserved.
  • 6. Twitter4J Maven Central Repository 2008 6 Hudson / Jenkins: CI 2009 3 2011 2 github: 2009 4 Sonatype Nexus: Maven 2010 1 Copyright(c) Yusuke Yamamoto All rights reserved.
  • 7. Copyright(c) Yusuke Yamamoto All rights reserved.
  • 8. Twitter4J release:perform git push origin master oss.sonatype.org service hook promote CI github.com repo1.maven.org Copyright(c) Yusuke Yamamoto All rights reserved.
  • 9. 2007 3 Copyright(c) Yusuke Yamamoto All rights reserved.
  • 10. 2010 10 2 Copyright(c) Yusuke Yamamoto All rights reserved.
  • 11. • Twitter4J 2.1.5 • OAuth 401:Authentication credentials were missing or incorrect. Copyright(c) Yusuke Yamamoto All rights reserved.
  • 12. Copyright(c) Yusuke Yamamoto All rights reserved.
  • 13. StringUtil.split() • OAuth public static String[] split(String str, String separator){ String[] returnValue; int index; if(-1 == str.indexOf(separator)){ returnValue = new String[0]; }else{ ... StringUtil.split(“foo,bar”,”,”); » {“foo”, “bar”} StringUtil.split(“foobar”,”,”); » new String[0] Copyright(c) Yusuke Yamamoto All rights reserved.
  • 14. StringUtil.split • String#split • J2ME String#split(@since JDK1.4) • J2ME JDK JDK1.3(?) Caused by: java.lang.NoSuchMethodError: java.lang.String: method split(Ljava/lang/String;)[Ljava/lang/String; not found at twitter4j.conf.PropertyConfiguration.setFieldsWithTreePath (Ljava/util/Properties;Ljava/lang/String;)V (PropertyConfiguration.java:196) at twitter4j.conf.PropertyConfiguration.<init>(Ljava/lang/ String;)V(PropertyConfiguration.java:121) Copyright(c) Yusuke Yamamoto All rights reserved.
  • 15. Jenkins Copyright(c) Yusuke Yamamoto All rights reserved.
  • 16. Jenkins Copyright(c) Yusuke Yamamoto All rights reserved.
  • 17. Twitter J • : 2010 8 Basic Copyright(c) Yusuke Yamamoto All rights reserved.
  • 18. TestCase TwitterTestUnit before BasicTest OAuthTest Basic OAuth after Maven TwitterTestUnit OAuth Copyright(c) Yusuke Yamamoto All rights reserved.
  • 19. fail : Twitter API API TwitterTestUnit AsyncTwitterTest fail Copyright(c) Yusuke Yamamoto All rights reserved.
  • 20. Copyright(c) Yusuke Yamamoto All rights reserved.
  • 21. • fail • age Copyright(c) Yusuke Yamamoto All rights reserved.
  • 22. • • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 23. Copyright(c) Yusuke Yamamoto All rights reserved.