diff options
Diffstat (limited to 'sandbox/slaws/modules/domain-rework/src/main/java/org/apache/tuscany/sca/binding/DefaultBindingURICalculatorExtensionPoint.java')
-rw-r--r-- | sandbox/slaws/modules/domain-rework/src/main/java/org/apache/tuscany/sca/binding/DefaultBindingURICalculatorExtensionPoint.java | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/sandbox/slaws/modules/domain-rework/src/main/java/org/apache/tuscany/sca/binding/DefaultBindingURICalculatorExtensionPoint.java b/sandbox/slaws/modules/domain-rework/src/main/java/org/apache/tuscany/sca/binding/DefaultBindingURICalculatorExtensionPoint.java deleted file mode 100644 index ae8b33a006..0000000000 --- a/sandbox/slaws/modules/domain-rework/src/main/java/org/apache/tuscany/sca/binding/DefaultBindingURICalculatorExtensionPoint.java +++ /dev/null @@ -1,124 +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.binding; - -import java.io.IOException; -import java.lang.reflect.Constructor; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.contribution.service.ContributionException; -import org.apache.tuscany.sca.contribution.service.ContributionReadException; -import org.apache.tuscany.sca.contribution.util.ServiceDeclaration; -import org.apache.tuscany.sca.contribution.util.ServiceDiscovery; - -/** - * Default implementation of a binding URI calculator extension point. - * - * @version $Rev$ $Date$ - */ -public class DefaultBindingURICalculatorExtensionPoint implements BindingURICalculatorExtensionPoint { - - private Map<String, BindingURICalculator> bindingURICalculators = new HashMap<String, BindingURICalculator>(); - private boolean loaded; - - public DefaultBindingURICalculatorExtensionPoint() { - } - - public void addBindingURICalculator(BindingURICalculator bindingURICalculator) { - bindingURICalculators.put(bindingURICalculator.getBindingType(), bindingURICalculator); - } - - public void removeBindingURICalculator(BindingURICalculator bindingURICalculator) { - bindingURICalculators.remove(bindingURICalculator.getBindingType()); - } - - public BindingURICalculator getBindingURICalculator(Binding binding) { - loadbindingURICalculators(); - return bindingURICalculators.get(binding.getClass().getName()); - } - - private void loadbindingURICalculators() { - if (loaded) - return; - - // Get the bindingURICalculator service declarations - Set<ServiceDeclaration> bindingURICalculatorDeclarations; - try { - bindingURICalculatorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(BindingURICalculator.class); - } catch (IOException e) { - throw new IllegalStateException(e); - } - - for (ServiceDeclaration bindingURICalculatorDeclaration: bindingURICalculatorDeclarations) { - Map<String, String> attributes = bindingURICalculatorDeclaration.getAttributes(); - - // Load a URL artifact bindingURICalculator - String bindingType = attributes.get("binding"); - - // Create a bindingURICalculator wrapper and register it - BindingURICalculator bindingURICalculator = new LazyBindingURICalculator(bindingType, bindingURICalculatorDeclaration); - addBindingURICalculator(bindingURICalculator); - } - - loaded = true; - } - - /** - * A facade for contribution bindingURICalculators. - */ - private static class LazyBindingURICalculator implements BindingURICalculator { - - private ServiceDeclaration bindingURICalculatorDeclaration; - private String bindingType; - private BindingURICalculator bindingURICalculator; - - private LazyBindingURICalculator(String contributionType, ServiceDeclaration bindingURICalculatorDeclaration) { - this.bindingURICalculatorDeclaration = bindingURICalculatorDeclaration; - this.bindingType = contributionType; - } - - public String getBindingType() { - return bindingType; - } - - public String getProtocol(Binding binding) { - return getbindingURICalculator().getProtocol(binding); - } - - private BindingURICalculator getbindingURICalculator() { - if (bindingURICalculator == null) { - try { - Class<BindingURICalculator> bindingURICalculatorClass = (Class<BindingURICalculator>)bindingURICalculatorDeclaration.loadClass(); - Constructor<BindingURICalculator> constructor = bindingURICalculatorClass.getConstructor(); - bindingURICalculator = constructor.newInstance(); - } catch (Exception e) { - throw new IllegalStateException(e); - } - } - return bindingURICalculator; - } - } -} |