<?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.    
-->
<composite autowire="false" local="true" name="MySimpleService"
    targetNamespace="http://foo" xmlns:foo="http://foo" xmlns="http://www.osoa.org/xmlns/sca/1.0"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.osoa.org/xmlns/sca/1.0 http://www.osoa.org/xmlns/sca/1.0 ">


    <service name="MyServiceNew1" promote="MyServiceComponentNew/MyService">
        <interface.java interface="mysca.test.myservice.impl.MyService" />
    </service>

    <property name="newLocation" type="xsd:anyURI">Raleigh</property>
    <property name="newYear" type="xsd:anyURI">2008</property>


    <component name="MyServiceComponentNew">
        <implementation.java class="mysca.test.myservice.impl.MyServiceImpl" />
        <property name="location" source="$newLocation" />
        <property name="year" source="$newYear" />
    </component>

</composite>
