You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/10/06 12:07:01 UTC
[2/2] qpid-proton-j git commit: PROTON-1606: move options into
reactor package and simplify as a property, expose via reactor for use,
apply option to acceptors as well.
PROTON-1606: move options into reactor package and simplify as a property, expose via reactor for use, apply option to acceptors as well.
Updates for changes in #11 / 819e4c3a468f5b0cd65625f86edca82f448468aa
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/commit/1b858d4f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/tree/1b858d4f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/diff/1b858d4f
Branch: refs/heads/master
Commit: 1b858d4fc3b34f2d6ea28ef050482d8097201bd8
Parents: 819e4c3
Author: Robbie Gemmell <ro...@apache.org>
Authored: Fri Oct 6 12:53:55 2017 +0100
Committer: Robbie Gemmell <ro...@apache.org>
Committed: Fri Oct 6 12:53:55 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/qpid/proton/Proton.java | 2 +-
.../org/apache/qpid/proton/ReactorOptions.java | 52 --------------------
.../org/apache/qpid/proton/reactor/Reactor.java | 9 +++-
.../qpid/proton/reactor/ReactorOptions.java | 49 ++++++++++++++++++
.../qpid/proton/reactor/impl/AcceptorImpl.java | 11 +++--
.../qpid/proton/reactor/impl/IOHandler.java | 14 +-----
.../qpid/proton/reactor/impl/ReactorImpl.java | 19 ++++---
7 files changed, 78 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/Proton.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/Proton.java b/proton-j/src/main/java/org/apache/qpid/proton/Proton.java
index f80cfee..72f4e04 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/Proton.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/Proton.java
@@ -40,6 +40,7 @@ import org.apache.qpid.proton.engine.SslPeerDetails;
import org.apache.qpid.proton.engine.Transport;
import org.apache.qpid.proton.message.Message;
import org.apache.qpid.proton.reactor.Reactor;
+import org.apache.qpid.proton.reactor.ReactorOptions;
public final class Proton
{
@@ -107,7 +108,6 @@ public final class Proton
return reactor;
}
-
public static Reactor reactor(ReactorOptions options) throws IOException
{
return Reactor.Factory.create(options);
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/ReactorOptions.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/ReactorOptions.java b/proton-j/src/main/java/org/apache/qpid/proton/ReactorOptions.java
deleted file mode 100644
index bfe368d..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/ReactorOptions.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * 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.qpid.proton;
-
-public class ReactorOptions {
- private boolean isSaslCreatedByDefault;
-
- public ReactorOptions() {
- //Default case creates SASL
- isSaslCreatedByDefault = true;
- }
-
- /**
- * The default handlers will not create the SASL layer by default. They can still be created by user later
- */
- public void disableSaslByDefault() {
- this.isSaslCreatedByDefault = false;
- }
-
- /**
- * The default handlers will create the SASL layer by default.
- */
- public void enableSaslByDefault() {
- this.isSaslCreatedByDefault = true;
- }
-
- /**
- * Returns If the SASL is created by default
- * @return True if SASL will be created by default. False otherwise
- */
- public boolean isSaslCreatedByDefault() {
- return this.isSaslCreatedByDefault;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/reactor/Reactor.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/Reactor.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/Reactor.java
index 86aeed5..0fb28a1 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/Reactor.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/Reactor.java
@@ -24,7 +24,6 @@ package org.apache.qpid.proton.reactor;
import java.io.IOException;
import java.util.Set;
-import org.apache.qpid.proton.ReactorOptions;
import org.apache.qpid.proton.engine.BaseHandler;
import org.apache.qpid.proton.engine.Collector;
import org.apache.qpid.proton.engine.Connection;
@@ -32,6 +31,7 @@ import org.apache.qpid.proton.engine.Event.Type;
import org.apache.qpid.proton.engine.Handler;
import org.apache.qpid.proton.engine.HandlerException;
import org.apache.qpid.proton.engine.Record;
+import org.apache.qpid.proton.reactor.ReactorOptions;
import org.apache.qpid.proton.reactor.impl.ReactorImpl;
/**
@@ -284,6 +284,13 @@ public interface Reactor {
void setConnectionHost(Connection c, String host, int port);
/**
+ * Gets the reactor options.
+ *
+ * @return the reactor options
+ */
+ ReactorOptions getOptions();
+
+ /**
* Get the address used by the connection
* <p>
* This may be used to retrieve the remote peer address.
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
new file mode 100644
index 0000000..5863f7c
--- /dev/null
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
@@ -0,0 +1,49 @@
+/*
+ *
+ * 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.qpid.proton.reactor;
+
+public class ReactorOptions {
+ private boolean enableSaslByDefault = true;
+
+ /**
+ * Sets whether SASL will be automatically enabled with ANONYMOUS as the mechanism,
+ * or if no SASL layer will be enabled. If disabled, the application handlers
+ * can still enable SASL on the transport when it is bound to the connection.
+ *
+ * True by default.
+ *
+ * @param enableSaslByDefault
+ * true if SASL should be enabled by default, false if not.
+ */
+ public void setEnableSaslByDefault(boolean enableSaslByDefault) {
+ this.enableSaslByDefault = enableSaslByDefault;
+ }
+
+ /**
+ * Returns whether SASL should be enabled by default.
+ *
+ * @return True if SASL should be enabled by default, false if not.
+ * @see #setEnableSaslByDefault(boolean)
+ */
+ public boolean isEnableSaslByDefault() {
+ return this.enableSaslByDefault;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
index b9fd1de..7275113 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
@@ -37,6 +37,7 @@ import org.apache.qpid.proton.engine.Transport;
import org.apache.qpid.proton.engine.impl.RecordImpl;
import org.apache.qpid.proton.reactor.Acceptor;
import org.apache.qpid.proton.reactor.Reactor;
+import org.apache.qpid.proton.reactor.ReactorOptions;
import org.apache.qpid.proton.reactor.impl.ReactorImpl;
import org.apache.qpid.proton.reactor.Selectable;
import org.apache.qpid.proton.reactor.Selectable.Callback;
@@ -72,10 +73,12 @@ public class AcceptorImpl implements Acceptor {
conn_recs.set(ReactorImpl.CONNECTION_PEER_ADDRESS_KEY, Address.class, addr);
}
Transport trans = Proton.transport();
- Sasl sasl = trans.sasl();
- sasl.server();
- sasl.setMechanisms("ANONYMOUS");
- sasl.done(SaslOutcome.PN_SASL_OK);
+ if(reactor.getOptions().isEnableSaslByDefault()) {
+ Sasl sasl = trans.sasl();
+ sasl.server();
+ sasl.setMechanisms("ANONYMOUS");
+ sasl.done(SaslOutcome.PN_SASL_OK);
+ }
trans.bind(conn);
IOHandler.selectableTransport(reactor, socketChannel.socket(), trans);
} catch(IOException ioException) {
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
index d4373c8..0594d32 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
@@ -29,7 +29,6 @@ import java.nio.channels.SocketChannel;
import java.util.Iterator;
import org.apache.qpid.proton.Proton;
-import org.apache.qpid.proton.ReactorOptions;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.transport.ErrorCondition;
import org.apache.qpid.proton.engine.BaseHandler;
@@ -47,19 +46,8 @@ import org.apache.qpid.proton.reactor.Selector;
import org.apache.qpid.proton.reactor.Acceptor;
import org.apache.qpid.proton.reactor.impl.AcceptorImpl;
-@SuppressWarnings("deprecation")
public class IOHandler extends BaseHandler {
- private ReactorOptions options;
-
- public IOHandler() {
- this.options = new ReactorOptions();
- }
-
- public IOHandler(ReactorOptions options) {
- this.options = options;
- }
-
// pni_handle_quiesced from connection.c
private void handleQuiesced(Reactor reactor, Selector selector) throws IOException {
// check if we are still quiesced, other handlers of
@@ -113,7 +101,7 @@ public class IOHandler extends BaseHandler {
}
Transport transport = Proton.transport();
- if (this.options.isSaslCreatedByDefault()) {
+ if (reactor.getOptions().isEnableSaslByDefault()) {
Sasl sasl = transport.sasl();
sasl.client();
sasl.setMechanisms("ANONYMOUS");
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/1b858d4f/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/ReactorImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/ReactorImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/ReactorImpl.java
index b629dab..ab71f8a 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/ReactorImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/ReactorImpl.java
@@ -29,7 +29,6 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.qpid.proton.Proton;
-import org.apache.qpid.proton.ReactorOptions;
import org.apache.qpid.proton.engine.BaseHandler;
import org.apache.qpid.proton.engine.Collector;
import org.apache.qpid.proton.engine.Connection;
@@ -48,12 +47,12 @@ import org.apache.qpid.proton.reactor.Acceptor;
import org.apache.qpid.proton.reactor.impl.AcceptorImpl;
import org.apache.qpid.proton.reactor.Reactor;
import org.apache.qpid.proton.reactor.ReactorChild;
+import org.apache.qpid.proton.reactor.ReactorOptions;
import org.apache.qpid.proton.reactor.Selectable;
import org.apache.qpid.proton.reactor.Selectable.Callback;
import org.apache.qpid.proton.reactor.Selector;
import org.apache.qpid.proton.reactor.Task;
-@SuppressWarnings("deprecation")
public class ReactorImpl implements Reactor, Extendable {
public static final ExtendableAccessor<Event, Handler> ROOT = new ExtendableAccessor<>(Handler.class);
@@ -73,6 +72,7 @@ public class ReactorImpl implements Reactor, Extendable {
private Selector selector;
private Record attachments;
private final IO io;
+ private final ReactorOptions options;
protected static final String CONNECTION_PEER_ADDRESS_KEY = "pn_reactor_connection_peer_address";
@Override
@@ -87,6 +87,10 @@ public class ReactorImpl implements Reactor, Extendable {
}
protected ReactorImpl(IO io) throws IOException {
+ this(io, new ReactorOptions());
+ }
+
+ protected ReactorImpl(IO io, ReactorOptions options) throws IOException {
collector = (CollectorImpl)Proton.collector();
global = new IOHandler();
handler = new BaseHandler();
@@ -97,11 +101,7 @@ public class ReactorImpl implements Reactor, Extendable {
wakeup = this.io.pipe();
mark();
attachments = new RecordImpl();
- }
-
- protected ReactorImpl(IO io, ReactorOptions options) throws IOException {
- this(io);
- global = new IOHandler(options);
+ this.options = options;
}
public ReactorImpl() throws IOException {
@@ -144,6 +144,11 @@ public class ReactorImpl implements Reactor, Extendable {
}
@Override
+ public ReactorOptions getOptions() {
+ return options;
+ }
+
+ @Override
public long getTimeout() {
return timeout;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org