OSGiサービスのプロパティマップへのポートレット記述子¶
ここでは、OSGiポートレットを発行するためのOSGiサービスプロパティへのポートレットXML記述子の値のマップを示します。 プロパティは、ポートレット設定を一元化および簡素化します。 これらは通常、キーと値のペアとして、またはより一般的にはマップのようなオブジェクトとして表されます。
プロパティキーは、基本的にXML記述子をフラットにしたものですが、記述子の名前に似ています。
マッピングは、記述子タイプごとに編成されています。
標準ポートレット記述子 。 プロパティキーは、プリフィックス
javax.portlet
を使用します。Liferay記述子の記述子 。 プロパティキーは、プリフィックス
com.liferay.portlet
を使用します。Liferay の記述子は、記述子ファイル名によってさらにグループ化されます。liferay-display.xml
liferay-portlet.xml
標準のポートレット記述子マッピングが最初です。
ポートレット記述子のマッピング¶
注: 簡単にするために、 ポートレットXSD 4 から派生したXPath記法を使用しています。
portlet.xml XPath |
OSGiポートレットサービスプロパティ |
---|---|
|
portlet-appスコープではサポートされていません |
|
サポートされていません |
|
サポートされていません |
|
|
|
|
|
|
|
サポートされていません |
|
portlet-appスコープではサポートされていません |
|
サポートされていません |
|
サポートされていません |
|
|
|
|
|
サポートされていません |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされていません |
|
|
|
|
Liferay記述子のマッピング¶
Liferayディスプレイ¶
liferay-display.xml XPath |
OSGiポートレットサービスプロパティ |
---|---|
|
|
Liferayポートレット¶
注: 簡単にするために、 Liferayポートレット 5 から派生したXPath記法を使用しています。
liferay-portlet.xml XPath |
OSGi Liferayポートレットサービスプロパティ |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされていません |
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされていません |
|
|
|
|
|
|
|
|
|
|
|
`com.liferay.portlet.friendly-url-mapping= |
` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされていません |
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされていません |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[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.name
OSGiサービスのプロパティ)。 ポートレット名にはダッシュ、ピリオド、スペースを使用できますが、これらの文字やその他のJavaScriptの安全でない文字は、ポートレットIDに使用される名前の値から取り除かれます。 したがって、削除される文字を考慮して、ポートレット名を一意なものにしてください。 そうしないと、既にデプロイ済みのポートレットと同じIDのポートレットをデプロイしようとすると、ポートレットのデプロイが失敗し、Liferayは次のメッセージを記録します。ポートレットID [portletId] は既に使用されています