/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.activemq.transport.https;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;

import org.apache.activemq.transport.Transport;
import org.apache.activemq.transport.TransportServer;
import org.apache.activemq.transport.http.HttpTransportFactory;
import org.apache.activemq.wireformat.WireFormat;

/**
 * Factory of HTTPS based transports
 * 
 * @version $Revision: 1.1 $
 */
public class HttpsTransportFactory extends HttpTransportFactory {
    
    public TransportServer doBind(String brokerId, URI location) throws IOException {
        return new HttpsTransportServer(location, this);
    }
    
    public TransportServer doBind(URI location) throws IOException {
        return new HttpsTransportServer(location, this);
    }

    protected Transport createTransport(URI location, WireFormat wf) throws MalformedURLException {
        return new HttpsClientTransport(asTextWireFormat(wf), location);
    }

}

@@ -930,16 +930,100 @@
 net.URI;
+%0Aimport java.net.URISyntaxException;%0Aimport java.util.Map;%0Aimport java.util.HashMap;
 %0A%0Aimport
@@ -1182,16 +1182,166 @@
 actory;%0A
+import org.apache.activemq.util.IntrospectionSupport;%0Aimport org.apache.activemq.util.IOExceptionSupport;%0Aimport org.apache.activemq.util.URISupport;%0A
 import o
@@ -1637,32 +1637,14 @@
 urn 
-new HttpsTransportServer
+doBind
 (loc
@@ -1640,38 +1640,32 @@
  doBind(location
-, this
 );%0A    %7D%0A    %0A  
@@ -1743,56 +1743,512 @@
     
-return new HttpsTransportServer(location, this);
+try %7B%0A            Map%3CString, String%3E options = new HashMap%3CString, String%3E(URISupport.parseParameters(location));%0A            HttpsTransportServer result = new HttpsTransportServer(location, this);%0A            Map%3CString, Object%3E transportOptions = IntrospectionSupport.extractProperties(options, %22transport.%22);%0A            result.setTransportOption(transportOptions);%0A            return result;%0A        %7D catch (URISyntaxException e) %7B%0A            throw IOExceptionSupport.create(e);%0A        %7D%0A        
 %0A   

fix for: https://issues.apache.org/activemq/browse/AMQ-2942