5

wso2カーボン用の独自のカスタム拡張機能(機能)を作成したいと思います。機能をオーサリングするためのドキュメントはありますか?

カスタム機能を作成する方法を「ハック」することができました。しかし、どのようにホストしますか?Carbonは、非常に具体的なリポジトリ記述子(artifacts.jarとcontent.jar)を調べているようです。

Carbonビルドに縛られることなく、これらの記述子をどのように生成できますか。サードパーティの機能リポジトリを設定する方法を説明するドキュメントはありますか?

4

1 に答える 1

1

ウェビナーの作成-your-own-wso2-carbon-componentsでは、カーボン コンポーネントの作成と、それらのコンポーネントの機能について説明します。かなり多くの基本事項とベスト プラクティスもカバーしています。

作成したフィーチャーをホストするには、それらのフィーチャーから p2-repository を生成する必要があります。p2-repo の概念は、WSO2 製品が使用する下線付きのEclipse equinoxプロジェクトから来ています。

WSO2 は、p2-repo の生成に役立つ carbon-p2-plugin と呼ばれる独自の Maven プラグインを作成しました。これを行う方法は次のとおりです。新しい Maven プロジェクト (パッケージ: pom) を作成し、公開する機能を carbon-p2-plugin プラグイン構成で設定するだけです。以下は、使用できる pom.xml のサンプルです。これはcarbon 4.1.0の p2-repo 生成 pom.xml からコピーされ、簡略化されています。

このpomファイルをテストしましたが、うまくいきました。フィーチャー定義のサンプルが 2 つあります。これらの featureArtifactDef を独自の機能定義に置き換えます。形式は $groupId:$artifactId:$version です。

これを maven でビルドすると、maven によって target/p2-repo ディレクトリが作成されます。これには、artifacts.jar と content.jar を含む完全な p2-repo を含む p2-repository が含まれます。このフォルダーを使用して機能をインストールすることも、どこかにホストすることもできます。ホスティングに関する特別な要件はありません。

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <parent>
        <groupId>org.wso2.carbon</groupId>
        <artifactId>carbon-features</artifactId>
        <version>4.1.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>mysample-feature-repository</artifactId>
    <version>4.1.0</version>
    <packaging>pom</packaging>
    <name>WSO2 Carbon - Feature Repository</name>

    <build>
      <plugins>
        <plugin>
          <groupId>org.wso2.maven</groupId>
            <artifactId>carbon-p2-plugin</artifactId>
            <version>1.5.2</version>
            <executions>
              <execution>
                <id>2-p2-repo-generation</id>
                <phase>package</phase>
                <goals>
                  <goal>p2-repo-gen</goal>
                 </goals>
                 <configuration>
                   <p2AgentLocation>${basedir}/target/p2-agent</p2AgentLocation>
                   <metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
                   <artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
                   <publishArtifacts>true</publishArtifacts>
                   <publishArtifactRepository>true</publishArtifactRepository>
                   <featureArtifacts> 

<!-- change the featureArtifactDef to match your needs -->

                      <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.service.mgt.feature:4.1.0
                      </featureArtifactDef>
                      <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.registry.core.feature:4.1.0
                      </featureArtifactDef>


               </featureArtifacts>
             </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
于 2013-04-22T20:38:56.157 に答える