十步写Cartridge(一)

十步写Cartridge

这篇文章告诉你如何写一个AndroMDA cartridge10个不同的步骤中,使用一个简单的cartridgeUML开发模型中生成一个类似于Ant的构建脚本。这就是为什么教程cartridge被叫做“andromeda-deployment”。

 

新的cartridge作的任务

Written by Matthias Bohlen

Tuesday,21 March 2006

让我们看看cartridge要处理的测试模型:

  十步写Cartridge(一)_第1张图片

在这张图上,你看到了四个重要的模型元素类型:

l         Node:工件能够被部署的方框(通常是机器,例如server

l         Component:带一个定义的接口的软件的逻辑块

l         Artifact:软件的物理块,例如符合组件接口的jar文件(用UML的话来讲就是:“manifest a”)

l         Package:一些类周围的壳。

隐藏在这个模型背后的思想是:工件包含包并且被部署在节点上。包中包括应该在打包进工件前要被编译的类。

你可以从这样一个模型中作的更多,但是对于一个教程来说这会使这个cartridge更复杂。从这个模型中,cartridge会生成两种类型的文件:

l         一种像ant的构建脚本(给每个节点)

l         简单的关于要被部署到节点的报告,组件,工件和包(每个模型一个报告)

从上面的模型中,这个新的cartridge将生成下面的输出:

build.xml:

 

<project name="org.andromda.cartridges.deployment.sampledeployment.AppServer1" default="deploy">

    <target name="compile">
      <javac package="org.andromda.cartridges.deployment.sampledeployment.mybackendservices" />
      <javac package="org.andromda.cartridges.deployment.sampledeployment.mywebapp" />
      <javac package="org.andromda.cartridges.deployment.sampledeployment.mywebapp2" />
    </target>

    <target name="deploy" depends="compile">
      <jar name="MyBackendComponents.jar">
          <package name="org.andromda.cartridges.deployment.sampledeployment.mybackendservices" />
      </jar>
      <jar name="MyWebComponents.jar">
          <package name="org.andromda.cartridges.deployment.sampledeployment.mywebapp" />
          <package name="org.andromda.cartridges.deployment.sampledeployment.mywebapp2" />
      </jar>
    </target>

</project>

 

 

你们中的ant专家现在会说这不是一个有效的ant文件,不,不是。这是个冒牌货!

下面是要生成的另外一个文件:

<deployment-report generation-date="Fri Feb 17 10:12:33 CET 2006">

    <node name="AppServer1">
        <component name="BackendComponent">
            <artifact name="MyBackendComponents.jar">
                <package name="org.andromda.cartridges.deployment.sampledeployment.mybackendservices">
                </package>
            </artifact>
        </component>
        <component name="WebComponent">
            <artifact name="MyWebComponents.jar">
                <package name="org.andromda.cartridges.deployment.sampledeployment.mywebapp">
                </package>
                <package name="org.andromda.cartridges.deployment.sampledeployment.mywebapp2">
                </package>
            </artifact>
        </component>
    </node>

</deployment-report>

下面我们会为你演示在cartridge开发流程中的每个步骤的设计。

 

 

你可能感兴趣的:(十步写Cartridge(一))