<!--
  ~ Copyright 2015 Open Networking Laboratory
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<scenario name="archetypes-test" description="ONOS archetypes test">
    <group name="Archetypes" cwd="${WORKSPACE}/tmp/test-app">
        <step name="Clean-Up" cwd="${WORKSPACE}/tmp" env="~"
              exec="rm -r test-app"/>

        <step name="Create-App" cwd="${WORKSPACE}/tmp" requires="^"
              exec="onos-create-app app org.test.app test-app 1.2.3 org.test.app -DinteractiveMode=false"/>
        <step name="Build-App" requires="Create-App" exec="mvn clean install"/>
        <step name="Install-App" requires="^"
              exec="onos-app ${OCI} install! target/test-app-1.2.3.oar"/>
        <step name="Verify-App" requires="^"
              exec="onos-check-components ${OCI} org.test.app.AppComponent"/>

        <step name="Create-App-CLI-Overlay" requires="Install-App"
              exec="onos-create-app cli org.test.app test-app 1.2.3 org.test.app -DinteractiveMode=false"/>
        <step name="Build-App-With-CLI" requires="^"
              exec="mvn clean install"/>
        <step name="Reinstall-App-With-CLI" requires="^,~Verify-App"
              exec="onos-app ${OCI} reinstall! target/test-app-1.2.3.oar"/>
        <step name="Verify-CLI" requires="^"
              exec="onos ${OCI} sample"/>

        <step name="Create-App-UI-Overlay" requires="Reinstall-App-With-CLI"
              exec="onos-create-app ui org.test.app test-app 1.2.3 org.test.app -DinteractiveMode=false"/>
        <step name="Build-App-With-UI" requires="^"
              exec="mvn clean install"/>
        <step name="Reinstall-App-With-UI" requires="^,~Verify-CLI"
              exec="onos-app ${OCI} reinstall! target/test-app-1.2.3.oar"/>
    </group>
</scenario>
