OSGiサービスのプロパティマップへのポートレット記述子
ここでは、OSGiポートレットを発行するためのOSGiサービスプロパティへのポートレットXML記述子の値のマップを示します。 プロパティは、ポートレット設定を一元化および簡素化します。 これらは通常、キーと値のペアとして、またはより一般的にはマップのようなオブジェクトとして表されます。
プロパティキーは、基本的にXML記述子をフラットにしたものですが、記述子の名前に似ています。
マッピングは、記述子タイプごとに編成されています。
-
標準ポートレット記述子。 プロパティキーは、プリフィックス
javax.portletを使用します。 -
Liferay記述子記述子。 プロパティキーは、プリフィックス
com.liferay.portletを使用します。 Liferay 記述子は記述子ファイル名によってさらにグループ化されます。liferay-display.xmlliferay-portlet.xml
標準のポートレット記述子マッピングが最初です。
ポートレット記述子のマッピング
注意: 簡潔にするために、 ポートレット XSD 4 から派生した XPath 表記が使用されています。
| portlet.xml XPath | OSGiポートレットサービスプロパティ |
|---|---|
/portlet-app/container-runtime-option | portlet-appスコープではサポートされていません |
/portlet-app/custom-portlet-mode | サポートされていません |
/portlet-app/custom-window-state | サポートされていません |
/portlet-app/default-namespace | javax.portlet.default-namespace=<String> |
/portlet-app/event-definition | javax.portlet.event-definition=<QNameLocalPart>;<QNameURI>[;<PayloadType>][,<AliasQNameLocalPart>;<AliasQNameURI>] 2 |
/portlet-app/filter/portlet-app/filter/init-param/name/portlet-app/filter-mapping | 3javax.portlet.init-param.<name>=<value> 3、 93 |
/portlet-app/public-render-parameter | サポートされていません |
/portlet-app/resource-bundle | portlet-appスコープではサポートされていません |
/portlet-app/security-constraint | サポートされていません |
/portlet-app/user-attribute | サポートされていません |
/portlet-app/version | javax.portlet.version=<value> |
/portlet-app/portlet/async-supported | javax.portlet.async-supported=<boolean> |
/portlet-app/portlet/cache-scope | サポートされていません |
/portlet-app/portlet/container-runtime-option | javax.portlet.container-runtime-option.<name>=<value> 2 |
/portlet-app/portlet/dependency | javax.portlet.dependency=<name>;<scope>;<version> 2、 6 |
/portlet-app/portlet/description | javax.portlet.description=<String> |
/portlet-app/portlet/display-name | javax.portlet.display-name=<String> |
/portlet-app/portlet/expiration-cache | javax.portlet.expiration-cache=<int> |
/portlet-app/portlet/init-param/name | javax.portlet.init-param.<name>=<value> |
/portlet-app/portlet/listener | javax.portlet.listener=<listener-class>;<ordinal> 2、8 |
/portlet-app/portlet/multipart-config/file-size-threshold | javax.portlet.multipart.file-size-threshold=<Integer> |
/portlet-app/portlet/multipart-config/location | javax.portlet.multipart.location=<String> |
/portlet-app/portlet/multipart-config/max-file-size | javax.portlet.multipart.max-file-size=<Long> |
/portlet-app/portlet/multipart-config/max-request-size | javax.portlet.multipart.max-request-size=<Long> |
/portlet-app/portlet/portlet-class | 1 |
/portlet-app/portlet/portlet-info/keywords | javax.portlet.info.keywords=<String> |
/portlet-app/portlet/portlet-info/short-title | javax.portlet.info.short-title=<String> |
/portlet-app/portlet/portlet-info/title | javax.portlet.info.title=<String> |
/portlet-app/portlet/portlet-name 10 | javax.portlet.name=<String> 10 |
/portlet-app/portlet/portlet-preferences | javax.portlet.preferences=<String>または javax.portlet.preferences=classpath:<path_to_file_in_jar> |
/portlet-app/portlet/portlet-preferences/preferences-validator | javax.portlet.preferences-validator=<String> 1 |
/portlet-app/portlet/resource-bundle | javax.portlet.resource-bundle=<String> |
/portlet-app/portlet/security-role-ref | javax.portlet.security-role-ref=<String>[,<String>]2 |
/portlet-app/portlet/supported-locale | javax.portlet.supported-locale=<String> 2 |
/portlet-app/portlet/supported-processing-event | javax.portlet.supported-processing-event=<QNameLocalPart> または javax.portlet.supported-processing-event=<QNameLocalPart>;<QNameURI> 2 |
/portlet-app/portlet/supported-public-render-parameter | javax.portlet.supported-public-render-parameter=<String>2 |
/portlet-app/portlet/supported-publishing-event | javax.portlet.supported-publishing-event=<QNameLocalPart> または javax.portlet.supported-publishing-event=<QNameLocalPart>;<QNameURI> 2 |
/portlet-app/portlet/supports/mime-type | サポートされていません |
/portlet-app/portlet/supports/portlet-mode | javax.portlet.portlet-mode=<mime-type>;<portlet-mode>[,<portlet-mode>]* |
/portlet-app/portlet/supports/window-state | javax.portlet.window-state=<mime-type>;<window-state>[,<window-state>]* |
Liferay記述子のマッピング
Liferayディスプレイ
| liferay-display.xml XPath | OSGiポートレットサービスプロパティ |
|---|---|
/display/category[@name] | com.liferay.portlet.display-category=<value> |
Liferayポートレット
注意: 簡潔にするために、 Liferay Portlet 5 から派生した XPath 表記が使用されています。
| liferay-portlet.xml XPath | OSGi Liferayポートレットサービスプロパティ |
|---|---|
/liferay-portlet-app/portlet/action-timeout | com.liferay.portlet.action-timeout=<int> |
/liferay-portlet-app/portlet/action-url-redirect | com.liferay.portlet.action-url-redirect=<boolean> |
/liferay-portlet-app/portlet/active | com.liferay.portlet.active=<boolean> |
/liferay-portlet-app/portlet/add-default-resource | com.liferay.portlet.add-default-resource=<boolean> |
/liferay-portlet-app/portlet/ajaxable | com.liferay.portlet.ajaxable=<boolean> |
/liferay-portlet-app/portlet/application-type | com.liferay.portlet.application-type=full-page-application または com.liferay.portlet.application-type=widget2 |
/liferay-portlet-app/portlet/asset-renderer-factory | 3 |
/liferay-portlet-app/portlet/atom-collection-adapter | 3 |
/liferay-portlet-app/portlet/autopropagated-parameters | com.liferay.portlet.autopropagated-parameters=<String>2 |
/liferay-portlet-app/portlet/configuration-action-class | 3 |
/liferay-portlet-app/portlet/configuration-path | サポートされていません |
/liferay-portlet-app/portlet/control-panel-entry-category | com.liferay.portlet.control-panel-entry-category=<String> |
/liferay-portlet-app/portlet/control-panel-entry-class | 3 |
/liferay-portlet-app/portlet/control-panel-entry-weight | com.liferay.portlet.control-panel-entry-weight=<double> |
/liferay-portlet-app/portlet/css-class-wrapper | com.liferay.portlet.css-class-wrapper=<String> |
/liferay-portlet-app/portlet/custom-attributes-display | 3 |
/liferay-portlet-app/portlet/ddm-display | 3 |
/liferay-portlet-app/portlet/facebook-integration | サポートされていません |
/liferay-portlet-app/portlet/footer-portal-css | com.liferay.portlet.footer-portal-css=<String>2 |
/liferay-portlet-app/portlet/footer-portal-javascript | com.liferay.portlet.footer-portal-javascript=<String>2 |
/liferay-portlet-app/portlet/footer-portlet-css | com.liferay.portlet.footer-portlet-css=<String>2 |
/liferay-portlet-app/portlet/footer-portlet-javascript | com.liferay.portlet.footer-portlet-javascript=<String>2 |
/liferay-portlet-app/portlet/friendly-url-mapper-class | 3 |
/liferay-portlet-app/portlet/friendly-url-mapping | com.liferay.portlet.friendly-url-mapping=<String> |
/liferay-portlet-app/portlet/friendly-url-routes | com.liferay.portlet.friendly-url-routes=<String> |
/liferay-portlet-app/portlet/header-portal-css | com.liferay.portlet.header-portal-css=<String>2 |
/liferay-portlet-app/portlet/header-portal-javascript | com.liferay.portlet.header-portal-javascript=<String>2 |
/liferay-portlet-app/portlet/header-portlet-css | com.liferay.portlet.header-portlet-css=<String>2 |
/liferay-portlet-app/portlet/header-portlet-javascript | com.liferay.portlet.header-portlet-javascript=<String>2 |
/liferay-portlet-app/portlet/header-request-attribute-prefix | com.liferay.portlet.header-request-attribute-prefix=<String> 7 |
/liferay-portlet-app/portlet/header-timeout | header-timeout=<int> |
/liferay-portlet-app/portlet/icon | com.liferay.portlet.icon=<String> |
/liferay-portlet-app/portlet/include | com.liferay.portlet.include=<boolean> |
/liferay-portlet-app/portlet/indexer-class | 3 |
/liferay-portlet-app/portlet/instanceable | com.liferay.portlet.instanceable=<boolean> |
/liferay-portlet-app/portlet/layout-cacheable | com.liferay.portlet.layout-cacheable=<boolean> |
/liferay-portlet-app/portlet/maximize-edit | com.liferay.portlet.maximize-edit=<boolean> |
/liferay-portlet-app/portlet/maximize-help | com.liferay.portlet.maximize-help=<boolean> |
/liferay-portlet-app/portlet/open-search-class | 3 |
/liferay-portlet-app/portlet/parent-struts-path | com.liferay.portlet.parent-struts-path=<String> |
/liferay-portlet-app/portlet/partial-action-serve-resource | com.liferay.portlet.partial-action-serve-resource=<boolean> |
/liferay-portlet-app/portlet/permission-propagator | 3 |
/liferay-portlet-app/portlet/poller-processor-class | 3 |
/liferay-portlet-app/portlet/pop-message-listener-class | 3 |
/liferay-portlet-app/portlet/pop-up-print | com.liferay.portlet.pop-up-print=<boolean> |
/liferay-portlet-app/portlet/portlet-data-handler-class | 3 |
/liferay-portlet-app/portlet/portlet-dependency-css-enabled | com.liferay.portlet.portlet-dependency-css-enabled=<boolean> |
/liferay-portlet-app/portlet/portlet-dependency-javascript-enabled | com.liferay.portlet.dependency-javascript-enabled=<boolean> |
/liferay-portlet-app/portlet/portlet-layout-listener-class | 3 |
/liferay-portlet-app/portlet/portlet-name | サポートされていません |
/liferay-portlet-app/portlet/portlet-url-class | 3 |
/liferay-portlet-app/portlet/preferences-company-wide | com.liferay.portlet.preferences-company-wide=<boolean> |
/liferay-portlet-app/portlet/preferences-owned-by-group | com.liferay.portlet.preferences-owned-by-group=<boolean> |
/liferay-portlet-app/portlet/preferences-unique-per-layout | com.liferay.portlet.preferences-unique-per-layout=<boolean> |
/liferay-portlet-app/portlet/private-request-attributes | com.liferay.portlet.private-request-attributes=<boolean> |
/liferay-portlet-app/portlet/private-session-attributes | com.liferay.portlet.private-session-attributes=<boolean> |
/liferay-portlet-app/portlet/remoteable | サポートされていません |
/liferay-portlet-app/portlet/render-timeout | com.liferay.portlet.render-timeout=<int> |
/liferay-portlet-app/portlet/render-weight | com.liferay.portlet.render-weight=<int> |
/liferay-portlet-app/portlet/requires-namespaced-parameters | com.liferay.portlet.requires-namespaced-parameters=<boolean> |
/liferay-portlet-app/portlet/restore-current-view | com.liferay.portlet.restore-current-view=<boolean> |
/liferay-portlet-app/portlet/scheduler-entry | 3 |
/liferay-portlet-app/portlet/scopeable | com.liferay.portlet.scopeable=<boolean> |
/liferay-portlet-app/portlet/show-portlet-access-denied | com.liferay.portlet.show-portlet-access-denied=<boolean> |
/liferay-portlet-app/portlet/show-portlet-inactive | com.liferay.portlet.show-portlet-inactive=<boolean> |
/liferay-portlet-app/portlet/single-page-application | com.liferay.portlet.single-page-application=<boolean> |
/liferay-portlet-app/portlet/social-activity-interpreter-class | 3 |
/liferay-portlet-app/portlet/social-request-interpreter-class | 3 |
/liferay-portlet-app/portlet/social-interactions-configuration | 3 |
/liferay-portlet-app/portlet/staged-model-data-handler-class | 3 |
/liferay-portlet-app/portlet/struts-path | com.liferay.portlet.struts-path=<String> |
/liferay-portlet-app/portlet/system | com.liferay.portlet.system=<boolean> |
/liferay-portlet-app/portlet/template-handler | 3 |
/liferay-portlet-app/portlet/trash-handler | 3 |
/liferay-portlet-app/portlet/url-encoder-class | 3 |
/liferay-portlet-app/portlet/use-default-template | com.liferay.portlet.use-default-template=<boolean> |
/liferay-portlet-app/portlet/user-notification-definitions | 3 |
/liferay-portlet-app/portlet/user-notification-handler-class | 3 |
/liferay-portlet-app/portlet/user-principal-strategy | com.liferay.portlet.user-principal-strategy=<String> |
/liferay-portlet-app/portlet/virtual-path | com.liferay.portlet.virtual-path=<String> |
/liferay-portlet-app/portlet/webdav-storage-class | 3 |
/liferay-portlet-app/portlet/webdav-storage-token | webdav-storage-token=<string> WebDavStorage OSGiサービスプロパティで宣言されています |
/liferay-portlet-app/portlet/workflow-handler | 3 |
/liferay-portlet-app/portlet/xml-rpc-method-class | 3 |
-
[1] ポートレットは具体的なオブジェクトとして登録されます。
-
[2] これらのプロパティの倍数を使用できます。 これにより、値の配列が生成されます。
-
[3] このタイプは OSGi サービスとして登録されています。
-
[4] https://xmlns.jcp.org/xml/ns/portlet/portlet-app_3_0.xsd
-
[6] 複数の
javax.portlet.dependencyプロパティを使用した例を以下に示します。旧:
<portlet> ... <dependency> <name>jquery</name> <scope>com.jquery</scope> <version>2.1.1</version> </dependency> <dependency> <name>jsutil</name> <scope>com.mycompany</scope> <version>1.0.0</version> </dependency> ... </portlet>新:
@Component( ... property = { ... "javax.portlet.dependency=jquery;com.jquery;2.1.1", "javax.portlet.dependency=jsutil;com.mycompany;1.0.0", ... }, service = Portlet.class ) public class MyPortlet extends GenericPortlet { ... } -
[7]
com.liferay.portlet.header-request-attribute-prefixプロパティの例を以下に示します。旧:
<portlet> ... <header-request-attribute-prefix>com.mycompany</header-request-attribute-prefix> ... </portlet>新:
@Component( property = { ... "javax.portlet.dependency=jsutil;com.mycompany;1.0.0", "com.liferay.portlet.header-request-attribute-prefix=com.mycompany", ... }, service = Portlet.class ) public class MyPortlet extends GenericPortlet { ... } -
[8]
javax.portlet.listenerプロパティの例を以下に示します。旧:
<portlet> ... <listener> <listener-class>com.mycompany.MyPortletURLGenerationListener</listener-class> <ordinal>1</ordinal> </listener> ... </portlet>新:
@Component( property = { ... "javax.portlet.listener=com.mycompany.MyPortletURLGenerationListener;1", ... }, service = Portlet.class ) public class MyPortlet extends GenericPortlet { ... } -
[9]
javax.portlet.init-paramプロパティは次のように宣言できます。@Component( ... property = { ... "javax.portlet.init-param.myInitParam=1234", ... }, service = PortletFilter.class ) public class MyFilter implements RenderFilter { ... } -
[10] Liferayはポートレットの名前に基づいて、各ポートレットのIDを作成します(すなわち、
liferay-portlet.xmlのportlet-name記述子またはjavax.portlet.nameOSGiサービスのプロパティ)。 ポートレット名にはダッシュ、ピリオド、スペースを使用できますが、これらの文字やその他のJavaScriptの安全でない文字は、ポートレットIDに使用される名前の値から取り除かれます。 したがって、削除される文字を考慮して、ポートレット名を一意なものにしてください。 そうしないと、既にデプロイ済みのポートレットと同じIDのポートレットをデプロイしようとすると、ポートレットのデプロイが失敗し、Liferayは次のメッセージを記録します。Portlet id [portletId] is already in use