/**
 * 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
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * 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.
 */
package org.apache.winegrower.scanner.manifest.cdi;

import org.apache.aries.cdi.extra.RequireCDIExtension;
import org.apache.aries.cdi.extra.RequireCDIExtensions;

@RequireCDIExtensions({
        @RequireCDIExtension("the-extension-1"),
        @RequireCDIExtension("the-extension-2")
})
public class AriesPluralRequirement {
}
