블로그 이미지
Max.

calendar

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Notice

2010.08.04 10:29 개발관련

최근, 빌드를 하면,  로그에 새로운 Addon이  보인다.

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
...
[INFO] Spring Roo - Addon - Maven ............................ SUCCESS [0.764s]
[INFO] Spring Roo - Addon - JavaBean Information ............. SUCCESS [0.651s]
[INFO] Spring Roo - Addon - toString ......................... SUCCESS [0.921s]
[INFO] Spring Roo - Addon - JavaBean Method Manager .......... SUCCESS [0.669s]
[INFO] Spring Roo - Addon - Plural Details ................... SUCCESS [0.647s]
[INFO] Spring Roo - Addon - Property Files ................... SUCCESS [0.642s]
[INFO] Spring Roo - Addon - @Configurable Support ............ SUCCESS [0.639s]
[INFO] Spring Roo - Addon - Email ............................ SUCCESS [0.752s]
[INFO] Spring Roo - Addon - JPA .............................. SUCCESS [1.114s]
[INFO] Spring Roo - Addon - JMS .............................. SUCCESS [0.744s]
[INFO] Spring Roo - Addon - @RooSerializable Support ......... SUCCESS [0.656s]
[INFO] Spring Roo - Addon - Entity ........................... SUCCESS [0.868s]
[INFO] Spring Roo - Addon - Finder ........................... SUCCESS [0.862s]
[INFO] Spring Roo - Addon - Logging .......................... SUCCESS [0.739s]
[INFO] Spring Roo - Addon - Property Editor .................. SUCCESS [0.831s]
[INFO] Spring Roo - Addon - Test Data On Demand .............. SUCCESS [1.063s]
[INFO] Spring Roo - Addon - Automated Integration Testing .... SUCCESS [0.918s]
[INFO] Spring Roo - Addon - Backup ........................... SUCCESS [0.640s]
[INFO] Spring Roo - Addon - Web MVC Controller ............... SUCCESS [1.015s]
[INFO] Spring Roo - Addon - Web MVC JSP View ................. SUCCESS [1.322s]
[INFO] Spring Roo - Addon - Web MVC Embedded Extensions ...... SUCCESS [1.384s]

[INFO] Spring Roo - Addon - Spring Security .................. SUCCESS [0.873s]
[INFO] Spring Roo - Addon - Solr ............................. SUCCESS [1.119s]
[INFO] Spring Roo - Addon - Web - Flow ....................... SUCCESS [0.923s]
[INFO] Spring Roo - Addon - Web Selenium Test Generator ...... SUCCESS [0.891s]
[INFO] Spring Roo - Addon - Google Web Toolkit ............... SUCCESS [2.070s]
[INFO] Spring Roo - Addon - JDBC Driver Acquisition .......... SUCCESS [32.913s]
[INFO] Spring Roo - Addon - Database Reverse Engineering ..... SUCCESS [2.728s]
[INFO] Spring Roo - Addon - Creator .......................... SUCCESS [1.700s]
[INFO] Spring Roo - Annotations (ASLv2/GPLv3 Dual Licensed) .. SUCCESS [1:10.939s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 minutes 47 seconds
[INFO] Finished at: Wed Aug 04 08:56:47 KST 2010
[INFO] Final Memory: 78M/140M
[INFO] ------------------------------------------------------------------------

바로 Web MVC Embedded Extensions 이라는 addon인데, Spring Roo 1.1.0.M3 버전 부터 지원되는 기능이다.

무슨기능일까?

한마디로 외부 리소스를 연동하는 편리한 addon 명령어를 넣은 것이다.(이것이 의미하는 미래를 상상해보는 것도 재미 있을듯...) 현재 지원하는 리소스는 아래와 같다.


Video

  • YouTube
  • Google Video
  • Vimeo
  • Viddler
  • Screenr

Video Streaming

  • UStream
  • LiveStream

Photo Galleries

  • Flikr
  • Picasa

Documents

  • Google Presentations
  • Scribd
  • SlideShare
  • Google Maps
  • Google Wave
  • Twitter
  • Wikinvest

이런 리소스를 사용하게 해주는 명령은 아래와 같은데, 이중 generic은 자동으로 해당 리소스와 연결시켜 준다.

예를 들어 보자. 아래와 같은 평범한 Roo 스크립트를 실행하고, 웹에 띄우면?

project --topLevelPackage com.max.roo --projectName max-roo
web mvc embed generic --url http://twitter.com/#search?q=@heterosis
web mvc embed generic --url http://www.slideshare.net/yunsunghan/d-flexspring-blaze-ds-intergration

이런 화면이 나온다. (슬라이드쇼와 트윗터 슬라이딩이 잘된다.)


어떻게 작동할까?

소스 생성 로그를 보면 알수 있다. 안타갑게도, 관련 Java소스는 생성하지 않고, 입력 Param으로 구분만 한다. 해서, 생성되는 java코드는 없고, 해당 변수를 하드코딩하여 보여주는것이 전부다. 해서 로그도 간단하다.

com.max.roo roo> web mvc embed generic --url http://www.slideshare.net/yunsunghan/d-flexspring-blaze-ds-intergration
Created SRC_MAIN_WEBAPP\WEB-INF\tags\embed\document.tagx
Created SRC_MAIN_WEBAPP\WEB-INF\views\embed\slideshare.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\i18n\application.properties
Managed SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\embed\views.xml
Managed SRC_MAIN_WEBAPP\WEB-INF\spring\webmvc-config.xml

소스를 보면 대충 이렇다.
...
<jsp:output omit-xml-declaration="yes"/>
...
        <embed:microblogging id="twitter_@heterosis" searchTerm="@heterosis"/>
        <embed:document documentId="dflexspringblazedsintergration-100507033946-phpapp01" provider="slideshare"/>

붉은색 테크가 그 역할을 수행한다. <embed> 테그의 정의는 tags 폴더에 있는데, 대충 각각의 리소스를 출력하기 위한 Html 테그들이 있다. 아래는 그중 일부를 발췌...

  <c:when test="${provider eq 'slideshare'}">
   <object id="__sse4735954" width="545" height="400">
    <param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=${documentId}" />
    <param name="allowFullScreen" value="true"/>
    <param name="allowScriptAccess" value="always"/>
    <embed name="__sse4735954" width="545" height="400" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=${documentId}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed>
   </object>
  </c:when>

그래서?

대략, Web MVC Embedded Extensions 이라는 addon이 이정도 기능을 한다. 사실 이런것들은 일반적인 SI나 솔루션하고는 거리가 먼 기능들인데, 이양반들이 이렇게 넣은 이유가 있을듯 하다. 구글과의 관계도 그렇고, 해외에서의 Social 바람도 그렇고, 메이븐 멀티 모듈 지원의 어려움도 그렇고... 구글과 스프링소스가 큰(?) 꿈을 꾸고 있는듯 하다.... (Roo는 솔루션이나, SI, IT서비스 업체를 위한 툴이 아니것 같다는...)
저작자 표시
신고
posted by Max.