Documentation

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/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

3
javax.portlet.init-param.<name>=<value> 3 , 9
3

/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ポートレット 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=widget 2

/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=

`

/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

  • [5] liferay-portlet-app_ [version].dtd

  • [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.xmlportlet-name記述子またはjavax.portlet.name OSGiサービスのプロパティ)。 ポートレット名にはダッシュ、ピリオド、スペースを使用できますが、これらの文字やその他のJavaScriptの安全でない文字は、ポートレットIDに使用される名前の値から取り除かれます。 したがって、削除される文字を考慮して、ポートレット名を一意なものにしてください。 そうしないと、既にデプロイ済みのポートレットと同じIDのポートレットをデプロイしようとすると、ポートレットのデプロイが失敗し、Liferayは次のメッセージを記録します。

    ポートレットID [portletId] は既に使用されています