Th uc Tính OnParentVersion

Một phần của tài liệu xay dung cms module cho he thong intranet cua cong ty tma-lu (Trang 100 - 105)

10. To phiê nb n( Versionin g)

10.11 Th uc Tính OnParentVersion

M i thành ph n (bao g m Node và các thu c tính) c a m t Node có m t tr ng thái cho bi t hành đ ng t ng ng x y ra đ i v i Node con hay thu c tính khi Node cha c a nó th c hi n vi c t o ra phiên b n trên Repository. Tr ng thái này đ c xác đnh b i thu c tính OnParentVersion trong PropertyDef hay trong ChildNodeDef đ c quy đnh b i lo i Node c a Node cha.

Xét ví d trong đó có Node N là m t Node có th t o ra phiên b n đ c (Versionable Node) trên m t Workspace W c a Repository R. Node N này có lo i Node T v i T là lo i Node con c a lo i Node nt:versionable và T cho phép N có thu c tính có tên P và Node con C.

các hành đ ng x y đ n cho P và C khi N t o ra phiên b n trên Repository tùy thu c vào thu c tính OnParentVersion trong PropertyDef c a P và trong ChildNodeDef c a C đ c quy đnh b i T.

Các giá tr có th có c a thu c tính OnParentVersion là

• COPY • VERSION

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

• INITIALIZE • COMPUTE • IGNORE • ABORT

Các giá tr c a thu c tính OnParentVersion này đ c quy đnh nh các h ng s trong l p OnParentVersionAction. javax.jcr.version. OnParentVersionAction int COPY int VERSION int INITIALIZE int COMPUTE int IGNORE int ABORT

B ng 2: Các h ng s trong giao di n javax.jcr.version.OnParentVersionAction

10.11.1 COPY

Khi g i ph ng th c chekin() c a N, C và toàn b các thành ph n con c a nó (bao g m Node con và các thu c tính con) s đ c sao chép vào vùng l u phiên b n nh là cây con c a VN. C và các thành ph n trong cây con c a nó s khơng có Version History c a riêng nó, do đó, C khơng c n ph i là Node có th t o phiên b n đ c (Versionable Node)

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

Khi g i ph ng th c restore c a N đ ph c h i l i tr ng thái VN, nh ng b n sao chép c a C và cây con c a nó đã đ c l u tr c đó (khi g i ph ng th c checkin) c ng s đ c ph c h i đ thay th C và cây con c a nó trên Workspace

10.11.2 VERSION

Khi g i ph ng th c chekin() c a N, VN s thêm vào m t tham chi u đ n Version History c a C. Do đó, đi u này c ng yêu c u C là m t Node có th t o ra phiên b n. N u C là Node không th t o ra phiên b n thì cách x lý c ng gi ng nh tr ng h p IGNORE.

Khi g i ph ng th c restore c a N đ ph c h i l i tr ng thái VN, n u trên Workspace hi n th i có s n m t Node t ng ng v i Version History c a C thì khi đó th hi n c a C này s tr thành Node con c a N. N u trên Workspace hi n th i khơng có Node nào (hay nói chính xác là th hi n nào) t ng ng v i Version History c a C thì m t phiên b n trên Version History c a C s đ c ph c h i l i nh là m t Node con c a N. Workspace trên đó N đ c ph c h i s quy t đnh xem phiên b n nào s đ c ph c h i và s quy t đnh này là do c u hình c a Workspace quy đnh.

10.11.3 INITIALIZE

Khi g i ph ng th c chekin() c a N, m t Node m i c a C s đ c t o ra và thêm vào vùng l u phiên b n c a Repository nh là Node con c a VN. Khi Node m i c a C đ c t o ra thì s kh i t o này c ng gi ng nh vi c kh i t o khi C đ c t o ra trên Workspace b ng cách thông th ng. Node m i c a C khơng có Version History, do đó C c ng khơng c n ph i là m t Node có th t o phiên b n.

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

Khi g i ph ng th c restore c a N đ ph c h i l i tr ng thái VN, Node con C c a VN s không đ c quan tâm, đi u đó có ngh a là Node C hi n t i có trên Workspace s gi nguyên tr ng thái, không b thay th b i Node con C c a VN.

10.11.4 COMPUTE

Khi g i ph ng th c chekin() c a N, m t Node m i c a C s đ c t o ra và thêm vào vùng l u phiên b n c a Repository nh là Node con c a VN. Khi Node m i c a C đ c t o ra thì s kh i t o này đ c quy đ nh b i các hàm kh i t o đ c đnh ngh a b i lo i Node c a C. Node m i c a C khơng có Version History, do đó C c ng khơng c n ph i là m t Node có th t o phiên b n.

Khi g i ph ng th c restore c a N đ ph c h i l i tr ng thái VN, Node con C c a VN s không đ c quan tâm, đi u đó có ngh a là Node C hi n t i có trên Workspace s gi nguyên tr ng thái, không b thay th b i Node con C c a VN.

10.11.5 IGNORE

Khi g i ph ng th c chekin() c a N, khơng có thơng tin nào c a C đ c l u trong VN.

Khi g i ph ng th c restore c a N đ ph c h i l i tr ng thái VN, Node con C

c a N s v n gi nguyên tr ng thái hi n t i.

10.11.6 ABORT

Khi g i ph ng th c chek-in c a N thì s phát sinh l i (ngo i l ). i u này cho th y khi m t Node cha có Node con có thu c tính OnParentVersion có giá tr FORBIDDEN / ABORT thì Node cha đó s khơng đ c quy n check-in.

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

10.12 Ví d v m t Repository có h tr t o phiên b n

Phát tri n CMS module cho h th ng Intranet cu Cơng ty TMA

Hình trên mơ t m t repository có h tr versioning và g m 2 workspace là WS1 và WS2. WS2 ch a node x khơng có m t version history nào trong version storage, do đó nó là nonversionable node

Version storage mô t các version history, m i verion history ch a 3 version c a các node 01, 02, và 03.

Một phần của tài liệu xay dung cms module cho he thong intranet cua cong ty tma-lu (Trang 100 - 105)

Tải bản đầy đủ (PDF)

(167 trang)