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

Fragment-Host: org.apache.aries.jax.rs.whiteboard
Export-Package:\
	org.apache.cxf;version="3.2.13",\
	org.apache.cxf.attachment;version="3.2.13",\
	org.apache.cxf.common.classloader;version="3.2.13",\
	org.apache.cxf.common.logging;version="3.2.13",\
	org.apache.cxf.common.jaxb;version="3.2.13",\
	org.apache.cxf.common.security;version="3.2.13",\
	org.apache.cxf.common.util;version="3.2.13",\
	org.apache.cxf.configuration.security;version="3.2.13",\
	org.apache.cxf.endpoint;version="3.2.13",\
	org.apache.cxf.helpers;version="3.2.13",\
	org.apache.cxf.interceptor;version="3.2.13",\
	org.apache.cxf.interceptor.security;version="3.2.13",\
	org.apache.cxf.io;version="3.2.13",\
	org.apache.cxf.jaxrs;version="3.2.13",\
	org.apache.cxf.jaxrs.ext;version="3.2.13",\
	org.apache.cxf.jaxrs.impl;version="3.2.13",\
	org.apache.cxf.jaxrs.model;version="3.2.13",\
	org.apache.cxf.jaxrs.provider;version="3.2.13",\
	org.apache.cxf.jaxrs.utils;version="3.2.13",\
	org.apache.cxf.jaxrs.utils.multipart;version="3.2.13",\
	org.apache.cxf.jaxrs.utils.schemas;version="3.2.13",\
	org.apache.cxf.message;version="3.2.13",\
	org.apache.cxf.phase;version="3.2.13",\
	org.apache.cxf.resource;version="3.2.13",\
	org.apache.cxf.security;version="3.2.13",\
	org.apache.cxf.security.transport;version="3.2.13",\
	org.apache.cxf.service.model;version="3.2.13",\
	org.apache.cxf.staxutils;version="3.2.13",\
	org.apache.cxf.staxutils.transform;version="3.2.13",\
	org.apache.cxf.transport.http.auth;version="3.2.13",\
	org.apache.cxf.helpers;version="3.2.13",\
	org.apache.cxf.helpers;version="3.2.13",\
	org.apache.cxf.helpers;version="3.2.13",\
	org.apache.cxf.common.util;version="3.2.13"

-resourceonly: true
-fixupmessages: Classpath is empty...;is:=ignore
