2013-02-26 6 views
5

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

私たちは、カスタム機能を書くための道を「ハック」していました。しかし、どうやってホストしていますか? Carbonはいくつかの非常に具体的なリポジトリ記述子、artifacts.jarとcontent.jarを見ているようです。

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

答えて

1

Creating-your-own-wso2-carbon-componentsウェブセミナーでは、カーボンコンポーネントの作成方法とそのコンポーネントの機能について説明します。それはかなりの基本とベストプラクティスをカバーしています。

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

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

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

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

<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> 
関連する問題