diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta2-RC3/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta2-RC3/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta2-RC3/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java b/sca-java-2.x/tags/2.0-Beta2-RC3/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java deleted file mode 100644 index a5d4adb1bb..0000000000 --- a/sca-java-2.x/tags/2.0-Beta2-RC3/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * 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.spring; - -import java.net.URL; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.assembly.Component; -import org.apache.tuscany.sca.assembly.ComponentType; -import org.apache.tuscany.sca.assembly.Extensible; -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.assembly.impl.ImplementationImpl; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; - -/** - * Represents a Spring implementation. - * - * @version $Rev$ $Date$ - */ -public class SpringImplementation extends ImplementationImpl implements Implementation, Extensible { - public final static QName TYPE = new QName(SCA11_NS, "implementation.spring"); - // The location attribute which points to the Spring application-context XML file - private String location; - // The application-context file as a Spring Resource - private List<URL> resource; - private ComponentType componentType; - // Mapping of Services to Beans - private Map<String, SpringBeanElement> serviceMap; - // Mapping of property names to Java class - private Map<String, Class<?>> propertyMap; - // List of unresolved bean property references - private Map<String, Reference> unresolvedBeanRef; - private ClassLoader classLoader; - - public SpringImplementation() { - super(TYPE); - this.location = null; - this.resource = null; - setUnresolved(true); - serviceMap = new HashMap<String, SpringBeanElement>(); - propertyMap = new HashMap<String, Class<?>>(); - unresolvedBeanRef = new HashMap<String, Reference>(); - } // end method SpringImplementation - - /* Returns the location attribute for this Spring implementation */ - public String getLocation() { - return location; - } - - /** - * Sets the location attribute for this Spring implementation - * location - a URI to the Spring application-context file - */ - public void setLocation(String location) { - this.location = location; - return; - } - - public void setResource(List<URL> resource) { - this.resource = resource; - } - - public List<URL> getResource() { - return resource; - } - - /* - * Returns the componentType for this Spring implementation - */ - public ComponentType getComponentType() { - return componentType; - } - - /* - * Sets the componentType for this Spring implementation - */ - public void setComponentType(ComponentType componentType) { - this.componentType = componentType; - } - - @Override - public List<Service> getServices() { - return componentType.getServices(); - } - - @Override - public List<Reference> getReferences() { - return componentType.getReferences(); - } - - @Override - public List<Property> getProperties() { - return componentType.getProperties(); - } - - /** - * Returns the Spring Bean which implements a particular service - * @param service the service - * @return the bean which implements the service, as a SpringBeanElement - */ - public SpringBeanElement getBeanFromService(Service service) { - SpringBeanElement theBean = serviceMap.get(service.getName()); - return theBean; - } - - /** - * Sets the mapping from a service to the Spring Bean that implements the service - * @param service the service - * @param theBean a SpringBeanElement for the Bean implementing the service - */ - public void setBeanForService(Service service, SpringBeanElement theBean) { - serviceMap.put(service.getName(), theBean); - } - - /** - * Add a mapping from a SCA property name to a Java class for the property - * @param propertyName - * @param propertyClass - */ - public void setPropertyClass(String propertyName, Class<?> propertyClass) { - if (propertyName == null || propertyClass == null) - return; - propertyMap.put(propertyName, propertyClass); - return; - } // end method setPropertyClass - - /** - * Gets the Java Class for an SCA property - * @param propertyName - the property name - * @return - a Class object for the type of the property - */ - public Class<?> getPropertyClass(String propertyName) { - return propertyMap.get(propertyName); - } // end method getPropertyClass - - public void setUnresolvedBeanRef(String refName, Reference reference) { - if (refName == null || reference == null) - return; - unresolvedBeanRef.put(refName, reference); - return; - } // end method setUnresolvedBeanRef - - public Reference getUnresolvedBeanRef(String refName) { - return unresolvedBeanRef.get(refName); - } // end method getUnresolvedBeanRef - - /** - * Use preProcess to validate and map the references and properties dynamically - */ - public void build(Component component) { - - for (Reference reference : component.getReferences()) { - if (unresolvedBeanRef.containsKey(reference.getName())) { - Reference ref = unresolvedBeanRef.get(reference.getName()); - componentType.getReferences().add(createReference(reference, ref.getInterfaceContract())); - unresolvedBeanRef.remove(reference.getName()); - } - } - - for (Property property : component.getProperties()) { - if (unresolvedBeanRef.containsKey(property.getName())) { - componentType.getProperties().add(createProperty(property)); - this.setPropertyClass(property.getName(), property.getClass()); - unresolvedBeanRef.remove(property.getName()); - } - } - } - - protected Reference createReference(Reference reference, InterfaceContract interfaze) { - Reference newReference; - try { - newReference = (Reference)reference.clone(); - if (newReference.getInterfaceContract() == null) - newReference.setInterfaceContract(interfaze); - } catch (CloneNotSupportedException e) { - throw new AssertionError(e); // should not ever happen - } - return newReference; - } - - protected Property createProperty(Property property) { - Property newProperty; - try { - newProperty = (Property)property.clone(); - } catch (CloneNotSupportedException e) { - throw new AssertionError(e); // should not ever happen - } - return newProperty; - } - - public ClassLoader getClassLoader() { - return classLoader; - } - - public void setClassLoader(ClassLoader classLoader) { - this.classLoader = classLoader; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = super.hashCode(); - result = prime * result + ((location == null) ? 0 : location.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (!(obj instanceof SpringImplementation)) { - return false; - } - SpringImplementation other = (SpringImplementation)obj; - if (location == null) { - if (other.location != null) { - return false; - } - } else if (!location.equals(other.location)) { - return false; - } - return true; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("SpringImplementation [location=").append(location).append(", resource=").append(resource) - .append("]"); - return builder.toString(); - } -} |