org.jboss.as.webservices.deployers.ConfigResolver Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jbossws-wildfly821-server-integration
Show all versions of jbossws-wildfly821-server-integration
JBossWS WildFly 8.2.1.Final Server Side Integration
The newest version!
/*
* JBoss, Home of Professional Open Source.
* Copyright 2015, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.webservices.deployers;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import org.jboss.jandex.AnnotationInstance;
import org.jboss.jandex.AnnotationValue;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.vfs.VirtualFile;
import org.jboss.ws.api.annotation.EndpointConfig;
import org.jboss.ws.common.configuration.AbstractCommonConfigResolver;
import org.jboss.ws.common.integration.WSConstants;
import org.jboss.wsf.spi.metadata.webservices.JBossWebservicesMetaData;
public class ConfigResolver extends AbstractCommonConfigResolver {
private final ClassInfo epClassInfo;
private final String className;
private final String annotationConfigName;
private final String annotationConfigFile;
private final String descriptorConfigName;
private final String descriptorConfigFile;
private final VirtualFile root;
private final boolean isWar;
public ConfigResolver(ClassInfo epClassInfo, JBossWebservicesMetaData jwmd, JBossWebMetaData jbwebmd, VirtualFile root, boolean isWar) {
this.epClassInfo = epClassInfo;
this.className = epClassInfo.name().toString();
List annotations = epClassInfo.annotations().get(
DotName.createSimple(EndpointConfig.class.getName()));
if (annotations != null && !annotations.isEmpty()) {
AnnotationInstance ann = annotations.get(0);
AnnotationValue av = ann.value("configName");
this.annotationConfigName = av != null ? av.asString() : null;
av = ann.value("configFile");
this.annotationConfigFile = av != null ? av.asString() : null;
} else {
this.annotationConfigName = null;
this.annotationConfigFile = null;
}
String f = null;
String n = null;
if (jbwebmd != null && jbwebmd.getContextParams() != null) {
for (ParamValueMetaData pvmd : jbwebmd.getContextParams()) {
if (WSConstants.JBOSSWS_CONFIG_NAME.equals(pvmd.getParamName())) {
n = pvmd.getParamValue();
}
if (WSConstants.JBOSSWS_CONFIG_FILE.equals(pvmd.getParamName())) {
f = pvmd.getParamValue();
}
}
}
this.descriptorConfigFile = f != null ? f : (jwmd != null ? jwmd.getConfigFile() : null);
this.descriptorConfigName = n != null ? n : (jwmd != null ? jwmd.getConfigName() : null);
this.root = root;
this.isWar = isWar;
}
@Override
protected String getEndpointClassName() {
return className;
}
@Override
protected boolean isEndpointClassAnnotated(Class annotation) {
return epClassInfo.annotations().containsKey(DotName.createSimple(annotation.getName()));
}
@Override
protected String getEndpointConfigNameFromAnnotation() {
return annotationConfigName;
}
@Override
protected String getEndpointConfigFileFromAnnotation() {
return annotationConfigFile;
}
@Override
protected String getEndpointConfigNameOverride() {
return descriptorConfigName;
}
@Override
protected String getEndpointConfigFileOverride() {
return descriptorConfigFile;
}
@Override
protected URL getConfigFile(String configFileName) throws IOException {
return root.getChild(configFileName).asFileURL();
}
@Override
protected URL getDefaultConfigFile(String defaultConfigFileName) {
URL url = null;
if (isWar) {
url = asFileURL(root.getChild("/WEB-INF/classes/" + defaultConfigFileName));
}
if (url == null) {
url = asFileURL(root.getChild("/" + defaultConfigFileName));
}
return url;
}
private URL asFileURL(VirtualFile vf) {
URL url = null;
if (vf != null && vf.exists()) {
try {
url = vf.asFileURL();
} catch (MalformedURLException e) {
// ignore
}
}
return url;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy