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

<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0"
  xmlns:other="http://www.acme.org/xmlns/other/v1.0.0">
  <endpoint-description>
    <property name="objectClass">
      <array>
        <value>org.example.ClassA</value>
      </array>
    </property>
    <property name="endpoint.id">http://somewhere</property>
    <property name="service.imported.configs" value="org.apache.cxf.ws"/>
  </endpoint-description>

  <endpoint-description>
    <property name="objectClass">
      <array>
        <value>org.example.ClassB</value>
      </array>
    </property>
    <property name="endpoint.id">http://somewhere:1</property>
    <property name="service.imported.configs" value="org.apache.cxf.ws"/>
  </endpoint-description>
</endpoint-descriptions>
