Whiteship's Note


[Spring 3.0 & Atlassian] RestTemplate으로 Confluence의 Space 목록 가져오기

모하니?/Coding : 2010.03.26 00:51


public class ConfluenceRestTest {

    public static final String SPACE_LIST_URL = "http://dev.springsprout.org/wiki/rest/prototype/1/space?os_authType=basic";

    /**
     */
    @Test
    public void testGetWikiSpaceList() {
        RestTemplate restTemplate = new RestTemplate();
        String result = restTemplate.execute(SPACE_LIST_URL, HttpMethod.GET,
                new JsonRestRequestCallBack(),
                new BodyToStringRestResponseExtractor());
        System.out.println(result);
    }

    static class JsonRestRequestCallBack implements RequestCallback {
        public void doWithRequest(ClientHttpRequest clientHttpRequest) throws IOException {
            HttpHeaders headers = clientHttpRequest.getHeaders();
            headers.add("Authorization", "Basic XXXXXXXX(base64 encoded username:passwd)");
            headers.add("Accept", "application/json");
        }
    }

    static class BodyToStringRestResponseExtractor implements ResponseExtractor<String> {

        public String extractData(ClientHttpResponse clientHttpResponse) throws IOException {
            return convertStreamToString(clientHttpResponse.getBody());
        }
        ....
    }

}

봄싹 위키를 컨플루언스로 바꾸었기 때문에 기존 메뉴를 컨플루언스에 있는 정보를 끌어다 보여주는 것으로 바꾸려고 합니다. 그래서 파일럿(?) 겸사해서 코딩을 해봤는데 잘 됐네요.

{"expand":"space","space":[{"name":"개발툴","key":"DTL","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/DTL"},"description":"개발툴 관련 내용을 정리하는 공간입니다."},{"name":"베타리딩","key":"BTR","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/BTR"},"description":"봄싹 베타리딩 관련 공간입니다."},{"name":"봄싹 Modules","key":"BSM","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/BSM"},"description":"봄싹 Module과 관련된 정보를 정리하는 공간입니다."},{"name":"봄싹 개발","key":"SSD","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/SSD"},"description":"봄싹에서 진행하는 개발과 관련된 정보를 정리하는 공간입니다."},{"name":"스프링 3.0 레퍼런스 번역","key":"SRK","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/SRK"},"description":"스프링 3.0 레퍼런스를 번역하는 공간입니다."},{"name":"스프링 시큐리티 3.0 레퍼런스 번역","key":"springsecurity","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/springsecurity"},"description":""},{"name":"스프링소스 블로그 번역","key":"SBK","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/SBK"},"description":"스프링소스 블로그를 번역하는 공간입니다."},{"name":"연습장","key":"ds","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/ds"},"description":"봄싹 위키 사용법을 익히는 공간입니다."},{"name":"자바","key":"JAVA","link":{"rel":"self","href":"http://dev.springsprout.org/wiki/rest/prototype/1/space/JAVA"},"description":"자바 학습 공간입니다."}]}

막상 해보고 나니 고민이 생기네요. "저 작업을 뷰에서 할 것이냐 서버단에서 할 것이냐?"

뷰에서 하면 저 페이지로 이동 할 때 마다 요청을 보낼테니 Confluence 응답이 늦어지면 문제고 Confluence 입장에서 부담이 될 수도 있고, Confluence가 죽었을땐 위키 페이지까지 마비가 되지만 구현하는 입장에선 뷰 코드만 지지고 볶으면 되니까 간단할 것 같은데..

서버단에서 하면 DB에 저장해두거나 캐싱을 해둘 수 있으니 Confluence의 부담도 덜고 Confluence가 죽어도 위키 정보는 보여줄 수 있지만 구현하면서 이것 저것 신경쓸게 많아지네;; 정보를 읽어올 주기, 배치로 돌릴 것이냐? JSON말고 XML로 받아온다음 OXM을 이용해서 XML->Object로 바로 변환해버리는 ResponseExtracter를 만들까나.. 캐싱은 이미 Ehcache를 하이버 땜시 쓰고 있으니 캐싱도 해보고?

흠.. 서버단에서 할까나 어쩔까나.. Confluence가 죽어있으면 어차피 봄싹 Wiki에서 목록 본다음에 링크 클릭해도 이동을 못하니까 그냥.. 뷰에서 읽을까나.. +_+ 그럼 나 머하러 RestTemplate 사용한거지.. @_@.. 기왕에 썼으니까 OXM도 적용해서 서버 단에서 해버렷?ㅋ 
top

Write a comment.


[Atlassian Connector] IntelliJ 플러그인

Good Tools : 2009.11.05 22:57


 아틀라시안 제품들과 IntelliJ 플러그인을 연동했는데... 이건 뭐.. 최강조합입니다. 마치 디아블로에서 큐브에 아이템 몇개 넣고 돌려서 좀 더 희귀한 아이템을 만들어 내듯이.. 지금 전 인텔리J와 아틀라시안 제품들을 조합해서 Agile 개발에 가장 적합한 개발 환경을 세팅했습니다.

인텔리J의 장점 중 하나를 꼽으라면 플러그인 설치가 편하고 안정적이라는 것을 꼽고 싶은데요. 안써본 분들에게 설명하자니 귀찮고, 써본분들에게는 딱히 설명드릴께 없기 때문에 패스하겠습니다.


저런식으로 설치한 아틀라시안 제품들과 연결을 해주고, 잘 쓰면 됩니다.


밤부 플러긴은 기본적으로 빌드가 성공했나 실패했나를 알려주는데, 맨 아래 녹색 모양의 조그만 아틀라시안 아니콘이 그 역할을 해줍니다.

그밖에 여러 기능들과 사용법은 아래 링크에 있습니다.

http://confluence.atlassian.com/display/IDEPLUGIN/Working+with+Bamboo+Builds+in+IDEA


지라 플러긴은 주로 이슈를 보고, 진행하거나, 멈추거나, 마무리 하거나, 새 이슈를 등록할 수 있습니다.

그밖에 여러 기능과 사용법은 아래 링크에 있습니다.

http://confluence.atlassian.com/display/IDEPLUGIN/Working+with+JIRA+Issues+in+IDEA

ps: 이클립스에서 IntelliJ로 갈아타길 정말 잘한것 같아요. 너무 안정적이에요. 인텔리J가 메모리 때문에 뻗는다 하더라도, 절대로 깨져버린 이클립스처럼 피곤하진 않습니다. 플러그인 설치도 간편하고 말이죠. 인텔리J 킹왕짱!!

내일은 Crucible과 FishEye도 설치하고 연동해야겠군요.
아.. 아틀라시안 제품 간에도 연동 시켜줘야겠네요.

top

Write a comment.


[GreenHopper] Atlassian JIRA의 애자일 개발 플러그인

Good Tools : 2009.11.05 08:57


http://www.atlassian.com/software/greenhopper/


스프링 이슈 트래커를 보다가 카드 모양으로 생긴 이슈 관리가 있길래 뭔가 봤더니, GreenHopper라는 플러그인이더군요. 완전히 새로운 UI로 이슈 관리를 할 수 있습니다. 드래그 앤 드랍으로 우선 순위를 변경한다던지, 카드 목록 화면에서 바로 바로 이슈를 수정한다던지 말이죠. 제가 궁금한건 기간과 난이도에 대한 추정을 하고, 그걸 통계내주는 기능이 있느냐인데.. 일단은 한번 설치해 봐야겠습니다.


top

  1. rudalson 2009.11.05 09:23 PERM. MOD/DEL REPLY

    와. 저희도 관심있는 플러그인이었는데 써보시고 포스팅 많이 해주세요 ^^

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2009.11.05 10:07 신고 PERM MOD/DEL

    넵! 일단은 JIRA 설치중입니다.

  2. Favicon of http://naucika.pe.kr BlogIcon naucika 2009.11.12 13:23 PERM. MOD/DEL REPLY

    무엇보다 직관적인 인터페이스가 정말 편하네요. 마치 무슨 놀이라도 하는듯한 착각이.. ;;

    Favicon of http://whiteship.me BlogIcon 기선 2009.11.12 18:03 PERM MOD/DEL

    네 ㅎㅎ 인터페이스를 무척 잘 만들었죠.

Write a comment.


[이직해야지] 들어가고 싶은 회사 Atlassian

모하니?/Thinking : 2009.10.21 16:13


http://seek.com.au/job/senior-java-developers/sydney-inner/16089383/88/1/



컨플루언스(위키), 지라(이슈트래커), 밤부(CI 툴), 클로버(커버리지 툴), 피쉬아이(소스코드 뷰어)를 만들고 가꾸고 있는 회사입니다. 하나같이 멋진 제품 들이죠. 최신버전 JIRA에는 Agile에서 사용하는 카드 형태의 이슈 관리도 지원하는 것 같은데... 참.. 발전이 끊이질 않네요.

열공해서 꼭 이직 해야겠습니다.

파이팅!!
top

  1. 머큐짱 2009.10.22 13:04 PERM. MOD/DEL REPLY

    파이팅이요!!

    Favicon of http://whiteship.me BlogIcon 기선 2009.10.22 16:18 PERM MOD/DEL

    시니어 개발자 말고 그냥 일반 개발자도 뽑더라구요. 파이팅이요.

  2. 송목 2010.03.10 18:16 PERM. MOD/DEL REPLY

    안녕하세요.오늘 들어와 지난 글을 보고 있는 1인입니다. 제가 시드니에 있을 때 뭣도 모르고 무작정 레쥬메넣었는데 사라라는 분이 전화주셨죠 "졸업하구 생각해봐라" 음... 헛물만 잔뜩 캐버렸네용. 음하핫

    Favicon of http://whiteship.me BlogIcon 기선 2010.03.10 20:22 PERM MOD/DEL

    오호.. 시드니에서 학교를 다니셨나봐요. 부럽 +_+

Write a comment.


Thank you. Atlassian!!

Good Tools : 2008.09.17 16:36


아뜰라시안한테 오픈소스 라이선스를 받았습니다. 꺄오~ Confluence, Jira, Bamboo, Clover. Crucible을 마음껏 이용할 수 있게 됐네요. 캬캬캬. 개인용은 언제나 공짜였지만, 사용자를 딱 2명으로 제한해둬서 정말 개인밖에 못 썼는데, 오픈소스 라이선스는 사용자가 무제한입니다.

OpenSprout를 공개할 날도 얼마 남지 않았네요. 이제 기반은 다 마련됐고, 코드랑, 예제까지 준비해뒀지만, 커스텀 태그 전면 교체 작업이 남아 있어서 좀 시간이 걸리 것 같습니다. :)
top

  1. Favicon of http://yunsunghan.tistory.com BlogIcon Max 2008.09.18 18:11 PERM. MOD/DEL REPLY

    OpenSprout 빨리 공개해 주세요...
    기대 잔뜩! 입니다. :)

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.09.18 21:08 신고 PERM MOD/DEL

    네.ㅋㅋ 커스텀 태그만 마무리 되면 공개할 생각입니다.

Write a comment.