Author: indika
Date: Mon Oct 29 23:15:36 2007
New Revision: 589969

URL: http://svn.apache.org/viewvc?rev=589969&view=rev
Log:
fixed an issue in throttle mediator- remove static map

Modified:
    
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
    
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorFactory.java
    
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorSerializer.java

Modified: 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java?rev=589969&r1=589968&r2=589969&view=diff
==============================================================================
--- 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
 Mon Oct 29 23:15:36 2007
@@ -25,6 +25,7 @@
 import org.apache.synapse.config.Entry;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
 import org.apache.synapse.mediators.AbstractMediator;
+import org.apache.axis2.context.ConfigurationContext;
 import org.wso2.throttle.*;
 import org.wso2.throttle.factory.AccessControllerFactory;
 
@@ -41,8 +42,7 @@
 
 public class ThrottleMediator extends AbstractMediator {
 
-    /** static map to share all concurrent access controllers */
-    public final static Map CONCURRENT_ACCESS_CONTROLLERS = 
Collections.synchronizedMap(new HashMap());
+    private static final String  KEY ="keyOfConcurrentAcessControllers";
     /** The key for getting the throttling policy - key refers to a/an 
[registry] entry  */
     private String policyKey = null;
     /** InLine policy object - XML */
@@ -87,12 +87,27 @@
             // for response messages, load the concurrent access controller 
object
             // do this ONLY ONCE - the first time when our iniial reference is 
null
             if (concurrentAccessController == null && id != null) {
-                concurrentAccessController =
-                    (ConcurrentAccessController) 
CONCURRENT_ACCESS_CONTROLLERS.get(id);
-                concurrentLimit = concurrentAccessController.getLimit();
-                if (traceOrDebugOn) {
-                    traceOrDebug(traceOn, "Concurrent access controller for ID 
: " + id +
-                        " allows : " + concurrentLimit + " concurrent 
accesses");
+
+                org.apache.axis2.context.MessageContext axis2MessageContext
+                    = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
+
+                ConfigurationContext configctx = 
axis2MessageContext.getConfigurationContext();
+
+                Map accessContollers = (Map) configctx.getProperty(KEY);
+
+                if (accessContollers != null) {
+
+                    concurrentAccessController =
+                        (ConcurrentAccessController) accessContollers.get(id);
+
+                    if (concurrentAccessController != null) {
+
+                        concurrentLimit = 
concurrentAccessController.getLimit();
+                        if (traceOrDebugOn) {
+                            traceOrDebug(traceOn, "Concurrent access 
controller for ID : " + id +
+                                " allows : " + concurrentLimit + " concurrent 
accesses");
+                        }
+                    }
                 }
             }
         }
@@ -349,10 +364,20 @@
                         "Initiating ConcurrentAccessControler for throttle 
group id : " + id
                             + " limit : " + concurrentLimit);
                 }
+                
+                org.apache.axis2.context.MessageContext axis2MessageContext
+                    = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
+                ConfigurationContext configctx = 
axis2MessageContext.getConfigurationContext();
+                Map accessContollers = (Map) configctx.getProperty(KEY);
+
+                if(accessContollers == null){
+                    accessContollers = new HashMap();
+                    configctx.setProperty(KEY,accessContollers);
+                }
                 if (concurrentAccessController == null) {
-                    CONCURRENT_ACCESS_CONTROLLERS.remove(id);
+                    accessContollers.remove(id);
                 } else {
-                    CONCURRENT_ACCESS_CONTROLLERS.put(id, 
concurrentAccessController);
+                    accessContollers.put(id, concurrentAccessController);
                 }
             }
         }

Modified: 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorFactory.java?rev=589969&r1=589968&r2=589969&view=diff
==============================================================================
--- 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorFactory.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorFactory.java
 Mon Oct 29 23:15:36 2007
@@ -25,13 +25,18 @@
 import org.apache.synapse.Mediator;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.xpath.AXIOMXPath;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jaxen.JaxenException;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
 import java.util.Iterator;
+import java.io.StringReader;
 
 import net.sf.saxon.javax.xml.xquery.XQItemType;
 
@@ -43,10 +48,7 @@
  *   <dataSource>*
  *      <property name="string" value="literal"/>*
  *   </dataSource>
- *   <variables>*
- *      <basic name="string"  type="int" value="literal">*
- *      <custom name="string" type ="int" [key="string"] [expression=XPath] />*
- *   <variables>
+ *   <variable name="string"  type="int" value="literal" [key="string"] 
[expression=XPath] />*
  * </xquery>
  * </pre>
  */
@@ -123,7 +125,7 @@
                         if (key != null) {
                             ((MediatorCustomVariable) 
variable).setRegKey(key.trim());
                         }
-                        if (expr != null) {
+                        if (expr != null && !"".equals(expr)) {
                             try {
                                 AXIOMXPath xp = new AXIOMXPath(expr.trim());
                                 OMElementUtils.addNameSpaces(xp, variableOM, 
log);

Modified: 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorSerializer.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorSerializer.java?rev=589969&r1=589968&r2=589969&view=diff
==============================================================================
--- 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorSerializer.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediatorSerializer.java
 Mon Oct 29 23:15:36 2007
@@ -41,10 +41,7 @@
  *   <dataSource>*
  *      <property name="string" value="literal"/>*
  *   </dataSource>
- *   <variables>*
- *      <basic name="string"  type="int" value="literal">*
- *      <custom name="string" type ="int" [key="string"] [expression=XPath] />*
- *   <variables>
+ *   <variable name="string"  type="int" value="literal" [key="string"] 
[expression=XPath] />*
  * </xquery>
  * </pre>
  */
@@ -121,6 +118,12 @@
                             type = "FLOAT";
                         } else if (XQItemType.XQBASETYPE_STRING == 
varibelType) {
                             type = "STRING";
+                        } else if (XQItemType.XQITEMKIND_DOCUMENT == 
varibelType) {
+                            type = "DOCUMENT";
+                        } else if (XQItemType.XQITEMKIND_DOCUMENT_ELEMENT == 
varibelType) {
+                            type = "DOCUMENT_ELEMENT";
+                        } else if (XQItemType.XQITEMKIND_ELEMENT == 
varibelType) {
+                            type = "ELEMENT";
                         } else {
                             handleException("Unknown Type " + varibelType);
                         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to