Package org.jboss.ws.core.jaxrpc.client

Source Code of org.jboss.ws.core.jaxrpc.client.HandlerRegistryImpl

/*     */ package org.jboss.ws.core.jaxrpc.client;
/*     */
/*     */ import java.util.ArrayList;
/*     */ import java.util.HashMap;
/*     */ import java.util.HashSet;
/*     */ import java.util.Iterator;
/*     */ import java.util.List;
/*     */ import java.util.Map;
/*     */ import java.util.Map.Entry;
/*     */ import java.util.Set;
/*     */ import javax.xml.namespace.QName;
/*     */ import javax.xml.rpc.handler.HandlerChain;
/*     */ import javax.xml.rpc.handler.HandlerInfo;
/*     */ import javax.xml.rpc.handler.HandlerRegistry;
/*     */ import org.jboss.logging.Logger;
/*     */ import org.jboss.ws.core.jaxrpc.handler.ClientHandlerChain;
/*     */ import org.jboss.ws.metadata.umdm.EndpointMetaData;
/*     */ import org.jboss.ws.metadata.umdm.HandlerMetaDataJAXRPC;
/*     */ import org.jboss.ws.metadata.umdm.ServiceMetaData;
/*     */ import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerMetaData.HandlerType;
/*     */ import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedInitParamMetaData;
/*     */
/*     */ public class HandlerRegistryImpl
/*     */   implements HandlerRegistry
/*     */ {
/*  65 */   private static Logger log = Logger.getLogger(HandlerRegistryImpl.class);
/*     */
/*  68 */   private Map<QName, HandlerChain> handlerChains = new HashMap();
/*     */
/*  70 */   private Map<QName, List<HandlerInfo>> handlerInfos = new HashMap();
/*     */   private ServiceMetaData serviceMetaData;
/*     */
/*     */   public HandlerRegistryImpl(ServiceMetaData serviceMetaData)
/*     */   {
/*  76 */     this.serviceMetaData = serviceMetaData;
/*     */   }
/*     */
/*     */   public List getHandlerChain(QName portName)
/*     */   {
/*  81 */     List list = (List)this.handlerInfos.get(portName);
/*  82 */     if (list == null) {
/*  83 */       list = new ArrayList();
/*     */     }
/*  85 */     return new ArrayList(list);
/*     */   }
/*     */
/*     */   public void setHandlerChain(QName portName, List chain)
/*     */   {
/*  90 */     registerClientHandlerChain(portName, chain, null);
/*     */   }
/*     */
/*     */   HandlerChain getHandlerChainInstance(QName portName)
/*     */   {
/*  97 */     HandlerChain handlerChain = (HandlerChain)this.handlerChains.get(portName);
/*  98 */     return handlerChain;
/*     */   }
/*     */
/*     */   void registerClientHandlerChain(QName portName, List<HandlerInfo> infos, Set<String> roles)
/*     */   {
/* 105 */     ClientHandlerChain chain = new ClientHandlerChain(infos, roles);
/* 106 */     this.handlerChains.put(portName, chain);
/* 107 */     this.handlerInfos.put(portName, infos);
/*     */
/* 109 */     EndpointMetaData epMetaData = this.serviceMetaData.getEndpoint(portName);
/* 110 */     if (epMetaData == null) {
/* 111 */       throw new IllegalStateException("Cannot obtain endpoint meta data for: " + portName);
/*     */     }
/* 113 */     epMetaData.clearHandlers();
/* 114 */     for (HandlerInfo info : infos)
/*     */     {
/* 116 */       HandlerMetaDataJAXRPC handler = new HandlerMetaDataJAXRPC(UnifiedHandlerMetaData.HandlerType.ENDPOINT);
/* 117 */       handler.setEndpointMetaData(epMetaData);
/* 118 */       handler.setHandlerClassName(info.getHandlerClass().getName());
/* 119 */       handler.setSoapRoles(roles);
/*     */
/* 122 */       Set headers = new HashSet();
/* 123 */       for (QName header : info.getHeaders())
/* 124 */         headers.add(header);
/* 125 */       handler.setSoapHeaders(headers);
/*     */
/* 128 */       List initParams = new ArrayList();
/* 129 */       Iterator entries = info.getHandlerConfig().entrySet().iterator();
/* 130 */       while (entries.hasNext())
/*     */       {
/* 132 */         Map.Entry entry = (Map.Entry)entries.next();
/* 133 */         String key = (String)entry.getKey();
/* 134 */         Object value = entry.getValue();
/* 135 */         if ((value instanceof String))
/* 136 */           initParams.add(new UnifiedInitParamMetaData(key, (String)value));
/*     */       }
/* 138 */       handler.setInitParams(initParams);
/*     */
/* 140 */       epMetaData.addHandler(handler);
/* 141 */       log.debug("Add handler to: " + portName + handler);
/*     */     }
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.ws.core.jaxrpc.client.HandlerRegistryImpl
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.ws.core.jaxrpc.client.HandlerRegistryImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.