2013-02-26 104 views
5

लिखना हम wso2 कार्बन के लिए अपना स्वयं का कस्टम एक्सटेंशन (फीचर) लिखना चाहते हैं। क्या लेखांकन सुविधाओं के लिए कुछ दस्तावेज है?एक कस्टम फीचर

हमने कस्टम फीचर लिखने के हमारे तरीके को "हैक" करने का प्रबंधन किया था। लेकिन हम इसे कैसे होस्ट करते हैं? ऐसा लगता है कि कार्बन कुछ बहुत ही विशिष्ट भंडार वर्णनकर्ताओं को देख रहा है - artifacts.jar और content.jar

हम कार्बन बिल्ड में डाले बिना इन वर्णनकर्ताओं को कैसे उत्पन्न कर सकते हैं। क्या कोई दस्तावेज वर्णन करता है कि किसी तृतीय पक्ष सुविधा संग्रह को कैसे सेट अप करें?

उत्तर

1

Creating-your-own-wso2-carbon-components वेबिनार कार्बन घटकों को बनाने और उन घटकों के लिए एक सुविधा पर चर्चा करता है। इसमें काफी मूलभूत बातें और सर्वोत्तम प्रथाएं भी शामिल हैं।

आपके द्वारा लिखी गई बनाई गई सुविधाओं को होस्ट करने के लिए, आपको उन सुविधाओं से एक पी 2-रिपोजिटरी उत्पन्न करने की आवश्यकता है। पी 2-रेपो अवधारणा अंडरलाइन Eclipse equinox प्रोजेक्ट से आता है जो WSO2 उत्पादों का उपयोग करता है।

डब्लूएसओ 2 ने अपनी खुद की मेवेन प्लगइन लिखी है जिसे कार्बन-पी 2-प्लगइन कहा जाता है जो पी 2-रेपो उत्पन्न करने में मदद करता है। यहां बताया गया है कि आप यह कैसे कर सकते हैं। बस एक नया मेवेन प्रोजेक्ट बनाएं (पैकेजिंग: पोम), और फिर उन सुविधाओं को सेट करें जिन्हें आप कार्बन-पी 2-प्लगइन प्लगइन कॉन्फ़िगरेशन के तहत प्रकाशित करना चाहते हैं। निम्नलिखित नमूना pom.xml है जिसका आप उपयोग कर सकते हैं। यह p2-repo generation pom.xml of carbon 4.1.0 से कॉपी किया गया था, और मैंने इसे सरल बना दिया।

मैंने इस पोम फ़ाइल का परीक्षण किया है, यह मेरे लिए काम करता है। दो नमूना फीचर परिभाषाएं हैं। अपनी फीचर परिभाषाओं के साथ उन फीचर आर्टिफैक्टडिफ को बदलें। प्रारूप $ groupId है: $ artifactId: $ संस्करण।

जब आप इसे मैवेन के माध्यम से बनाते हैं, तो मैवेन लक्ष्य/पी 2-रेपो निर्देशिका बनाता है। इसमें पी 2-रिपोजिटरी है जिसमें पूर्ण पी 2-रेपो शामिल है जिसमें artifacts.jar और content.jar शामिल हैं। आप सुविधाओं को स्थापित करने के लिए बस इस फ़ोल्डर का उपयोग कर सकते हैं, या आप इसे कहीं होस्ट कर सकते हैं। होस्टिंग पर कोई विशेष आवश्यकता नहीं है।

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