@Provides
public static Composite createComposite(@Environment String pEnvironment) {
Component component = new Component("WebComponent");
component.setImplementation(new WebImplementation(URI.create("web")));
addReference(component, "CoreUtilsComponent", ICoreUtilsService.class);
return CompositeBuilder.newBuilder(QName.valueOf("{org.librade/1.0}" + "webComposite"))
.environment(Arrays.asList("main", "vm"))
.deployable()
.component(component)
.build();
}
private static void addReference(Component pComponent, String pTargetComponent, Class pReferenceClass) {
Reference<Component> reference = new Reference<>(pReferenceClass.getSimpleName(), Multiplicity.ONE_ONE);
reference.addTarget(new Target(pTargetComponent, pReferenceClass.getSimpleName()));
pComponent.add(reference);
}
sca-contribution.xml:
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:librade="org.librade/1.0" xmlns:f3="urn:fabric3.org" f3:context="">
<import.java package="org.librade.common.*"/>
<import.java package="com.nordlicht.commons.base.*"/>
<import.java package="com.google.*"/>
<deployable composite="librade:webComposite" environments="vm main"/>
</contribution>
[SEVERE 29.10.2015 15:24:20.980] The following contribution errors were found:
ERROR: Deployable composite {org.librade/1.0}webComposite not found in librade-gui-web-1.3.0-SNAPSHOT.war
1 error was found