PROTON-1362: remove previously-deprecated Messenger
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/2afe2ec0 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/tree/2afe2ec0 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/diff/2afe2ec0 Branch: refs/heads/master Commit: 2afe2ec099d8154a3f1f843d3e62246dbc50c016 Parents: 2f85988 Author: Robert Gemmell <[email protected]> Authored: Tue Jan 10 15:55:05 2017 +0000 Committer: Robert Gemmell <[email protected]> Committed: Tue Jan 10 15:55:05 2017 +0000 ---------------------------------------------------------------------- docs/markdown/index.md | 27 - .../messenger/addressing-and-routing.md | 210 --- docs/markdown/messenger/index.md | 13 - docs/markdown/messenger/message-disposition.md | 196 --- docs/markdown/messenger/quick-start-linux.md | 73 - .../markdown/messenger/sending-and-receiving.md | 144 -- examples/java/messenger/README.txt | 22 - examples/java/messenger/pom.xml | 41 - examples/java/messenger/recv | 31 - examples/java/messenger/send | 29 - .../org/apache/qpid/proton/example/Recv.java | 133 -- .../org/apache/qpid/proton/example/Send.java | 104 -- pom.xml | 1 - .../java/org/apache/qpid/proton/Proton.java | 30 - .../apache/qpid/proton/driver/Connector.java | 127 -- .../org/apache/qpid/proton/driver/Driver.java | 160 -- .../org/apache/qpid/proton/driver/Listener.java | 61 - .../qpid/proton/driver/impl/ConnectorImpl.java | 280 ---- .../qpid/proton/driver/impl/DriverImpl.java | 254 --- .../qpid/proton/driver/impl/ListenerImpl.java | 93 -- .../apache/qpid/proton/messenger/Messenger.java | 285 ---- .../proton/messenger/MessengerException.java | 51 - .../apache/qpid/proton/messenger/Status.java | 37 - .../apache/qpid/proton/messenger/Tracker.java | 28 - .../qpid/proton/messenger/impl/Address.java | 220 --- .../proton/messenger/impl/MessengerImpl.java | 1555 ------------------ .../qpid/proton/messenger/impl/Store.java | 213 --- .../qpid/proton/messenger/impl/StoreEntry.java | 185 --- .../qpid/proton/messenger/impl/TrackerImpl.java | 58 - .../qpid/proton/messenger/impl/Transform.java | 150 -- .../qpid/proton/reactor/impl/AcceptorImpl.java | 1 - .../qpid/proton/reactor/impl/Address.java | 219 +++ .../qpid/proton/reactor/impl/IOHandler.java | 1 - .../qpid/proton/reactor/impl/ReactorImpl.java | 1 - .../qpid/proton/messenger/impl/AddressTest.java | 68 - .../qpid/proton/reactor/impl/AddressTest.java | 68 + tests/java/pythonTests.ignore | 3 - tests/java/shim/binding/proton/__init__.py | 618 ------- tests/java/shim/cmessenger.py | 225 --- tests/java/shim/cproton.py | 1 - tests/java/shim/curl.py | 2 +- tests/python/proton_tests/__init__.py | 2 - tests/python/proton_tests/common.py | 305 ---- tests/python/proton_tests/messenger.py | 1091 ------------ tests/python/proton_tests/soak.py | 368 ----- tests/python/proton_tests/ssl.py | 211 --- 46 files changed, 288 insertions(+), 7707 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/docs/markdown/index.md ---------------------------------------------------------------------- diff --git a/docs/markdown/index.md b/docs/markdown/index.md deleted file mode 100644 index 5262c44..0000000 --- a/docs/markdown/index.md +++ /dev/null @@ -1,27 +0,0 @@ - -Proton is a library for speaking AMQP, including: - -- The AMQP [Messenger API](messenger/index.html), a simple but powerful interface to send and receive - messages over AMQP. -- The [AMQP Protocol Engine](engine/engine.html), a succinct encapsulation of the full - AMQP protocol machinery. - -Proton is designed for maximum embeddability: - -- minimal dependencies -- minimal assumptions about application threading model - -Proton is designed to scale up and down: - -- transparently supports both simple peer to peer messaging and complex -globally federated topologies - -Proton is multi-lingual: - -- Proton-C - a C implementation with lanuage bindings in Python, Php, Perl, -Ruby, and Java (via JNI). -- Proton-J - a pure Java implementation - -Please see http://qpid.apache.org/proton for a more info. - - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/docs/markdown/messenger/addressing-and-routing.md ---------------------------------------------------------------------- diff --git a/docs/markdown/messenger/addressing-and-routing.md b/docs/markdown/messenger/addressing-and-routing.md deleted file mode 100644 index 9714e1e..0000000 --- a/docs/markdown/messenger/addressing-and-routing.md +++ /dev/null @@ -1,210 +0,0 @@ - -Messenger Addressing and Routing -================================================= - - -Addressing -------------------------- - -An address has the following form: - - [ amqp[s]:// ] [user[:password]@] domain [/[name]] - -Where domain can be one of: - - host | host:port | ip | ip:port | name - -The following are valid examples of addresses: - - * example.org - * example.org:1234 - * amqp://example.org - * amqps://example.org - * example.org/incoming - * amqps://example.org/outgoing - * amqps://fred:[email protected] - * 127.0.0.1:1234 - * amqps://127.0.0.1:1234 - -The "/name" part of the address, that optionally follows -the domain, is not used by the Messenger library. -For example, if a receiver subscribes to - - amqp://~0.0.0.0:5678 - -Then it will receive messages sent to - - amqp://~0.0.0.0:5678 -as well as - amqp://~0.0.0.0:5678/foo - - -Likewise, if the receiver subscribes to - - amqp://~0.0.0.0:5678/foo - -it will receive messages addressed to - - amqp://~0.0.0.0:5678/foo - amqp://~0.0.0.0:5678 - -and - - amqp://~0.0.0.0:5678/bar - - - - -<br/> - -Routing ------------------------------- - -### Pattern Matching, Address Translation, and Message Routing ### - -The Messenger library provides message routing capability -with an address translation table. Each entry in the table -consists of a *pattern* and a *translation*. - -You store a new route entry in the table with the call: - - pn_messenger_route(messenger, pattern, translation); - - -The address of each outgoing message is compared to the -table's patterns until the first matching pattern is found, -or until all patterns have failed to match. - -If no pattern matches, then Messenger will send (or attempt -to send) your message with the address as given. - -If a pattern does match your outgoing message's address, then -Messenger will create a temporary address by transforming -your message's address. Your message will be sent to the -transformed address, but **(note!)** the address on your -outgoing message will not be changed. The receiver will see -the original, not the transformed address. - - -<br/> - -### Two Translation Mechanisms ### - - -Messenger uses two mechanisms to translate addresses. -The first is simple string substitution. - - - pattern: COLOSSUS - translation: amqp://0.0.0.0:6666 - input addr: COLOSSUS - result: amqp://0.0.0.0:6666 - - -The second mechanism is wildcard/variable substitution. -A wildcard in the pattern matches all or part of your -input address. The part of your input address that matched -the wildcard is stored. The matched value is then inserted -into your translated address in place of numbered variables: -$1, $2, and so on, up to a maximum of 64. - -There are two wildcards: * and % . -The rules for matching are: - - * matches anything - % matches anything but a / - other characters match themselves - the whole input addr must be matched - - -Examples of wildcard matching: - - pattern: /%/%/% - translation: $1x$2x$3 - input addr: /foo/bar/baz - result: fooxbarxbaz - - pattern: * - translation: $1 - inout addr: /foo/bar/baz - result: /foo/bar/baz - - pattern: /* - translation: $1 - input addr: /foo/bar/baz - result: foo/bar/baz - - pattern: /*baz - translation: $1 - input addr: /foo/bar/baz - result: foo/bar/ - - pattern: /%baz - translation: $1 - input addr: /foo/bar/baz - result: FAIL - - pattern: /%/baz - translation: $1 - input addr: /foo/bar/baz - result: FAIL - - pattern: /%/%/baz - translation: $1 - input addr: /foo/bar/baz - result: foo - - pattern: /*/baz - translation: $1 - input addr: /foo/bar/baz - result: foo/bar - - -Examples of route translation usage: - - pattern: foo - translation: amqp://foo.com - explanation: Any message sent to "foo" will be routed to "amqp://foo.com" - - - pattern: bar/* - translation: amqp://bar.com/$1 - explanation: Any message sent to bar/<path> will be routed to the corresponding path within the amqp://bar.com domain. - - - pattern: amqp:* - translation: amqps:$1 - explanation: Route all messages over TLS. - - - pattern: amqp://foo.com/* - translation: amqp://user:[email protected]/$1 - explanation: Supply credentials for foo.com. - - - pattern: amqp://* - translation: amqp://user:password@$1 - explanation: Supply credentials for all domains. - - - pattern: amqp://%/* - translation: amqp://user:password@proxy/$1/$2 - explanation: Route all addresses through a single proxy while preserving the - original destination. - - - pattern: * - translation: amqp://user:password@broker/$1 - explanation: Route any address through a single broker. - - - -<br/> - -### First Match Wins ### - -If you create multiple routing rules, each new rule is appended -to your Messenger's list. At send-time, Messenger looks down the -list, and the first rule that matches your outgoing message's -address wins. Thus, when creating your routing rules, you should -create them in order of most specific first, most general last. http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/docs/markdown/messenger/index.md ---------------------------------------------------------------------- diff --git a/docs/markdown/messenger/index.md b/docs/markdown/messenger/index.md deleted file mode 100644 index e8ccaa4..0000000 --- a/docs/markdown/messenger/index.md +++ /dev/null @@ -1,13 +0,0 @@ -Proton Messenger Documentation -========================================== - -Proton Messenger is a high-level API that lets you build simple but powerful messaging systems. - -- Use the [Linux Quick Start](quick-start-linux.html) to download, build, and run your first Messenger example in two minutes. - -- Examples and explanations of Messenger's [Sending and Receiving](sending-and-receiving.html) capabilities. - -- Use [Message Disposition](message-disposition.html) functionality to create reliable messaging systems. - -- Messenger's [Addressing and Routing](addressing-and-routing.html) capabilities allow you to separate application code from installation-specific configuration information. - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/docs/markdown/messenger/message-disposition.md ---------------------------------------------------------------------- diff --git a/docs/markdown/messenger/message-disposition.md b/docs/markdown/messenger/message-disposition.md deleted file mode 100644 index bf66d2e..0000000 --- a/docs/markdown/messenger/message-disposition.md +++ /dev/null @@ -1,196 +0,0 @@ -Message Disposition -=============================== - - -Messenger disposition operations allow a receiver to accept or -reject specific messages, or ranges of messages. Senders can -then detect the disposition of their messages. - - -Message States ---------------------------- - -Messages have one of four different states: - `PN_STATUS_UNKNOWN` - `PN_STATUS_PENDING` - `PN_STATUS_ACCEPTED` - `PN_STATUS_REJECTED` - -<br/> - - -Windows and Trackers ----------------------------- - -<br/> - -Messenger does not track the disposition of every message that -it sends or receives. To set (or get) the disposition of a -message, that message must be within your incoming (or outgoing) -window. - -( I will use the incoming direction as the example. The outgoing -direction works similarly. ) - -When you call - - pn_messenger_set_incoming_window(messenger, window_size); - -you have only declared the window size. The window is not yet -created. The window will be created when you issue your first -call to - - pn_messenger_get(messenger, msg); - -And the window will be further populated only by further calls to -pn_messenger_get(). - - - - - - - -### Receiving ### - -To explicitly set or get message dispositions, your messenger -must set a positive size for its incoming window: - - pn_messenger_set_incoming_window(messenger, N); - -You can implicity accept messages by simply letting enough -new messages arrive. As older messages pass beyond the threshold -of your incoming window size, they will be automatically -accepted. Thus, if you want to automatically accept all -messages as they arrive, you can set your incoming window -size to 0. - -To exercise *explicit* control over particular messages or ranges -of messages, the receiver can use trackers. The call - - pn_messenger_incoming_tracker(messenger); - -will return a tracker for the message most recently returned -by a call to - - pn_messenger_get(messenger, message); -With a message that is being tracked, the messenger can accept -(or reject) that individual message: - - pn_messenger_accept(messenger, tracker, 0); - pn_messenger_reject(messenger, tracker, 0); - -Or it can accept (or reject) the tracked message as well as all older -messages back to the limit of the incoming window: - - pn_messenger_accept(messenger, tracker, PN_CUMULATIVE); - pn_messenger_reject(messenger, tracker, PN_CUMULATIVE); - -Once a message is accepted or rejected, its status can no longer -be changed, even if you have a separate tracker associated with it. - - - -<br/> - -###When to Accept### - -Although you *can* accept messages implicitly by letting them fall -off the edge of your incoming window, you *shouldn't*. Message -disposition is an important form of communication to the sender. -The best practice is to let the sender know your response, by -explicit acceptance or rejection, as soon as you can. Implicitly -accepting messages by allowing them to fall off the edge of the -incoming window could delay your response to the sender for an -unpredictable amount of time. - -A nonzero window size places a limit on -how much state your Messenger needs to track. - -<br/> - -###Accepting by Accident#### - -If you allow a message to "fall off the edge" of your incoming -window before you have explicitly accepted or rejected it, then -it will be accepted automatically. - -But since your incoming window is only filled by calls to - - pn_messenger_get(messenger, msg); - -messages cannot be forced to fall over the edge by simply -receiving more messages. Messages will not be forced over the -edge of the incoming window unless you make too many calls to -`pn_messenger_get()` without explicitly accepting or rejecting -the messages. - -Your application should accept or reject each message as soon -as practical after getting and processing it. - - - - -<br/> -<br/> - - - -### Sending ### - -A sender can learn how an individual message has been received -if it has a positive outgoing window size: - - pn_messenger_set_outgoing_window(messenger, N); - -and if a tracker has been associated with that message in question. -This call: - - pn_messenger_outgoing_tracker(messenger); - -will return a tracker for the message most recently given to: - - pn_messenger_put(messenger, message); - -To later find the status of the individual tracked message, you can call: - - pn_messenger_status(messenger, tracker); - -The returned value will be one of - -* `PN_STATUS_ACCEPTED` -* `PN_STATUS_REJECTED` , or -* `PN_STATUS_PENDING` - If the receiver has not disposed the message yet. - - -If either the sender or the receiver simply declares the message (or range of messages) to -be settled, with one of these calls: - - pn_messenger_settle(messenger, tracker, 0); - pn_messenger_settle(messenger, tracker, PN_CUMULATIVE); - -then the sender will see `PN_STATUS_PENDING` as the status of any -settled messages. - -<br/> - - -### Message Rejection ### -If a message is rejected by the receiver, it does not mean that -the message was malformed. Malformed messages cannot be sent. -Even messages with no content are valid messages. -Rejection by a receiver should be understood as the receiver -saying "I don't want this." or possibly "I don't want this *yet*." -depending on your application. -The sender could decide to try sending the same message again later, -or to send the message to another receiver, or to discard it. - -The AMQP 1.0 specification permits a distinction -between *rejecting* the message, and *releasing* the message, -but the Proton library does not expose the *releasing* -disposition. - - - - - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/docs/markdown/messenger/quick-start-linux.md ---------------------------------------------------------------------- diff --git a/docs/markdown/messenger/quick-start-linux.md b/docs/markdown/messenger/quick-start-linux.md deleted file mode 100644 index e8ef466..0000000 --- a/docs/markdown/messenger/quick-start-linux.md +++ /dev/null @@ -1,73 +0,0 @@ -Linux Proton Messenger Quick Start -============================================== - - -On a Linux system, these instructions take you from -zero to running your first example code. You will -need root privileges for one of the commands. - - - - -Prerequisite Packages ---------------------------------- - -For a minimum build, you will need packages installed on your -box for : - - subversion - gcc - cmake - libuuid-devel - - - -Quick Start Commands ---------------------------- - - svn co http://svn.apache.org/repos/asf/qpid/proton/trunk proton - cd ./proton - mkdir ./build - cd ./build - cmake .. - make all - # Become root and go to your build dir. - make install - # Stop being root. - # Now let's see if it works. - cd ./proton-c/examples/messenger/c - ./recv & - ./send - # You're done ! ( Kill that recv process. ) - # The output you should see: - - Address: amqp://0.0.0.0 - Subject: (no subject) - Content: "Hello World!" - - - - - -Notes ----------------------------- - -1. If you will be editing and checking in code from this tree, - replace the "svn co" line with this: - - svn co https://svn.apache.org/repos/asf/qpid/proton/trunk - - You must check out through https, or you will not be able to - check in code changes from your tree. - - -2. The recv application in the example defaults to the same port - as the qpid demon. If you happen to have that demon running, - and using the default port, the recv app above will fail. - - -3. If you don't have root privileges, you can still do the - "make install" step by setting a non-standard prefix, thus: - cmake -DCMAKE_INSTALL_PREFIX=/my/path .. - - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/docs/markdown/messenger/sending-and-receiving.md ---------------------------------------------------------------------- diff --git a/docs/markdown/messenger/sending-and-receiving.md b/docs/markdown/messenger/sending-and-receiving.md deleted file mode 100644 index 555075e..0000000 --- a/docs/markdown/messenger/sending-and-receiving.md +++ /dev/null @@ -1,144 +0,0 @@ -Sending and Receiving Messages -======================================================= - -The Proton Messenger API provides a mixture of synchronous -and asynchronous operations to give you flexibility in -deciding when you application should block waiting for I/O, -and when it should not. - - -When sending messages, you can: - -* send a message immediately, -* enqueue a message to be sent later, -* block until all enqueued messages are sent, -* send enqueued messages until a timeout occurs, or -* send all messages that can be sent without blocking. - -When receiving messages, you can: - -* receive messages that can be received without blocking, -* block until at least one message is received, -* receive no more than a fixed number of messages. - - - -Functions ------------------------------- - -* `pn_messenger_put(messenger)` - - Stage message for later transmission, and possibly - transmit any messages currently staged that are not - blocked. - This function will not block. - - - -* `pn_messenger_send(messenger)` - - If messenger timeout is negative (initial default), - block until all staged messages have been sent. - - If messenger timeout is 0, send all messages that - can be sent without blocking. - - If messenger timeout is positive, send all messages - that can be sent until timeout expires. - - *note: If there are any messages that can be received - when `pn_messenger_send()` is called, they will - be received.* - - - -* `pn_messenger_get(messenger, msg)` - - Dequeue the head of the incoming message queue to - your application. - This call does not block. - - - -* `pn_messenger_recv(messenger)` - - If messenger timeout is negative(initial default), - block until at least one message is received. - - If timeout is 0, receive whatever messages are available, - but do not block. - - If timeout is positive, receive available messages until - timeout expires. - - *note: If there are any unblocked outgoing messages, - they will be sent during this call.* - - - - - -Examples ------------------------------- - -* send a message immediately - - pn_messenger_put(messenger, msg); - pn_messenger_send(messenger); - - - -* enqueue a message to be sent later - - pn_messenger_put(messenger, msg); - - *note: - The message will be sent whenever it is not blocked and - the Messenger code has other I/O work to be done.* - - - -* block until all enqueued messages are sent - - pn_messenger_set_timeout(messenger, -1); - pn_messenger_send(messenger); - - *note: - A negative timeout means 'forever'. That is the initial - default for a messenger.* - - - -* send enqueued messages until a timeout occurs - - pn_messenger_set_timeout(messenger, 100); /* 100 msec */ - pn_messenger_send(messenger); - - - -* send all messages that can be sent without blocking - - pn_messenger_set_timeout(messenger, 0); - pn_messenger_send(messenger); - - - -* receive messages that can be received without blocking - - pn_messenger_set_timeout(messenger, 0); - pn_messenger_recv(messenger, -1); - - -* block until at least one message is received - - pn_messenger_set_timeout(messenger, -1); - pn_messenger_recv(messenger, -1); - - *note: -1 is initial messenger default.* - - - -* receive no more than a fixed number of messages - - pn_messenger_recv(messenger, 10); - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/examples/java/messenger/README.txt ---------------------------------------------------------------------- diff --git a/examples/java/messenger/README.txt b/examples/java/messenger/README.txt deleted file mode 100644 index 20d3788..0000000 --- a/examples/java/messenger/README.txt +++ /dev/null @@ -1,22 +0,0 @@ -This directory contains java examples that use the messenger API. -Based on the python examples in ../py - - Send.java - a simple example of using the messenger API to send messages - Recv.java - a simple example of using the messenger API to receive messages - -Note that depending on the address passed into these scripts, you can -use them in either a peer to peer or a brokered scenario. - -For brokered usage: - java Recv.class amqp://<broker>/<queue> - java Send.class -a amqp://<broker>/<queue> msg_1 ... msg_n - -For peer to peer usage: - # execute on <host> to receive messages from all local network interfaces - java Recv.class amqp://~0.0.0.0 - java Send.class -a amqp://<host> msg_1 ... msg_n - -Or, use the shell scripts "recv" and "send" to run the java programs: -recv [-v] [-n MAXMESSAGES] [-a ADDRESS] ... [-a ADDRESS] -send [-a ADDRESS] [-s SUBJECT] MESSAGE ... MESSAGE - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/examples/java/messenger/pom.xml ---------------------------------------------------------------------- diff --git a/examples/java/messenger/pom.xml b/examples/java/messenger/pom.xml deleted file mode 100644 index a23a4a3..0000000 --- a/examples/java/messenger/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <parent> - <groupId>org.apache.qpid</groupId> - <artifactId>proton-project</artifactId> - <version>0.17.0-SNAPSHOT</version> - <relativePath>../../..</relativePath> - </parent> - <modelVersion>4.0.0</modelVersion> - - <artifactId>proton-j-messenger-example</artifactId> - <name>proton-j-messenger-example</name> - - <dependencies> - <dependency> - <groupId>org.apache.qpid</groupId> - <artifactId>proton-j</artifactId> - <version>${project.parent.version}</version> - </dependency> - </dependencies> - - <scm> - <url>http://svn.apache.org/viewvc/qpid/proton/</url> - </scm> -</project> http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/examples/java/messenger/recv ---------------------------------------------------------------------- diff --git a/examples/java/messenger/recv b/examples/java/messenger/recv deleted file mode 100755 index 862700c..0000000 --- a/examples/java/messenger/recv +++ /dev/null @@ -1,31 +0,0 @@ -#! /bin/bash -# -# 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. -# - -# Usage: recv [-v] [-n MAXMESSAGES] [-a ADDRESS]*" -# Subscribes to the given amqp addresses (by default, to amqp://localhost/test), -# and prints messages received, upt to MAXMESSAGES. -# Prints message headers and body; -v means print all message properties. - -HERE=$(cd $(dirname $0); pwd) -TOP=$(cd $(dirname $0); cd ../../..; pwd) -LIBS=$HERE/target/classes:$TOP/proton-j/target/classes -JFLAGS="-Djava.util.logging.config.file=$HERE/recv.trace.props -cp $LIBS" -java -cp $LIBS org.apache.qpid.proton.example.Recv "$@" - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/examples/java/messenger/send ---------------------------------------------------------------------- diff --git a/examples/java/messenger/send b/examples/java/messenger/send deleted file mode 100755 index e7b4b67..0000000 --- a/examples/java/messenger/send +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/bash -# -# 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. -# - -# Usage: send [-a ADDRESS] [-s SUBJECT] MESSAGE ... MESSAGE -# sends each arg as a text-message to the given adress (by default, to amqp://localhost/test) - -HERE=$(cd $(dirname $0); pwd) -TOP=$(cd $(dirname $0); cd ../../..; pwd) -LIBS=$HERE/target/classes:$TOP/proton-j/target/classes -JFLAGS="-Djava.util.logging.config.file=$HERE/send.trace.props -cp $LIBS" -java -cp $LIBS org.apache.qpid.proton.example.Send "$@" - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Recv.java ---------------------------------------------------------------------- diff --git a/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Recv.java b/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Recv.java deleted file mode 100644 index 3934cff..0000000 --- a/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Recv.java +++ /dev/null @@ -1,133 +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.example; - -import org.apache.qpid.proton.message.Message; -import org.apache.qpid.proton.messenger.Messenger; -import org.apache.qpid.proton.messenger.impl.MessengerImpl; -import org.apache.qpid.proton.amqp.messaging.ApplicationProperties; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Example/test of the java Messenger/Message API. - * Based closely qpid src/proton/examples/messenger/py/recv.py - * @author [email protected] - * @since 8/4/2013 - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ -@Deprecated -public class Recv { - private static Logger tracer = Logger.getLogger("proton.example"); - private boolean verbose = false; - private int maxct = 0; - private List<String> addrs = new ArrayList<String>(); - - private static void usage() { - System.err.println("Usage: recv [-v] [-n MAXCT] [-a ADDRESS]*"); - System.exit(2); - } - - private Recv(String args[]) { - int i = 0; - while (i < args.length) { - String arg = args[i++]; - if (arg.startsWith("-")) { - if ("-v".equals(arg)) { - verbose = true; - } else if ("-a".equals(arg)) { - addrs.add(args[i++]); - } else if ("-n".equals(arg)) { - maxct = Integer.valueOf(args[i++]); - } else { - System.err.println("unknown option " + arg); - usage(); - } - } else { - usage(); - } - } - if (addrs.size() == 0) { - addrs.add("amqp://~0.0.0.0"); - } - } - - private static String safe(Object o) { - return String.valueOf(o); - } - - private void print(int i, Message msg) { - StringBuilder b = new StringBuilder("message: "); - b.append(i).append("\n"); - b.append("Address: ").append(msg.getAddress()).append("\n"); - b.append("Subject: ").append(msg.getSubject()).append("\n"); - if (verbose) { - b.append("Props: ").append(msg.getProperties()).append("\n"); - b.append("App Props: ").append(msg.getApplicationProperties()).append("\n"); - b.append("Msg Anno: ").append(msg.getMessageAnnotations()).append("\n"); - b.append("Del Anno: ").append(msg.getDeliveryAnnotations()).append("\n"); - } else { - ApplicationProperties p = msg.getApplicationProperties(); - String s = (p == null) ? "null" : safe(p.getValue()); - b.append("Headers: ").append(s).append("\n"); - } - b.append(msg.getBody()).append("\n"); - b.append("END").append("\n"); - System.out.println(b.toString()); - } - - private void run() { - try { - Messenger mng = new MessengerImpl(); - mng.start(); - for (String a : addrs) { - mng.subscribe(a); - } - int ct = 0; - boolean done = false; - while (!done) { - mng.recv(); - while (mng.incoming() > 0) { - Message msg = mng.get(); - ++ct; - print(ct, msg); - if (maxct > 0 && ct >= maxct) { - done = true; - break; - } - } - } - mng.stop(); - } catch (Exception e) { - tracer.log(Level.SEVERE, "proton error", e); - } - } - - public static void main(String args[]) { - Recv o = new Recv(args); - o.run(); - } -} - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Send.java ---------------------------------------------------------------------- diff --git a/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Send.java b/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Send.java deleted file mode 100644 index 6f4a919..0000000 --- a/examples/java/messenger/src/main/java/org/apache/qpid/proton/example/Send.java +++ /dev/null @@ -1,104 +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.example; - -import org.apache.qpid.proton.amqp.messaging.AmqpValue; -import org.apache.qpid.proton.message.Message; -import org.apache.qpid.proton.message.impl.MessageImpl; -import org.apache.qpid.proton.messenger.Messenger; -import org.apache.qpid.proton.messenger.impl.MessengerImpl; - -import java.io.IOException; -import java.util.Arrays; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Example/test of the java Messenger/Message API. - * Based closely qpid src/proton/examples/messenger/py/send.py - * @author [email protected] - * @since 8/4/2013 - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ -@Deprecated -public class Send { - - private static Logger tracer = Logger.getLogger("proton.example"); - private String address = "amqp://0.0.0.0"; - private String subject; - private String[] bodies = new String[]{"Hello World!"}; - - private static void usage() { - System.err.println("Usage: send [-a ADDRESS] [-s SUBJECT] MSG+"); - System.exit(2); - } - - private Send(String args[]) { - int i = 0; - while (i < args.length) { - String arg = args[i++]; - if (arg.startsWith("-")) { - if ("-a".equals(arg)) { - address = args[i++]; - } else if ("-s".equals(arg)) { - subject = args[i++]; - } else { - System.err.println("unknown option " + arg); - usage(); - } - } else { - --i; - break; - } - } - - if(i != args.length) - { - bodies = Arrays.copyOfRange(args, i, args.length); - } - } - - private void run() { - try { - Messenger mng = new MessengerImpl(); - mng.start(); - Message msg = new MessageImpl(); - msg.setAddress(address); - if (subject != null) msg.setSubject(subject); - for (String body : bodies) { - msg.setBody(new AmqpValue(body)); - mng.put(msg); - } - mng.send(); - mng.stop(); - } catch (Exception e) { - tracer.log(Level.SEVERE, "proton error", e); - } - } - - public static void main(String args[]) { - Send o = new Send(args); - o.run(); - } -} - - - http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 7391713..7f2b443 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,6 @@ <module>proton-j</module> <module>tests</module> <module>examples/engine/java</module> - <module>examples/java/messenger</module> <module>examples/java/reactor</module> </modules> http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/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 38f39e0..b428736 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 @@ -31,7 +31,6 @@ import org.apache.qpid.proton.amqp.messaging.Properties; import org.apache.qpid.proton.amqp.messaging.Section; import org.apache.qpid.proton.codec.Codec; import org.apache.qpid.proton.codec.Data; -import org.apache.qpid.proton.driver.Driver; import org.apache.qpid.proton.engine.Collector; import org.apache.qpid.proton.engine.Connection; import org.apache.qpid.proton.engine.Engine; @@ -40,10 +39,8 @@ import org.apache.qpid.proton.engine.SslDomain; 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.messenger.Messenger; import org.apache.qpid.proton.reactor.Reactor; -@SuppressWarnings("deprecation") public final class Proton { @@ -96,33 +93,6 @@ public final class Proton applicationProperties, body, footer); } - /** - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ - @Deprecated - public static Messenger messenger() - { - return Messenger.Factory.create(); - } - - /** - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ - @Deprecated - public static Messenger messenger(String name) - { - return Messenger.Factory.create(name); - } - - /** - * @deprecated Messenger and its driver will be removed from upcoming proton-j releases. - */ - @Deprecated - public static Driver driver() throws IOException - { - return Driver.Factory.create(); - } - public static Reactor reactor() throws IOException { return Reactor.Factory.create(); http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/driver/Connector.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/driver/Connector.java b/proton-j/src/main/java/org/apache/qpid/proton/driver/Connector.java deleted file mode 100644 index 619b1cf..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/driver/Connector.java +++ /dev/null @@ -1,127 +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.driver; - -import java.io.IOException; - -import org.apache.qpid.proton.engine.Connection; -import org.apache.qpid.proton.engine.Sasl; -import org.apache.qpid.proton.engine.Transport; - -/** - * Intermediates between a proton engine {@link Connection} and the I/O - * layer. - * - * The top half of the engine can be access via {@link #getConnection()}. - * The bottom half of the engine is used by {@link #process()}. - * Stores application specific context using {@link #setContext(Object)}. - * - * Implementations are not necessarily thread-safe. - * - * @param <C> application supplied context - * @deprecated Messenger and its connector will be removed from upcoming proton-j releases. - */ -@Deprecated -public interface Connector<C> -{ - /** - * Handle any inbound data, outbound data, or timing events pending on - * the connector. - * Typically, applications repeatedly invoke this method - * during the lifetime of a connection. - */ - boolean process() throws IOException; - - /** - * Access the listener which opened this connector. - * - * @return the listener which created this connector, or null if the - * connector has no listener (e.g. an outbound client - * connection). - */ - @SuppressWarnings("rawtypes") - Listener listener(); - - /** - * Access the Authentication and Security context of the connector. - * - * @return the Authentication and Security context for the connector, - * or null if none. - */ - Sasl sasl(); - - /** - * Access the Transport associated with the connector. - * - */ - - Transport getTransport(); - - /** - * Access the AMQP Connection associated with the connector. - * - * @return the connection context for the connector, or null if none. - */ - Connection getConnection(); - - /** - * Assign the AMQP Connection associated with the connector. - * - * @param connection the connection to associate with the connector. - */ - void setConnection(Connection connection); - - /** - * Access the application context that is associated with the connector. - * - * @return the application context that was passed when creating this - * connector. See - * {@link Driver#createConnector(String, int, Object) - * createConnector(String, int, Object)} and - * {@link Driver#createConnector(java.nio.channels.SelectableChannel, Object) - * createConnector(java.nio.channels.SelectableChannel, Object)}. - */ - C getContext(); - - /** - * Assign a new application context to the connector. - * - * @param context new application context to associate with the connector - */ - void setContext(C context); - - /** - * Close the socket used by the connector. - */ - void close(); - - /** - * Determine if the connector is closed. - */ - boolean isClosed(); - - /** - * Destructor for the given connector. - * - * Assumes the connector's socket has been closed prior to call. - */ - void destroy(); -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/driver/Driver.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/driver/Driver.java b/proton-j/src/main/java/org/apache/qpid/proton/driver/Driver.java deleted file mode 100644 index 3d8ada3..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/driver/Driver.java +++ /dev/null @@ -1,160 +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.driver; - -import java.io.IOException; -import java.nio.channels.SelectableChannel; -import java.nio.channels.ServerSocketChannel; - -import org.apache.qpid.proton.driver.impl.DriverImpl; - -/** - * A driver for the proton engine. - * - * Manages {@link Connector}'s and {@link Listener}'s, which act as intermediaries between - * the proton engine and the network. - * - * Provides methods for the application to access the "top half" of the engine API when the state - * of the engine may have changed due to I/O or timing events - see {@link #connector()}. - * - * Connectors incorporate the SASL engine in order to provide a complete network stack: - * AMQP over SASL over TCP. - * - * Unless otherwise stated, methods on Driver implementations are not necessarily thread-safe. - * - * @deprecated Messenger and its driver will be removed from upcoming proton-j releases. - */ -@Deprecated -public interface Driver -{ - /** - * @deprecated Messenger and its driver will be removed from upcoming proton-j releases. - */ - @Deprecated - public static final class Factory - { - public static Driver create() throws IOException { - return new DriverImpl(); - } - } - - /** - * Force {@link #doWait(long)} to return. - * - * If the driver is not currently waiting then the next invocation of {@link #doWait(long)} - * will return immediately unless the {@link #connector()} method is invoked in the meantime. - * - * Thread-safe. - */ - void wakeup(); - - /** - * Wait for an active connector or listener, or for {@link #wakeup()} to be called. - * - * Thread-safe. - * - * @param timeout maximum time in milliseconds to wait. -1 means wait indefinitely. - * - * @return true if woken up - */ - boolean doWait(long timeout); - - /** - * Get the next listener with pending data in the driver. - * - * @return null if no active listener available - */ - @SuppressWarnings("rawtypes") - Listener listener(); - - /** - * Get the next active connector in the driver. - * - * Returns the next connector with pending inbound data, available capacity - * for outbound data, or pending tick. - * - * Clears the wake-up status that is set by {@link #wakeup()}. - * - * @return null if no active connector available - */ - @SuppressWarnings("rawtypes") - Connector connector(); - - /** - * Destruct the driver and all associated listeners, connectors and other resources. - */ - void destroy(); - - /** - * Construct a listener for the given address. - * - * @param host local host address to listen on - * @param port local port to listen on - * @param context application-supplied, can be accessed via - * {@link Listener#getContext() getContext()} method on a listener. - * @return a new listener on the given host:port, null if error - */ - <C> Listener<C> createListener(String host, int port, C context); - - /** - * Create a listener using the existing channel. - * - * @param c existing SocketChannel for listener to listen on - * @param context application-supplied, can be accessed via - * {@link Listener#getContext() getContext()} method on a listener. - * @return a new listener on the given channel, null if error - */ - <C> Listener<C> createListener(ServerSocketChannel c, C context); - - /** - * Construct a connector to the given remote address. - * - * @param host remote host to connect to. - * @param port remote port to connect to. - * @param context application-supplied, can be accessed via - * {@link Connector#getContext() getContext()} method on a listener. - * - * @return a new connector to the given remote, or null on error. - */ - <C> Connector<C> createConnector(String host, int port, C context); - - /** - * Create a connector using the existing file descriptor. - * - * @param fd existing SocketChannel for listener to listen on - * @param context application-supplied, can be accessed via - * {@link Connector#getContext() getContext()} method on a listener. - * - * @return a new connector to the given host:port, null if error. - */ - <C> Connector<C> createConnector(SelectableChannel fd, C context); - - /** - * Return an iterator over all listeners. - */ - Iterable<Listener> listeners(); - /** - * Return an iterator over all connectors. - */ - Iterable<Connector> connectors(); - -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/driver/Listener.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/driver/Listener.java b/proton-j/src/main/java/org/apache/qpid/proton/driver/Listener.java deleted file mode 100644 index 7541d4d..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/driver/Listener.java +++ /dev/null @@ -1,61 +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.driver; - -/** - * Server API. - * - * @param <C> application supplied context - * @deprecated Messenger and its listener will be removed from upcoming proton-j releases. - */ -@Deprecated -public interface Listener<C> -{ - /** - * Accept a connection that is pending on the listener. - * - * @return a new connector for the remote, or NULL on error. - */ - Connector<C> accept(); - - /** - * Access the application context that is associated with the listener. - * - * @return the application context that was passed when creating this - * listener. See {@link Driver#createListener(String, int, Object) - * createListener(String, int, Object)} and - * {@link Driver#createConnector(java.nio.channels.SelectableChannel, Object) - * createConnector(java.nio.channels.SelectableChannel, Object)} - */ - C getContext(); - - /** - * Set the application context that is associated with this listener. - * - */ - void setContext(C ctx); - - /** - * Close the socket used by the listener. - * - */ - void close() throws java.io.IOException; -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java deleted file mode 100644 index 18cad9a..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ConnectorImpl.java +++ /dev/null @@ -1,280 +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.driver.impl; - -import static org.apache.qpid.proton.driver.impl.ConnectorImpl.ConnectorState.UNINITIALIZED; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.channels.SelectionKey; -import java.nio.channels.SocketChannel; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.qpid.proton.Proton; -import org.apache.qpid.proton.driver.Connector; -import org.apache.qpid.proton.driver.Listener; -import org.apache.qpid.proton.engine.Connection; -import org.apache.qpid.proton.engine.Sasl; -import org.apache.qpid.proton.engine.Transport; -import org.apache.qpid.proton.engine.TransportException; - -@SuppressWarnings("deprecation") -class ConnectorImpl<C> implements Connector<C> -{ - private static int DEFAULT_BUFFER_SIZE = 64 * 1024; - private static int readBufferSize = Integer.getInteger - ("pn.receive_buffer_size", DEFAULT_BUFFER_SIZE); - private static int writeBufferSize = Integer.getInteger - ("pn.send_buffer_size", DEFAULT_BUFFER_SIZE); - - enum ConnectorState {UNINITIALIZED, OPENED, EOS, CLOSED}; - - private final DriverImpl _driver; - private final Listener<C> _listener; - private final SocketChannel _channel; - private final Logger _logger = Logger.getLogger("proton.driver"); - private C _context; - - private Connection _connection; - private Transport _transport = Proton.transport(); - private SelectionKey _key; - private ConnectorState _state = UNINITIALIZED; - - private boolean _inputDone = false; - private boolean _outputDone = false; - private boolean _closed = false; - - private boolean _selected = false; - private boolean _readAllowed = false; - - ConnectorImpl(DriverImpl driver, Listener<C> listener, SocketChannel c, C context, SelectionKey key) - { - _driver = driver; - _listener = listener; - _channel = c; - _context = context; - _key = key; - } - - void selected() - { - if (!_selected) { - _selected = true; - _driver.selectConnector(this); - _readAllowed = true; - } - } - - void unselected() - { - _selected = false; - } - - public boolean process() throws IOException - { - if (isClosed() || !_channel.finishConnect()) return false; - - boolean processed = false; - if (!_inputDone) - { - if (read()) { - processed = true; - } - } - - if (!_outputDone) - { - if (write()) { - processed = true; - } - } - - if (_outputDone && _inputDone) - { - close(); - } - - return processed; - } - - private boolean read() throws IOException - { - if (!_readAllowed) return false; - _readAllowed = false; - boolean processed = false; - - int interest = _key.interestOps(); - int capacity = _transport.capacity(); - if (capacity == Transport.END_OF_STREAM) - { - _inputDone = true; - } - else - { - ByteBuffer tail = _transport.tail(); - int bytesRead = _channel.read(tail); - if (bytesRead < 0) { - _transport.close_tail(); - _inputDone = true; - } else if (bytesRead > 0) { - try { - _transport.process(); - } catch (TransportException e) { - _logger.log(Level.SEVERE, this + " error processing input", e); - } - processed = true; - } - } - - capacity = _transport.capacity(); - if (capacity > 0) { - interest |= SelectionKey.OP_READ; - } else { - interest &= ~SelectionKey.OP_READ; - if (capacity < 0) { - _inputDone = true; - } - } - _key.interestOps(interest); - - return processed; - } - - private boolean write() throws IOException - { - boolean processed = false; - - int interest = _key.interestOps(); - boolean writeBlocked = false; - - try { - while (_transport.pending() > 0 && !writeBlocked) - { - ByteBuffer head = _transport.head(); - int wrote = _channel.write(head); - if (wrote > 0) { - processed = true; - _transport.pop(wrote); - } else { - writeBlocked = true; - } - } - - int pending = _transport.pending(); - if (pending > 0) { - interest |= SelectionKey.OP_WRITE; - } else { - interest &= ~SelectionKey.OP_WRITE; - if (pending < 0) { - _outputDone = true; - } - } - } catch (TransportException e) { - _logger.log(Level.SEVERE, this + " error", e); - interest &= ~SelectionKey.OP_WRITE; - _inputDone = true; - _outputDone = true; - } - - _key.interestOps(interest); - - return processed; - } - - public Listener<C> listener() - { - return _listener; - } - - public Sasl sasl() - { - if (_transport != null) - { - return _transport.sasl(); - } - else - { - return null; - } - } - - public Connection getConnection() - { - return _connection; - } - - public void setConnection(Connection connection) - { - _connection = connection; - _transport.bind(_connection); - } - - public Transport getTransport() - { - return _transport; - } - - public C getContext() - { - return _context; - } - - public void setContext(C context) - { - _context = context; - } - - public void close() - { - if (!isClosed()) - { - try - { - _channel.close(); - } - catch (IOException e) - { - _logger.log(Level.SEVERE, "Exception when closing connection",e); - } - finally - { - _closed = true; - selected(); - } - } - } - - public boolean isClosed() - { - return _closed; - } - - public void destroy() - { - close(); // close if not closed already - _driver.removeConnector(this); - } - - @Override - public String toString() - { - StringBuilder builder = new StringBuilder(); - builder.append("ConnectorImpl [_channel=").append(_channel).append("]"); - return builder.toString(); - } -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java deleted file mode 100644 index 6264d7a..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/DriverImpl.java +++ /dev/null @@ -1,254 +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.driver.impl; - -import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.ServerSocket; -import java.nio.channels.ClosedChannelException; -import java.nio.channels.SelectableChannel; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; -import java.nio.channels.ServerSocketChannel; -import java.nio.channels.SocketChannel; -import java.util.ArrayDeque; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.Queue; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.qpid.proton.driver.Connector; -import org.apache.qpid.proton.driver.Driver; -import org.apache.qpid.proton.driver.Listener; - -@SuppressWarnings("deprecation") -public class DriverImpl implements Driver -{ - private Selector _selector; - private Collection<Listener> _listeners = new LinkedList(); - private Collection<Connector> _connectors = new LinkedList(); - private Logger _logger = Logger.getLogger("proton.driver"); - private Object _wakeupLock = new Object(); - private boolean _woken = false; - private Queue<ConnectorImpl> _selectedConnectors = new ArrayDeque<ConnectorImpl>(); - private Queue<ListenerImpl> _selectedListeners = new ArrayDeque<ListenerImpl>(); - - public DriverImpl() throws IOException - { - _selector = Selector.open(); - } - - public void wakeup() - { - synchronized (_wakeupLock) { - _woken = true; - } - _selector.wakeup(); - } - - public boolean doWait(long timeout) - { - try - { - boolean woken; - synchronized (_wakeupLock) { - woken = _woken; - } - - if (woken || timeout == 0) { - _selector.selectNow(); - } else if (timeout < 0) { - _selector.select(); - } else { - _selector.select(timeout); - } - - synchronized (_wakeupLock) { - woken = woken || _woken; - _woken = false; - } - - for (SelectionKey key : _selector.selectedKeys()) { - if (key.isAcceptable()) { - ListenerImpl l = (ListenerImpl) key.attachment(); - l.selected(); - } else { - ConnectorImpl c = (ConnectorImpl) key.attachment(); - c.selected(); - } - } - - _selector.selectedKeys().clear(); - - return woken; - } - catch (IOException e) - { - _logger.log(Level.SEVERE, "Exception when waiting for IO Event",e); - throw new RuntimeException(e); - } - } - - void selectListener(ListenerImpl l) - { - _selectedListeners.add(l); - } - - public Listener listener() - { - ListenerImpl listener = _selectedListeners.poll(); - if (listener != null) { - listener.unselected(); - } - - return listener; - } - - void selectConnector(ConnectorImpl c) - { - _selectedConnectors.add(c); - } - - public Connector connector() - { - ConnectorImpl connector = _selectedConnectors.poll(); - if (connector != null) { - connector.unselected(); - } - return connector; - } - - public void destroy() - { - try - { - _selector.close(); - } - catch (IOException e) - { - _logger.log(Level.SEVERE, "Exception when closing selector",e); - throw new RuntimeException(e); - } - _listeners.clear(); - _connectors.clear(); - } - - public <C> Listener<C> createListener(String host, int port, C context) - { - try - { - ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); - ServerSocket serverSocket = serverSocketChannel.socket(); - serverSocket.bind(new InetSocketAddress(host, port)); - serverSocketChannel.configureBlocking(false); - Listener<C> listener = createListener(serverSocketChannel, context); - _logger.fine("Created listener on " + host + ":" + port + ": " + context); - - return listener; - } - catch (ClosedChannelException e) - { - e.printStackTrace(); // TODO - Implement - } - catch (IOException e) - { - e.printStackTrace(); // TODO - Implement - } - return null; - } - - public <C> Listener<C> createListener(ServerSocketChannel c, C context) - { - Listener<C> l = new ListenerImpl<C>(this, c, context); - SelectionKey key = registerInterest(c,SelectionKey.OP_ACCEPT); - key.attach(l); - _listeners.add(l); - return l; - } - - public <C> Connector<C> createConnector(String host, int port, C context) - { - try - { - SocketChannel channel = SocketChannel.open(); - channel.configureBlocking(false); - // Disable the Nagle algorithm on TCP connections. - channel.socket().setTcpNoDelay(true); - channel.connect(new InetSocketAddress(host, port)); - return createConnector(channel, context); - } - catch (IOException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - throw new RuntimeException(e); - } - } - - public <C> Connector<C> createConnector(SelectableChannel c, C context) - { - SelectionKey key = registerInterest(c, SelectionKey.OP_READ | SelectionKey.OP_WRITE); - Connector<C> co = new ConnectorImpl<C>(this, null, (SocketChannel)c, context, key); - key.attach(co); - _connectors.add(co); - return co; - } - - public <C> void removeConnector(Connector<C> c) - { - _connectors.remove(c); - } - - public Iterable<Listener> listeners() - { - return _listeners; - } - - public Iterable<Connector> connectors() - { - return _connectors; - } - - protected <C> Connector<C> createServerConnector(SelectableChannel c, C context, Listener<C> l) - { - SelectionKey key = registerInterest(c, SelectionKey.OP_READ | SelectionKey.OP_WRITE); - Connector<C> co = new ConnectorImpl<C>(this, l, (SocketChannel)c, context, key); - key.attach(co); - _connectors.add(co); - return co; - } - - private <C> SelectionKey registerInterest(SelectableChannel c, int opKeys) - { - try - { - return c.register(_selector, opKeys); - } - catch (ClosedChannelException e) - { - e.printStackTrace(); // TODO - Implement - throw new RuntimeException(e); - } - } -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ListenerImpl.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ListenerImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ListenerImpl.java deleted file mode 100644 index a7dd936..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/driver/impl/ListenerImpl.java +++ /dev/null @@ -1,93 +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.driver.impl; - -import java.io.IOException; -import java.nio.channels.ServerSocketChannel; -import java.nio.channels.SocketChannel; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.qpid.proton.driver.Connector; -import org.apache.qpid.proton.driver.Listener; - -@SuppressWarnings("deprecation") -class ListenerImpl<C> implements Listener<C> -{ - private C _context; - private final ServerSocketChannel _channel; - private final DriverImpl _driver; - private final Logger _logger = Logger.getLogger("proton.driver"); - private boolean _selected = false; - - ListenerImpl(DriverImpl driver, ServerSocketChannel c, C context) - { - _driver = driver; - _channel = c; - _context = context; - } - - void selected() - { - if (!_selected) { - _selected = true; - _driver.selectListener(this); - } - } - - void unselected() - { - _selected = false; - } - - public Connector<C> accept() - { - try - { - SocketChannel c = _channel.accept(); - if(c != null) - { - c.configureBlocking(false); - return _driver.createServerConnector(c, null, this); - } - } - catch (IOException e) - { - _logger.log(Level.SEVERE, "Exception when accepting connection",e); - } - return null; //TODO - we should probably throw an exception instead of returning null? - } - - public C getContext() - { - return _context; - } - - public void setContext(C context) - { - _context = context; - } - - public void close() throws IOException - { - _channel.socket().close(); - } -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/messenger/Messenger.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/messenger/Messenger.java b/proton-j/src/main/java/org/apache/qpid/proton/messenger/Messenger.java deleted file mode 100644 index bd19259..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/messenger/Messenger.java +++ /dev/null @@ -1,285 +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.messenger; - -import java.io.IOException; - -import org.apache.qpid.proton.TimeoutException; -import org.apache.qpid.proton.message.Message; -import org.apache.qpid.proton.messenger.impl.MessengerImpl; - -/** - * - * Messenger defines a high level interface for sending and receiving - * messages. Every Messenger contains a single logical queue of - * incoming messages and a single logical queue of outgoing - * messages. These messages in these queues may be destined for, or - * originate from, a variety of addresses. - * - * <h3>Address Syntax</h3> - * - * An address has the following form: - * - * [ amqp[s]:// ] [user[:password]@] domain [/[name]] - * - * Where domain can be one of: - * - * host | host:port | ip | ip:port | name - * - * The following are valid examples of addresses: - * - * - example.org - * - example.org:1234 - * - amqp://example.org - * - amqps://example.org - * - example.org/incoming - * - amqps://example.org/outgoing - * - amqps://fred:[email protected] - * - 127.0.0.1:1234 - * - amqps://127.0.0.1:1234 - * - * <h3>Sending & Receiving Messages</h3> - * - * The Messenger interface works in conjuction with the Message - * class. The Message class is a mutable holder of message content. - * The put method will encode the content in a given Message object - * into the outgoing message queue leaving that Message object free - * to be modified or discarded without having any impact on the - * content in the outgoing queue. - * - * Similarly, the get method will decode the content in the incoming - * message queue into the supplied Message object. - * - * @deprecated Messenger will be removed from upcoming proton-j releases. -*/ -@Deprecated -public interface Messenger -{ - - /** - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ - @Deprecated - public static final class Factory - { - public static Messenger create() { - return new MessengerImpl(); - } - - public static Messenger create(String name) { - return new MessengerImpl(name); - } - } - - /** - * Flag for use with reject(), accept() and settle() methods. - */ - static final int CUMULATIVE = 0x01; - - /** - * Places the content contained in the message onto the outgoing - * queue of the Messenger. This method will never block. The - * send call may be used to block until the messages are - * sent. Either a send() or a recv() call is neceesary at present - * to cause the messages to actually be sent out. - */ - void put(Message message) throws MessengerException; - - /** - * Blocks until the outgoing queue is empty and, in the event that - * an outgoing window has been set, until the messages in that - * window have been received by the target to which they were - * sent, or the operation times out. The timeout property - * controls how long a Messenger will block before timing out. - */ - void send() throws TimeoutException; - - void send(int n) throws TimeoutException; - - /** - * Subscribes the Messenger to messages originating from the - * specified source. The source is an address as specified in the - * Messenger introduction with the following addition. If the - * domain portion of the address begins with the '~' character, - * the Messenger will interpret the domain as host/port, bind - * to it, and listen for incoming messages. For example - * "~0.0.0.0", "amqp://~0.0.0.0" will bind to any local interface - * and listen for incoming messages. - */ - void subscribe(String source) throws MessengerException; - /** - * Receives an arbitrary number of messages into the - * incoming queue of the Messenger. This method will block until - * at least one message is available or the operation times out. - */ - void recv() throws TimeoutException; - /** - * Receives up to the specified number of messages into the - * incoming queue of the Messenger. This method will block until - * at least one message is available or the operation times out. - */ - void recv(int count) throws TimeoutException; - /** - * Returns the capacity of the incoming message queue of - * messenger. Note this count does not include those messages - * already available on the incoming queue (see - * incoming()). Rather it returns the number of incoming queue - * entries available for receiving messages - */ - int receiving(); - /** - * Returns the message from the head of the incoming message - * queue. - */ - Message get(); - - /** - * Transitions the Messenger to an active state. A Messenger is - * initially created in an inactive state. When inactive, a - * Messenger will not send or receive messages from its internal - * queues. A Messenger must be started before calling send() or - * recv(). - */ - void start() throws IOException; - /** - * Transitions the Messenger to an inactive state. An inactive - * Messenger will not send or receive messages from its internal - * queues. A Messenger should be stopped before being discarded to - * ensure a clean shutdown handshake occurs on any internally managed - * connections. - */ - void stop(); - - boolean stopped(); - - /** Sends or receives any outstanding messages queued for a - * messenger. If timeout is zero, no blocking is done. A timeout - * of -1 blocks forever, otherwise timeout is the maximum time (in - * millisecs) to block. Returns True if work was performed. - */ - boolean work(long timeout) throws TimeoutException; - - void interrupt(); - - void setTimeout(long timeInMillis); - long getTimeout(); - - boolean isBlocking(); - void setBlocking(boolean b); - - /** - * Returns a count of the messages currently on the outgoing queue - * (i.e. those that have been put() but not yet actually sent - * out). - */ - int outgoing(); - /** - * Returns a count of the messages available on the incoming - * queue. - */ - int incoming(); - - int getIncomingWindow(); - void setIncomingWindow(int window); - - int getOutgoingWindow(); - void setOutgoingWindow(int window); - - /** - * Returns a token which can be used to accept or reject the - * message returned in the previous get() call. - */ - Tracker incomingTracker(); - /** - * Returns a token which can be used to track the status of the - * message of the previous put() call. - */ - Tracker outgoingTracker(); - - /** - * Rejects messages retrieved from the incoming message queue. The - * tracker object for a message is obtained through a call to - * incomingTracker() following a get(). If the flags argument - * contains CUMULATIVE, then all message up to the one identified - * by the tracker will be rejected. - */ - void reject(Tracker tracker, int flags); - /** - * Accepts messages retrieved from the incoming message queue. The - * tracker object for a message is obtained through a call to - * incomingTracker() following a get(). If the flags argument - * contains CUMULATIVE, then all message up to the one identified - * by the tracker will be accepted. - */ - void accept(Tracker tracker, int flags); - void settle(Tracker tracker, int flags); - - /** - * Gets the last known remote state of the delivery associated - * with the given tracker. - */ - Status getStatus(Tracker tracker); - - void route(String pattern, String address); - - void rewrite(String pattern, String address); - - /** - * Set the path to the certificate file. - */ - void setCertificate(String certificate); - - /** - * Get the path to the certificate file. - */ - String getCertificate(); - - /** - * Set the path to private key file. - */ - void setPrivateKey(String privateKey); - - /** - * Get the path to the private key file. - */ - String getPrivateKey(); - - /** - * Set the password for private key file. - */ - void setPassword(String password); - - /** - * Get the password for the priate key file. - */ - String getPassword(); - - /** - * Set the path to the trusted certificate database. - */ - void setTrustedCertificates(String trusted); - - /** - * Get the path to the trusted certificate database. - */ - String getTrustedCertificates(); - -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/messenger/MessengerException.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/messenger/MessengerException.java b/proton-j/src/main/java/org/apache/qpid/proton/messenger/MessengerException.java deleted file mode 100644 index c6f3570..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/messenger/MessengerException.java +++ /dev/null @@ -1,51 +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.messenger; - -import org.apache.qpid.proton.ProtonException; - -/** - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ -@Deprecated -public class MessengerException extends ProtonException -{ - public MessengerException() - { - } - - public MessengerException(String message) - { - super(message); - } - - public MessengerException(String message, Throwable cause) - { - super(message, cause); - } - - public MessengerException(Throwable cause) - { - super(cause); - } - -} http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2afe2ec0/proton-j/src/main/java/org/apache/qpid/proton/messenger/Status.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/messenger/Status.java b/proton-j/src/main/java/org/apache/qpid/proton/messenger/Status.java deleted file mode 100644 index ae7ca95..0000000 --- a/proton-j/src/main/java/org/apache/qpid/proton/messenger/Status.java +++ /dev/null @@ -1,37 +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.messenger; - -/** - * @deprecated Messenger will be removed from upcoming proton-j releases. - */ -@Deprecated -public enum Status -{ - UNKNOWN, - PENDING, - ACCEPTED, - REJECTED, - RELEASED, - MODIFIED, - ABORTED, - SETTLED -} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
