TUSCANY-3247 - Making interfaces and instantiatng widget factory via extension point mechanism
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@810775 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
97e1dfe5d2
commit
22e26a6bfa
6 changed files with 191 additions and 117 deletions
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.implementation.widget.impl;
|
||||
|
||||
import org.apache.tuscany.sca.assembly.AssemblyFactory;
|
||||
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
|
||||
import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
|
||||
import org.apache.tuscany.sca.implementation.widget.WidgetImplementationFactory;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
|
||||
|
||||
/**
|
||||
* Factory for the widget implementation model.
|
||||
*
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
public class WidgetImplementationFactoryImpl implements WidgetImplementationFactory {
|
||||
|
||||
private AssemblyFactory assemblyFactory;
|
||||
private JavaInterfaceFactory javaFactory;
|
||||
|
||||
public WidgetImplementationFactoryImpl(ModelFactoryExtensionPoint modelFactories) {
|
||||
assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
|
||||
javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
|
||||
}
|
||||
|
||||
public WidgetImplementation createWidgetImplementation() {
|
||||
return new WidgetImplementationImpl(assemblyFactory, javaFactory);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
package org.apache.tuscany.sca.implementation.widget.impl;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.tuscany.sca.assembly.AssemblyFactory;
|
||||
import org.apache.tuscany.sca.assembly.ConstrainingType;
|
||||
import org.apache.tuscany.sca.assembly.Property;
|
||||
import org.apache.tuscany.sca.assembly.Reference;
|
||||
import org.apache.tuscany.sca.assembly.Service;
|
||||
import org.apache.tuscany.sca.implementation.widget.Widget;
|
||||
import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
|
||||
import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
|
||||
|
||||
|
||||
/**
|
||||
* The model representing a widget implementation in an SCA assembly model.
|
||||
*
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
public class WidgetImplementationImpl implements WidgetImplementation {
|
||||
private Service widgetService;
|
||||
private List<Reference> references = new ArrayList<Reference>();
|
||||
private List<Property> properties = new ArrayList<Property>();
|
||||
|
||||
private String location;
|
||||
private URL url;
|
||||
private boolean unresolved;
|
||||
|
||||
/**
|
||||
* Constructs a new resource implementation.
|
||||
*/
|
||||
WidgetImplementationImpl(AssemblyFactory assemblyFactory,
|
||||
JavaInterfaceFactory javaFactory) {
|
||||
|
||||
// Resource implementation always provide a single service exposing
|
||||
// the Resource interface, and have no references and properties
|
||||
widgetService = assemblyFactory.createService();
|
||||
widgetService.setName("Widget");
|
||||
|
||||
// Create the Java interface contract for the Resource service
|
||||
JavaInterface javaInterface;
|
||||
try {
|
||||
javaInterface = javaFactory.createJavaInterface(Widget.class);
|
||||
} catch (InvalidInterfaceException e) {
|
||||
throw new IllegalArgumentException(e);
|
||||
}
|
||||
JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
|
||||
interfaceContract.setInterface(javaInterface);
|
||||
widgetService.setInterfaceContract(interfaceContract);
|
||||
}
|
||||
|
||||
public String getLocation() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public void setLocation(String location) {
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public URL getLocationURL() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setLocationURL(URL url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public ConstrainingType getConstrainingType() {
|
||||
// The resource implementation does not support constrainingTypes
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Property> getProperties() {
|
||||
return properties;
|
||||
}
|
||||
|
||||
public List<Service> getServices() {
|
||||
// The resource implementation does not support services
|
||||
return Collections.singletonList(widgetService);
|
||||
}
|
||||
|
||||
public List<Reference> getReferences() {
|
||||
return references;
|
||||
}
|
||||
|
||||
public String getURI() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public void setConstrainingType(ConstrainingType constrainingType) {
|
||||
// The resource implementation does not support constrainingTypes
|
||||
}
|
||||
|
||||
public void setURI(String uri) {
|
||||
this.location = uri;
|
||||
}
|
||||
|
||||
|
||||
public boolean isUnresolved() {
|
||||
return unresolved;
|
||||
}
|
||||
|
||||
public void setUnresolved(boolean unresolved) {
|
||||
this.unresolved = unresolved;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Widget : " + getLocation();
|
||||
}
|
||||
}
|
|
@ -16,4 +16,4 @@
|
|||
# under the License.
|
||||
|
||||
# Implementation class for model factory
|
||||
org.apache.tuscany.sca.implementation.widget.WidgetImplementationFactory
|
||||
org.apache.tuscany.sca.implementation.widget.impl.WidgetImplementationFactoryImpl
|
|
@ -19,20 +19,8 @@
|
|||
package org.apache.tuscany.sca.implementation.widget;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.tuscany.sca.assembly.AssemblyFactory;
|
||||
import org.apache.tuscany.sca.assembly.ConstrainingType;
|
||||
import org.apache.tuscany.sca.assembly.Implementation;
|
||||
import org.apache.tuscany.sca.assembly.Property;
|
||||
import org.apache.tuscany.sca.assembly.Reference;
|
||||
import org.apache.tuscany.sca.assembly.Service;
|
||||
import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -40,95 +28,13 @@ import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
|
|||
*
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
public class WidgetImplementation implements Implementation {
|
||||
private Service widgetService;
|
||||
private List<Reference> references = new ArrayList<Reference>();
|
||||
private List<Property> properties = new ArrayList<Property>();
|
||||
public interface WidgetImplementation extends Implementation {
|
||||
|
||||
private String location;
|
||||
private URL url;
|
||||
private boolean unresolved;
|
||||
String getLocation();
|
||||
|
||||
/**
|
||||
* Constructs a new resource implementation.
|
||||
*/
|
||||
WidgetImplementation(AssemblyFactory assemblyFactory,
|
||||
JavaInterfaceFactory javaFactory) {
|
||||
void setLocation(String location);
|
||||
|
||||
// Resource implementation always provide a single service exposing
|
||||
// the Resource interface, and have no references and properties
|
||||
widgetService = assemblyFactory.createService();
|
||||
widgetService.setName("Widget");
|
||||
|
||||
// Create the Java interface contract for the Resource service
|
||||
JavaInterface javaInterface;
|
||||
try {
|
||||
javaInterface = javaFactory.createJavaInterface(Widget.class);
|
||||
} catch (InvalidInterfaceException e) {
|
||||
throw new IllegalArgumentException(e);
|
||||
}
|
||||
JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
|
||||
interfaceContract.setInterface(javaInterface);
|
||||
widgetService.setInterfaceContract(interfaceContract);
|
||||
}
|
||||
|
||||
public String getLocation() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public void setLocation(String location) {
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public URL getLocationURL() {
|
||||
return url;
|
||||
}
|
||||
URL getLocationURL();
|
||||
|
||||
public void setLocationURL(URL url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public ConstrainingType getConstrainingType() {
|
||||
// The resource implementation does not support constrainingTypes
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Property> getProperties() {
|
||||
return properties;
|
||||
}
|
||||
|
||||
public List<Service> getServices() {
|
||||
// The resource implementation does not support services
|
||||
return Collections.singletonList(widgetService);
|
||||
}
|
||||
|
||||
public List<Reference> getReferences() {
|
||||
return references;
|
||||
}
|
||||
|
||||
public String getURI() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public void setConstrainingType(ConstrainingType constrainingType) {
|
||||
// The resource implementation does not support constrainingTypes
|
||||
}
|
||||
|
||||
public void setURI(String uri) {
|
||||
this.location = uri;
|
||||
}
|
||||
|
||||
|
||||
public boolean isUnresolved() {
|
||||
return unresolved;
|
||||
}
|
||||
|
||||
public void setUnresolved(boolean unresolved) {
|
||||
this.unresolved = unresolved;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Widget : " + getLocation();
|
||||
}
|
||||
void setLocationURL(URL url);
|
||||
}
|
||||
|
|
|
@ -19,27 +19,13 @@
|
|||
|
||||
package org.apache.tuscany.sca.implementation.widget;
|
||||
|
||||
import org.apache.tuscany.sca.assembly.AssemblyFactory;
|
||||
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
|
||||
import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
|
||||
|
||||
/**
|
||||
* Factory for the widget implementation model.
|
||||
*
|
||||
* @version $Rev$ $Date$
|
||||
*/
|
||||
public class WidgetImplementationFactory {
|
||||
public interface WidgetImplementationFactory {
|
||||
|
||||
private AssemblyFactory assemblyFactory;
|
||||
private JavaInterfaceFactory javaFactory;
|
||||
WidgetImplementation createWidgetImplementation();
|
||||
|
||||
public WidgetImplementationFactory(ModelFactoryExtensionPoint modelFactories) {
|
||||
assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
|
||||
javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
|
||||
}
|
||||
|
||||
public WidgetImplementation createWidgetImplementation() {
|
||||
return new WidgetImplementation(assemblyFactory, javaFactory);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ public class WidgetImplementationProcessor implements StAXArtifactProcessor<Widg
|
|||
public WidgetImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
|
||||
assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
|
||||
contributionFactory = modelFactories.getFactory(ContributionFactory.class);
|
||||
implementationFactory = new WidgetImplementationFactory(modelFactories);
|
||||
implementationFactory = modelFactories.getFactory(WidgetImplementationFactory.class);
|
||||
this.monitor = monitor;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue