You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2010/12/10 14:16:01 UTC

[jira] Reopened: (AMQ-2939) Disable Spring 3 schema validation

     [ https://issues.apache.org/jira/browse/AMQ-2939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully reopened AMQ-2939:
-----------------------------

    Regression:   (was: [Regression])

embedded xbean url in vm transport does not work with the validation=false query parameter. The parameter is gobbled up by over eater query parsing. Example of uri that won't work:
{code}"vm://localhost?brokerConfig=xbean:appendium-esb-server-activemq-broker-config.xml?validate=false"{code}

Points to a problem in URISupport, the diff below will fix. 
There are some tests(FailoverUriTest) that are dependent on the broken behavour so this needs some care to maintain backward compatibility if possible.
{code}Index: src/main/java/org/apache/activemq/util/URISupport.java
===================================================================
--- src/main/java/org/apache/activemq/util/URISupport.java	(revision 1044145)
+++ src/main/java/org/apache/activemq/util/URISupport.java	(working copy)
@@ -101,9 +101,18 @@
         }
     }
 
+    /**
+     * any leading '?' should already be stripped off
+     */
     public static Map<String, String> parseQuery(String uri) throws URISyntaxException {
         try {
-            uri = uri.substring(uri.lastIndexOf("?") + 1); // get only the relevant part of the query
+            // get only the relevant part of this query string
+            if (uri.indexOf(')') != -1) {
+                uri = uri.substring(0, uri.indexOf(')'));
+            }
+            if (uri.indexOf('?') != -1) {
+                uri = uri.substring(0, uri.indexOf('?')); 
+            }
             Map<String, String> rc = new HashMap<String, String>();
             if (uri != null) {
                 String[] parameters = uri.split("&");{code}

> Disable Spring 3 schema validation
> ----------------------------------
>
>                 Key: AMQ-2939
>                 URL: https://issues.apache.org/jira/browse/AMQ-2939
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.0, 5.4.1
>         Environment: RHEL 4u8
> JDK 1.6.0.23
>            Reporter: Allen Reese
>            Assignee: Gary Tully
>             Fix For: 5.4.2
>
>         Attachments: amq-2939.patch
>
>
> With Activemq 5.3.2, I had this in my activemq.xml:
>  
> <beans xmlns="http://www.springframework.org/schema/beans"
> 	xmlns:amq="http://activemq.apache.org/schema/core" 
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:schemaLocation="
>     http://activemq.apache.org/schema/core
>         http://activemq.apache.org/schema/core/activemq-core-5.4.1.xsd
>     http://camel.apache.org/schema/spring
>     http://camel.apache.org/schema/spring/camel-spring.xsd
>     http://www.springframework.org/schema/beans
> 	http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> 	">
> <bean id="myPlugin" class="com.yahoo.MyPlugin">
> 	<property name="disabled">
> 		<value>false</value>
> 	</property>
> </bean>
> <broker xmlns="http://activemq.apache.org/schema/core"
> 	brokerName="broker1" dataDirectory="${activemq.base}/data" plugins="#myPlugin">
> 	<transportConnectors>
> 		<transportConnector name="openwire" uri="tcp://0.0.0.0:61616" />
> 	</transportConnectors>
> </broker>
> </beans>
> Relevant email thread.
> -----Original Message-----
> From: chubrilo@gmail.com [mailto:chubrilo@gmail.com] On Behalf Of Dejan Bosanac
> Sent: Thursday, September 23, 2010 4:19 AM
> To: users@activemq.apache.org
> Subject: Re: configuring plugins with activemq 5.4.1
> Hi Allen,
> can you raise an issue for this, as it is an obvious regression? It's probably due the fact that in 5.4 we're back to autogenerating schema.
> Cheers
> --
> Dejan Bosanac - http://twitter.com/dejanb
> Open Source Integration - http://fusesource.com/ ActiveMQ in Action - http://www.manning.com/snyder/ Blog - http://www.nighttale.net
> On Wed, Sep 22, 2010 at 10:58 PM, Allen Reese <ar...@yahoo-inc.com> wrote:
> > The problem is plugins as an attribute of broker seems to be removed in the 5.4.1 xsd.
> >
> > I want to configure the plugin once outside of the brokers, the reason is, I use an <import resource="brokers.xml">, and want to allow other people to reuse the plugin configuration without having to have it as part of their broker definition.
> >
> > I guess I'll keep playing around as I have some other ideas of how to do this, but I'm still confused if I setup my own xsd with an element for the plugin, how do I tie that to the plugin bean?
> >
> > --Allen
> >
> >
> > -----Original Message-----
> > From: Stan Lewis [mailto:slewis@fusesource.com]
> > Sent: Wednesday, September 22, 2010 3:10 PM
> > To: users@activemq.apache.org
> > Subject: Re: configuring plugins with activemq 5.4.1
> >
> > Should be able to do something like:
> >
> > <plugins>
> >   <bean xmlns="http://www.springframework.org/schema/beans"
> > id="myPlugin" class="com.yahoo.MyPlugin">
> >        <property name="disabled">
> >                <value>false</value>
> >        </property>
> >   </bean>
> > </plugins>
> >
> > for this, there's some other examples here:
> >
> > http://activemq.apache.org/developing-plugins.html#DevelopingPlugins-C
> > onfiguringpluginswithoutcustomXML
> >
> > On Wed, Sep 22, 2010 at 3:48 PM, Allen Reese <ar...@yahoo-inc.com> wrote:
> >> With Activemq 5.3.2, I had this in my activemq.xml:
> >>
> >> <beans xmlns="http://www.springframework.org/schema/beans"
> >>        xmlns:amq="http://activemq.apache.org/schema/core"
> >>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>        xsi:schemaLocation="
> >>    http://activemq.apache.org/schema/core
> >>        http://activemq.apache.org/schema/core/activemq-core-5.4.1.xsd
> >>    http://camel.apache.org/schema/spring
> >>    http://camel.apache.org/schema/spring/camel-spring.xsd
> >>    http://www.springframework.org/schema/beans
> >>
> >> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> >>        ">
> >>
> >> <bean id="myPlugin" class="com.yahoo.MyPlugin">
> >>        <property name="disabled">
> >>                <value>false</value>
> >>        </property>
> >> </bean>
> >>
> >> <broker xmlns="http://activemq.apache.org/schema/core"
> >>        brokerName="broker1" dataDirectory="${activemq.base}/data"
> >> plugins="#myPlugin">
> >>        <transportConnectors>
> >>                <transportConnector name="openwire"
> >> uri="tcp://0.0.0.0:61616" />
> >>        </transportConnectors>
> >> </broker>
> >> </beans>
> >>
> >> However, when I upgrade to 5.4.1, this no longer works as plugins is no longer supported as an attribute of the broker element.
> >>
> >> I'm not really certain how to wire in a custom plugin any more, can anyone provide some information on how to do this with the 5.4.1 schema?
> >>
> >> Here was my first shot at it, but I know I'm missing how to tie the bean to the namespace.
> >>
> >> <beans xmlns="http://www.springframework.org/schema/beans"
> >>        xmlns:amq="http://activemq.apache.org/schema/core"
> >>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>        xsi:schemaLocation="
> >>    http://activemq.apache.org/schema/core
> >>        http://activemq.apache.org/schema/core/activemq-core-5.4.1.xsd
> >>    http://camel.apache.org/schema/spring
> >>    http://camel.apache.org/schema/spring/camel-spring.xsd
> >>    http://www.springframework.org/schema/beans
> >>        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
> >>      >
> >>
> >> <bean id="myPlugin" class="com.yahoo.MyPlugin">
> >>        <property name="disabled">
> >>                <value>false</value>
> >>        </property>
> >> </bean>
> >>
> >>        <broker xmlns="http://activemq.apache.org/schema/core"
> >>                brokerName="broker1"
> >> dataDirectory="${activemq.base}/data">
> >>        <plugins><myPlugin
> >> xmlns="http://yahoo.com/schema/java"/></plugins>
> >>                <transportConnectors>
> >>                        <transportConnector name="stomp"
> >> uri="tcp://0.0.0.0:61616" />
> >>                </transportConnectors>
> >>        </broker>
> >> </beans>
> >>
> >> Thanks.
> >>
> >> --Allen Reese
> >

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.