블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
05-20 02:12
 

달력

« » 2024.5
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
 

최근에 올라온 글

최근에 달린 댓글

개인적인 정리용으로...

출처: http://wiki.alfresco.com/wiki/Web_Scripts


기본


  • shortname: 사람이 읽을 수 있는 Web Script 이름
  • description (선택적인): Web Script 설명
  • url (하나 혹은 여러 개): Web Script가 바인딩되는 URI 템플릿.
  • format (선택적인): 응답의 content-type URI를 통해 어떻게 지정할 수 있는지를 제어
    • argument 는 query string 파라미터로 content-type 을 지정
      • ex) /helloworld?to=dave&format=xml
    • extension 은 URI extension 으로 content-type 을 지정
      • ex) /hello/world.xml?to=dave
    • any 는 위의 둘 중 하나가 사용될 수 있음
    • 지정되지 않으면 기본 값은 any 로 설정
  • authentication (선택적인): 인증 레벨이 필요할 경우 사용
    • none 은 인증이 필요 없음을 지정
    • guest 은 최소한 guest 인증을 필요로 함
    • user 는 최소한 지정된 사용자 인증을 필요로 함
    • admin 은 최소한 지정된 관리자 인증을 필요로 함


확장


  • transaction (선택적인): 트랜잭션 레벨을 지정
    • none 은 트랜잭션이 필요 없음을 지정
    • required 는 트랜잭션이 필요함을 지정
    • requiresnew 는 새로운 트랜잭션이 필요함을 지정
    • 지정되지 않으면 기본 값은 none 으로 설정
  • family (선택적인): 유사하거나 관련이 있는 web scripts 들을 분류하기 위한 태그
  • cache (선택적인): 캐싱 레벨을 지정
    • never (선택적인): 캐싱을 모두 적용해야 하는지 여부를 지정
      • true (기본 값) 는 web script 의 응답이 캐시되지 않음을 지정
      • false 는 web script 의 응답이 캐시할 수 있음을 지정
    • public (선택적인): 인증 응답이 공개 캐시에 캐시해야 하는지 여부를 지정
      • true (기본 값) / false
    • mustrevalidate (선택적인): 캐시가 freshness 를 보장하기 위해 web scritp 응답의 버전을 재검증해야 하는지 여부를 지정
      • true (기본 값) / false
  • negotiate (0개 이상): Accept 헤더 MIME-type 과 응답의 특정 web script 형식의 연관
  • kind (선택적인): web script 의 종류 재정의를 위한 식별
  • lifecycle (선택적인): web script 의 라이프사이클을 지정
    • none 은 web script 가 라이프사이클의 일부가 아님을 지정
    • sample 은 web script 가 샘플로 만들어졌으며, 제품으로 사용하지 않음을 지정
    • draft 는 web script 가 실험 중이거나 변경/정지 될 수 있음을 지정
    • public_api 는 Alfresco 의 공개 API 이며, 안정적이고 잘 테스트되었음을 지정
    • draft_public_api 는 공개 API가 될 것이지만, 실험 중이거나 변경/정지 될 수 있음을 지정
    • deprecated 는 향후 버전에서 제거될 수 있으니 사용을 피하도록 함을 지정
    • internal 은 Alfresco 내부에서만 사용됨을 지정




Posted by 자수씨
, |

아마존에서 어그스프레이를 주문했는데 뚜껑이 좀 열려서 내용물이 약간 새어나옴 ㅠ_ㅠ...

환불을 위해 영작을 또 시작해야 한다는...




Posted by 자수씨
, |

룸밴드에서 제일 중요한 고무줄을 구입했습니다. 국내에서는 구매가 어렵고, 해외에서 사기에는 국제배송비가 부담되어서 AliExpress 에서 구매하였습니다.





배송되는데까지는 3주가 걸렸습니다. 600개 x 10봉지, 총 6000개에 $20.25, 무료배송입니다.


현재 해당 셀러는 판매를 하지 않네요;;; 다른 셀러들을 찾아보면 저렴한 가격에 구입이 가능할 듯 합니다.





Posted by 자수씨
, |

/share/site_index.jsp

JAVA/Alfresco / 2013. 12. 10. 11:57


Presets에 정의된 컴포넌트가 생성되는 시점을 못찾아서 삽질을 했었는데, 드디어 발견했다.


[installLocation]\tomcat\webapps\share\sire_index.jsp

<%@ page import="org.alfresco.web.site.*" %>

<%@ page import="org.springframework.extensions.surf.*" %>

<%@ page import="org.springframework.extensions.surf.site.*" %>

<%@ page import="org.springframework.extensions.surf.util.*" %>

<%@ page import="java.util.*" %>

<%

   // retrieve user name from the session

   String userid = (String)session.getAttribute(SlingshotUserFactory.SESSION_ATTRIBUTE_KEY_USER_ID);

   

   // test user dashboard page exists?

   RequestContext context = (RequestContext)request.getAttribute(RequestContext.ATTR_REQUEST_CONTEXT);

   if (context.getObjectService().getPage("user/" + userid + "/dashboard") == null)

   {

      // no user dashboard page found! create initial dashboard for this user...

      Map<String, String> tokens = new HashMap<String, String>();

      tokens.put("userid", userid);

      FrameworkUtil.getServiceRegistry().getPresetsManager().constructPreset("user-dashboard", tokens);

   }

   

   // redirect to site or user dashboard as appropriate

   String siteName = request.getParameter("site");

   if (siteName == null || siteName.length() == 0)

   {

      // forward to user specific dashboard page

      response.sendRedirect(request.getContextPath() + "/page/user/" + URLEncoder.encode(userid) + "/dashboard");

   }

   else

   {

      // forward to site specific dashboard page

      response.sendRedirect(request.getContextPath() + "/page/site/" + URLEncoder.encode(siteName) + "/dashboard");

   }

%>



위의 소스에서 수행하는 작업은 "userid"를 세션에서 조회하여 해당 페이지가 존재하는지를 체크하고 없다면 "PresetsManager"를 통해서 "preset"를 구성한다. 그 후, 해당 페이지로 리다이렉트,,,


가장 중요한건 FrameworkUtil.getServiceRegistry().getPresetsManager().constructPreset("user-dashboard", tokens); 를 발견했다거...




Posted by 자수씨
, |

Spring Surf Presets

JAVA/Alfresco / 2013. 12. 10. 11:51

http://blogs.alfresco.com/wp/developer/2011/11/01/spring-surf-presets/ 를 이해한대로 정리해봅니다.

배경

대시보드와 같이 사용자 별로 유니크한 페이지에서 사용자가 최초로 접속할 때 생성되어야 하는 것들은 "presets"을 이용한다.


Presets는 "spring-surf-presets-context.xml"에 "org.springframework.extensions.surf.PresetsManager" 클래스를 통해 관리된다.


기본적으로 "presets.xml" 는 "classes/alfresco/site-data/presets" 이나 "classes/alfresco/web-extension/site-data/presets" 에 위치한다. 기본적인 구조는 아래와 같다.


Presets 예시

PresetsManager 빈은 "constructPresets" 메소드를 호출하여 Presets 환경을 설정한다. 다른 방법으로는 custom Spring Surf JSP 태그를 이용하는 것이다. 이 방법은 아래와 같이 사용할 수 있다.


preset은 다수의 인스턴스를 생성하기 원하는 objects를 초기 정의 시에만 제공되어 진다. 


"source-id" 속성을 정의하여 컴포넌트의 scope를 설정할 수 있다.


Presets Manager 대안

Presets Manager를 커스터마이징 하기를 원한다면 Spring Surf FVT application을 사용한다.


"PresetsManager"는 "ModelObjects"를 생성하고 저장하는 "ModelObjectService"를 필요로 한다. 기본적으로 "PresetsManager"는 로컬 파일 시스템에 접근하는 것이 포함되어 있지 않은 "MultiObjectServer"를 사용한다. "ModelObjectService"는 "Store"를 필요로 하는 "Persister"를 필요로 하는 "PersisterService"를 필요로 한다.


기본 "PresetsManager"를 오버라이드하고 "ModelObjectService"가 참조되기를 보장한다.


마지막으로 새로운 persist를 사용할 수 있도록 추가하는 기본 "Autowire" 서비스를 오버라이드 한다.



흠... 일단은 뭔말인지는 알겠음...


Posted by 자수씨
, |

아래 배송 조회 현황은 2013년 11월 13일 08:42 에 주문된 상품에 대한 현황입니다.


1. 주문에서 중국 우체국 접수까지는 8일이 걸렸습니다.

2. 접수에서 발송준비까지는 3일이 걸렸습니다.

3. 중국에서 발송하여 한국에 도착하기까지는 4일이 걸렸습니다.

4. 한국에 도착하여 배송을 받을 때까지는 1일이 걸렸습니다.




주말을 포함해서 대략 3주의 기간이 소요됩니다.



아래 배송 조회 현황은 2013년 11월 24일 02:40 에 주문된 상품에 대한 현황입니다. 위와 같이 진행된다면 12월 9일 인계를 예상합니다. 정확하게 12월 9일에 받았습니다. ㅎㅎㅎ



배송조회는 http://ems.epost.go.kr/comm.RetrievePostagEMSSrvcCenter.postal 에서 우편물종류를 국제등기로 선택하고 검색합니다.




Posted by 자수씨
, |

소통이란

주절주절 / 2013. 12. 3. 10:38

상대방 말을 들어주는 거랍니다. 1시간 동안 아무런 반박없이 1시간 동안 들어줄 성인은 과연 있을까요?



Posted by 자수씨
, |

당나귀...

취미생활/Loom Band / 2013. 11. 29. 15:25



완전 난이도 최상급...



결과는...





Posted by 자수씨
, |

비싼 만보기 "Fitbit Force"가 도착했습니다. 한때 아픔을 주었던 Brookstone,,, 재도전에는 성공했습니다.







제품 구성은 보이는대로, "Fitbit Force", "충전케이블", "동글", "허접한설명서" 입니다.



앱이랑 블루투스로 바로바로 정보를 sync 시킵니다.




내일 아침 알람을 얼마나 잘 해주는지 체크를 해볼랍니다.






Posted by 자수씨
, |
















패턴을 집중공략 해봐야겠는걸?


http://www.rainbowloom.com/instruction.html






Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백