2013-03-03 49 views
0

我在WSO2文檔的任何地方都沒有發現任何信息。如何獲取WSO2註冊表資源的符號鏈接信息?

我已經從一個呼叫到UserRegistry.get(path)獲得的Resource對象,這個資源」的媒體類型(從resource.getMediaType()獲得被設置爲RegistryConstants.LINK_MEDIA_TYPE,表明它表示在註冊表中的符號鏈接的另一資源。

我想知道這個符號鏈接所指向的資源的原始媒體類型是什麼WSO2 GREG管理界面顯然能夠做到這一點 - 點擊資源上的Info按鈕顯示我正在尋找的媒體類型 - 但似乎沒有提供此信息的API調用。

回答

0

對於你的那一刻的目標使用屬性來獲取這些屬性。 。

registry.get( 「路徑到符號鏈接」)的GetProperties()

1)registry.actualpath:返回目標路徑

2)registry.targetpoint:返回目標路徑

3)registry.link:返回true/false,檢查給定路徑是否符號鏈接。

4)registry.author:資源的所有者。

當用戶刪除目標資源時,治理註冊表會自動刪除符號鏈接。 因此斷開的鏈接不存在。

+0

謝謝。我正在使用'registry.getMetaData(「符號鏈接路徑」),並沒有返回你提到的屬性。更改代碼以使用'registry.get(...)'使它工作。 – borice 2013-03-05 01:07:11

+0

順便說一下,有可能通過使2個符號鏈接指向相同的資源來獲取斷開的鏈接。當您刪除資源時,只有一個符號鏈接被刪除。另一個壞了。你不能在UI界面看到這個,但可以通過調用符號鏈接的父集合的'collection.getChildren()'看到它。 – borice 2013-03-05 01:42:05

+0

在WSO2 JIRA中提交了一個[bug報告](https://wso2.org/jira/browse/REGISTRY-1604)。 – borice 2013-03-05 01:58:05

0

發現如果resource.getMediaType()返回RegistryConstants.LINK_MEDIA_TYPE這意味着這是一個斷開的鏈接,它的目標(它指向的資源)已被刪除。

此外,發現,在G-註冊所有符號鏈接信息被存儲在以下注冊表位置: /_system/local/repository/components/org.wso2.carbon.registry/mount

在該位置中的每個條目表示符號鏈接,並且可以從獲得關於所述符號鏈接的信息與上述位置中的條目相關聯的屬性。這些特性包括:

  • author - 誰創建符號鏈接
  • path用戶 - 符號鏈接的位置
  • target - 符號鏈接
+0

爲了跟進,是否有任何API可以讓我獲得符號鏈接信息,而無需手動查找上述位置中的條目並解析屬性? – borice 2013-03-04 02:39:48

+0

我發現爲什麼在某些情況下,'resource.getMediaType()'返回'RegistryConstants.LINK_MEDIA_TYPE',在其他情況下它返回目標的媒體類型:當使用'resource = registry.get(「symlink_path」)'',然後'getMediaType ()'返回目標媒體類型;當使用'resource = registry.getMetaData(「symlink_path」)',那麼'getMediaType()'返回'RegistryConstants.LINK_MEDIA_TYPE'的值。區別在於如何獲得資源實例。 – borice 2013-03-05 00:42:29