<?xml version="1.0" encoding="UTF-8"?>
<!--
    * Licensed to the Apache Software Foundation (ASF) under one
    * or more contributor license agreements.  See the NOTICE file
    * distributed with this work for additional information
    * regarding copyright ownership.  The ASF licenses this file
    * to you 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.
-->
<assembly>
    <id>updatesite</id>
    <includeBaseDirectory>false</includeBaseDirectory>
    <formats>
        <format>dir</format>
    </formats>

    <fileSets>
        <fileSet>
            <directory>target/classes</directory>
            <outputDirectory>tuscany-sca-${tuscany.version}-updatesite</outputDirectory>
            <includes>
                <include>LICENSE</include>
                <include>NOTICE</include>
                <include>site.xml</include>
            </includes>
        </fileSet>
    </fileSets>
        
    <files>
        <file>
            <source>../../plugins/core/target/org.apache.tuscany.sca.core-${tuscany.version}.jar</source>
            <outputDirectory>tuscany-sca-${tuscany.version}-updatesite/plugins</outputDirectory>
            <destName>org.apache.tuscany.sca.core_${tuscany.eclipse.version}.jar</destName>
        </file>

        <file>
            <source>../../features/core/target/org.apache.tuscany.sca.feature.core-${tuscany.version}.jar</source>
            <outputDirectory>tuscany-sca-${tuscany.version}-updatesite/features</outputDirectory>
        </file>
    </files>

</assembly>
