001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.geronimo.cxf;
018
019 import javax.xml.ws.WebServiceException;
020
021 import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
022 import org.apache.geronimo.jaxws.JAXWSUtils;
023 import org.apache.geronimo.jaxws.PortInfo;
024
025 public class GeronimoJaxWsImplementorInfo extends JaxWsImplementorInfo {
026
027 private String bindingURI;
028 private Class seiClass;
029
030 public GeronimoJaxWsImplementorInfo(Class clazz, PortInfo portInfo, ClassLoader loader) {
031 super(clazz);
032
033 // overwrite bindingURI
034 if (portInfo.getProtocolBinding() != null) {
035 this.bindingURI = JAXWSUtils.getBindingURI(portInfo.getProtocolBinding());
036 }
037
038 // overwrite seiClass only if WebService.endpointInterface is not set
039 if (super.getSEIClass() == null) {
040 String sei = portInfo.getServiceEndpointInterfaceName();
041 if (sei != null && sei.trim().length() > 0) {
042 try {
043 this.seiClass = loader.loadClass(sei.trim());
044 } catch (ClassNotFoundException ex) {
045 throw new WebServiceException("Failed to load SEI class: " + sei);
046 }
047 }
048 }
049 }
050
051 @Override
052 public String getBindingType() {
053 if (this.bindingURI != null) {
054 return this.bindingURI;
055 } else {
056 return super.getBindingType();
057 }
058 }
059
060 @Override
061 public Class<?> getSEIClass() {
062 return (this.seiClass != null) ? this.seiClass : super.getSEIClass();
063 }
064
065 }