2013-02-26 20 views
5

Wir möchten unsere eigene benutzerdefinierte Erweiterung (Feature) für Wso2 Kohlenstoff schreiben. Gibt es eine Dokumentation für Authoring-Funktionen?Eine benutzerdefinierte Funktion schreiben

Wir haben es geschafft, unseren Weg zum Schreiben eines benutzerdefinierten Features zu "hacken". Aber wie hosten wir es? Es scheint, dass Carbon einige sehr spezifische Repository-Deskriptoren betrachtet - artifacts.jar und content.jar

Wie können wir diese Deskriptoren generieren, ohne den Carbon-Build zu binden? Gibt es eine Dokumentation, in der beschrieben wird, wie ein Feature-Repository eines Drittanbieters eingerichtet wird?

Antwort

1

Creating-your-own-wso2-carbon-components Webinar diskutiert Erstellen von Carbon-Komponenten und eine Funktion für diese Komponenten. Es deckt ziemlich viele Grundlagen und Best Practices ab.

Um die erstellten Features, die Sie geschrieben haben, zu hosten, müssen Sie aus diesen Funktionen ein p2-Repository generieren. Das p2-Repo-Konzept stammt aus dem unterstrichenen Projekt Eclipse equinox, das von WSO2-Produkten verwendet wird.

WSO2 hat sein eigenes Maven-Plugin namens carbon-p2-plugin geschrieben, das hilft, ein p2-Repo zu generieren. Hier ist, wie Sie das tun können. Erstellen Sie einfach ein neues Maven-Projekt (packaging: pom), und legen Sie dann die Funktionen fest, die Sie veröffentlichen möchten, unter der carbon-p2-Plugin-Plugin-Konfiguration. Im Folgenden finden Sie ein Beispiel für pom.xml, das Sie verwenden können. Dies wurde von der p2-repo generation pom.xml of carbon 4.1.0 kopiert, und ich vereinfachte es.

Ich habe diese Pom-Datei getestet, es hat für mich funktioniert. Es gibt zwei Beispielfunktionsdefinitionen. Ersetzen Sie diese FeatureArtifactDef durch eigene Featuredefinitionen. Das Format ist $ groupId: $ artifactId: $ version.

Wenn Sie dies über Maven erstellen, erstellt maven das Verzeichnis target/p2-repo. Dieser enthält das p2-Repository, das den kompletten p2-Repo enthält, einschließlich artifacts.jar und content.jar. Sie können diesen Ordner einfach verwenden, um Funktionen zu installieren, oder Sie können ihn irgendwo hosten. Es gibt keine besonderen Anforderungen an das Hosting.

<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> 
Verwandte Themen