final String linkedId = portComp.getEjbLink() != null ? portComp.getEjbLink() : portComp.getServletLink(); final String id = endpoint.getId(); if (!id.equals(linkedId)) continue; if (portComp.getWsdlPort() != null) { METADATA_LOGGER.overridePortName(id, endpoint.getPortName(), portComp.getWsdlPort()); endpoint.setPortName(portComp.getWsdlPort()); if (portComp.getWsdlService() != null) { METADATA_LOGGER.overrideServiceName(id, endpoint.getServiceName(), portComp.getWsdlService()); endpoint.setServiceName(portComp.getWsdlService()); UnifiedHandlerChainsMetaData chainWrapper = portComp.getHandlerChains(); if (chainWrapper != null) { endpoint.setHandlers(convertEndpointHandlers(chainWrapper.getHandlerChains())); if (portComp.isMtomEnabled()) { METADATA_LOGGER.enableMTOM(id); endpoint.setMtomEnabled(true); endpoint.setMtomThreshold(portComp.getMtomThreshold()); if (portComp.isAddressingEnabled()) { METADATA_LOGGER.enableAddressing(id); endpoint.setAddressingEnabled(true); endpoint.setAddressingRequired(portComp.isAddressingRequired()); endpoint.setAddressingResponses(portComp.getAddressingResponses()); if (portComp.isRespectBindingEnabled()) { METADATA_LOGGER.enableRespectBinding(id);
/** * Called when parsing of a new element started. */ public Object newChild(WebserviceDescriptionMetaData webserviceDescription, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs) { if ("port-component".equals(localName)) return new PortComponentMetaData(webserviceDescription); else return null; }
private static EJBEndpoint newEjbEndpoint(final PortComponentMetaData portComponentMD, final EEModuleDescription moduleDescription, final Set<String> securityRoles) { final String ejbName = portComponentMD.getEjbLink(); final SessionBeanComponentDescription sessionBean = (SessionBeanComponentDescription)moduleDescription.getComponentByName(ejbName); final String seiIfaceClassName = portComponentMD.getServiceEndpointInterface(); final EJBViewDescription ejbViewDescription = sessionBean.addWebserviceEndpointView(seiIfaceClassName); // JSR 109 - Version 1.3 - 6.2.2.4 Security // For EJB based service implementations, Handlers run after method level authorization has occurred. // JSR 109 - Version 1.3 - 6.2.2.5 Transaction // Handlers run under the transaction context of the component they are associated with. sessionBean.getConfigurators().addLast(new JAXRPCHandlersConfigurator()); final ServiceName ejbViewName = ejbViewDescription.getServiceName(); return new EJBEndpoint(sessionBean, ejbViewName, securityRoles, null, false, null); }
public PortComponentMetaData getPortComponentByEjbLinkName(String ejbName) { for (PortComponentMetaData pc : portComponents) { if (ejbName.equals(pc.getEjbLink())) return pc; } return null; }
private static POJOEndpoint newPojoEndpoint(final PortComponentMetaData portComponentMD, final JBossWebMetaData jbossWebMD) { final String endpointName = portComponentMD.getServletLink(); final ServletMetaData servletMD = getServletForName(jbossWebMD, endpointName); final String endpointClassName = getEndpointClassName(servletMD); final String urlPattern = getUrlPattern(endpointName, jbossWebMD); return new POJOEndpoint(endpointName, endpointClassName, null, urlPattern); }
for (PortComponentMetaData pcMetaData : pcMetaDataArr) String linkName = pcMetaData.getEjbLink() != null ? pcMetaData.getEjbLink() : pcMetaData.getServletLink(); QName portName = pcMetaData.getWsdlPort(); pcMetaData.setWsdlPort(portName); sepMetaData.setPortComponentName(pcMetaData.getPortComponentName()); sepMetaData.setLinkName(linkName); serviceMetaData.addEndpoint(sepMetaData); String seiName = pcMetaData.getServiceEndpointInterface(); sepMetaData.setServiceEndpointInterfaceName(seiName); for (UnifiedHandlerMetaData uhmd : pcMetaData.getHandlers())
/** * Get the QNames of the port components to be declared * in the namespaces * * @return */ public Collection<QName> getPortComponentQNames() { //TODO:Check if there is just one QName that drives all portcomponents //or each port component can have a distinct QName (namespace/prefix) //Maintain uniqueness of the QName Map<String, QName> map = new HashMap<String, QName>(); for (PortComponentMetaData pcm : portComponents) { QName qname = pcm.getWsdlPort(); map.put(qname.getPrefix(), qname); } return map.values(); }
/** * Creates new JAXRPC EJB21 deployment and registers it with deployment unit. * * @param dep webservice deployment * @param unit deployment unit */ @Override protected void build(final Deployment dep, final DeploymentUnit unit) { final JBossMetaData jbmd = this.getAndPropagateAttachment(JBossMetaData.class, unit, dep); final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(WebservicesMetaData.class, unit, dep); this.getAndPropagateAttachment(WebServiceDeployment.class, unit, dep); this.log.debug("Creating JAXRPC EJB21 endpoints meta data model"); for (final WebserviceDescriptionMetaData webserviceDescriptionMD : wsMetaData.getWebserviceDescriptions()) { for (final PortComponentMetaData portComponentMD : webserviceDescriptionMD.getPortComponents()) { final String ejbName = portComponentMD.getEjbLink(); this.log.debug("EJB21 name: " + ejbName); final JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(ejbName); final String ejbClass = beanMetaData.getEjbClass(); this.log.debug("EJB21 class: " + ejbClass); this.newEndpoint(ejbClass, ejbName, dep); } } }
/** * Creates new JAXRPC JSE deployment and registers it with deployment unit. * * @param dep webservice deployment * @param unit deployment unit */ @Override protected void build(final Deployment dep, final DeploymentUnit unit) { final JBossWebMetaData webMetaData = this.getAndPropagateAttachment(JBossWebMetaData.class, unit, dep); final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(WebservicesMetaData.class, unit, dep); this.log.debug("Creating JAXRPC JSE endpoints meta data model"); for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions()) { for (PortComponentMetaData pcmd : wsd.getPortComponents()) { final String servletName = pcmd.getServletLink(); this.log.debug("JSE name: " + servletName); final ServletMetaData servletMD = ASHelper.getServletForName(webMetaData, servletName); final String servletClass = ASHelper.getEndpointName(servletMD); this.log.debug("JSE class: " + servletClass); this.newEndpoint(servletClass, servletName, dep); } } }
/** * Get the QNames of the port components to be declared * in the namespaces * * @return collection of QNames */ public Collection<QName> getPortComponentQNames() { //TODO:Check if there is just one QName that drives all portcomponents //or each port component can have a distinct QName (namespace/prefix) //Maintain uniqueness of the QName Map<String, QName> map = new HashMap<String, QName>(); for (PortComponentMetaData pcm : portComponents) { QName qname = pcm.getWsdlPort(); map.put(qname.getPrefix(), qname); } return map.values(); }
/** * Creates new JAXRPC EJB21 deployment and registers it with deployment unit. * * @param dep webservice deployment * @param unit deployment unit */ @Override protected void build(final Deployment dep, final DeploymentUnit unit) { final JBossMetaData jbmd = this.getAndPropagateAttachment(JBossMetaData.class, unit, dep); final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(WebservicesMetaData.class, unit, dep); this.getAndPropagateAttachment(WebServiceDeployment.class, unit, dep); this.log.debug("Creating JAXRPC EJB21 endpoints meta data model"); for (final WebserviceDescriptionMetaData webserviceDescriptionMD : wsMetaData.getWebserviceDescriptions()) { for (final PortComponentMetaData portComponentMD : webserviceDescriptionMD.getPortComponents()) { final String ejbName = portComponentMD.getEjbLink(); this.log.debug("EJB21 name: " + ejbName); final JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(ejbName); final String ejbClass = beanMetaData.getEjbClass(); this.log.debug("EJB21 class: " + ejbClass); this.newEndpoint(ejbClass, ejbName, dep); } } }
/** * Creates new JAXRPC JSE deployment and registers it with deployment unit. * * @param dep webservice deployment * @param unit deployment unit */ @Override protected void build(final Deployment dep, final DeploymentUnit unit) { final JBossWebMetaData webMetaData = this.getAndPropagateAttachment(JBossWebMetaData.class, unit, dep); final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(WebservicesMetaData.class, unit, dep); this.log.debug("Creating JAXRPC JSE endpoints meta data model"); for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions()) { for (PortComponentMetaData pcmd : wsd.getPortComponents()) { final String servletName = pcmd.getServletLink(); this.log.debug("JSE name: " + servletName); final ServletMetaData servletMD = ASHelper.getServletForName(webMetaData, servletName); final String servletClass = ASHelper.getEndpointName(servletMD); this.log.debug("JSE class: " + servletClass); this.newEndpoint(servletClass, servletName, dep); } } }
private PortComponentMetaData buildPortComponent(boolean isEJB, String endpointClass, QName portQname, UnifiedHandlerChainsMetaData unifiedHandlerChainsMetaData) { return new PortComponentMetaData(null, portQname, endpointClass, isEJB ? getClassName(endpointClass) : null, isEJB ? null : endpointClass, null, null, null, null, unifiedHandlerChainsMetaData); }
/** * Lookup a PortComponentMetaData by wsdl-port local part * * @param name - the wsdl-port local part * @return PortComponentMetaData if found, null otherwise */ public PortComponentMetaData getPortComponentByWsdlPort(String name) { ArrayList<String> pcNames = new ArrayList<String>(); for (PortComponentMetaData pc : portComponents) { String wsdlPortName = pc.getWsdlPort().getLocalPart(); if (wsdlPortName.equals(name)) return pc; pcNames.add(wsdlPortName); } log.error("Cannot get port component name '" + name + "', we have: " + pcNames); return null; }
/** * Creates new JAXRPC EJB21 deployment and registers it with deployment unit. * * @param dep webservice deployment * @param unit deployment unit */ @Override protected void build(final Deployment dep, final DeploymentUnit unit) { final JBossMetaData jbmd = this.getAndPropagateAttachment(JBossMetaData.class, unit, dep); final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(WebservicesMetaData.class, unit, dep); this.getAndPropagateAttachment(WebServiceDeployment.class, unit, dep); this.log.debug("Creating JAXRPC EJB21 endpoints meta data model"); for (final WebserviceDescriptionMetaData webserviceDescriptionMD : wsMetaData.getWebserviceDescriptions()) { for (final PortComponentMetaData portComponentMD : webserviceDescriptionMD.getPortComponents()) { final String ejbName = portComponentMD.getEjbLink(); this.log.debug("EJB21 name: " + ejbName); final JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(ejbName); final String ejbClass = beanMetaData.getEjbClass(); this.log.debug("EJB21 class: " + ejbClass); this.newEndpoint(ejbClass, ejbName, dep); } } }
/** * Creates new JAXRPC JSE deployment and registers it with deployment unit. * * @param dep webservice deployment * @param unit deployment unit */ @Override protected void build(final Deployment dep, final DeploymentUnit unit) { final JBossWebMetaData webMetaData = this.getAndPropagateAttachment(JBossWebMetaData.class, unit, dep); final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(WebservicesMetaData.class, unit, dep); this.log.debug("Creating JAXRPC JSE endpoints meta data model"); for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions()) { for (PortComponentMetaData pcmd : wsd.getPortComponents()) { final String servletName = pcmd.getServletLink(); this.log.debug("JSE name: " + servletName); final ServletMetaData servletMD = ASHelper.getServletForName(webMetaData, servletName); final String servletClass = ASHelper.getEndpointName(servletMD); this.log.debug("JSE class: " + servletClass); this.newEndpoint(servletClass, servletName, dep); } } }
PortComponentMetaData portComponent = new PortComponentMetaData(config.getServiceName() + ":" + config.getPort().getServiceQName().getLocalPart() + ":" + config.getPort().getPortQName().getLocalPart(),
/** * Lookup a PortComponentMetaData by wsdl-port local part * * @param name - the wsdl-port local part * @return PortComponentMetaData if found, null otherwise */ public PortComponentMetaData getPortComponentByWsdlPort(String name) { ArrayList<String> pcNames = new ArrayList<String>(); for (PortComponentMetaData pc : portComponents) { String wsdlPortName = pc.getWsdlPort().getLocalPart(); if (wsdlPortName.equals(name)) return pc; pcNames.add(wsdlPortName); } Loggers.METADATA_LOGGER.cannotGetPortComponentName(name, pcNames); return null; }
String ejbLink = pcmd.getEjbLink(); if (ejbLink == null) throw new IllegalStateException("ejb-link cannot be null");
String servletLink = pcmd.getServletLink(); if (servletLink == null) throw new IllegalStateException("servlet-link cannot be null");