Re: [documentation] -- Intro to Proton

2013-02-25 Thread Phil Harvey
I do agree with you that having documentation committed alongside code is
the right approach.

I propose that we write this documentation in Markdown syntax. That gives
us (or our users) the option of easily generating HTML whilst keeping the
barrier to entry low for authors.

I recognise that Markdown lacks the semantic richness of Docbook (used for
the Qpid Broker), but I believe that's ok in this case since our
documentation should be quite short (or we're doing something wrong).

Phil
On Feb 25, 2013 7:07 PM, "Rajith Attapattu"  wrote:

> I'm strong believer in maintaining our docs in the source tree, as it
> makes it easy to release docs along side the code.
> Also it helps keep the docs current.
> The wiki based documentation in the past had many issues, the chief
> complaint being stale most of the time.
>
> We could look at doing something similar to the qpid docs, or we could
> also use this opportunity to experiment with a different approach/tool
> set.
>
> Rajith
>
> On Mon, Feb 25, 2013 at 1:50 PM, Michael Goulish 
> wrote:
> >
> > I think I will be landing it in the code tree first, and
> > from there, I don't know.   Any suggestions?
> >
> > In the code -- I assume it should be at the top level?
> > i.e. a sibling of the README file?   i.e.
> >
> >
> >  qpid-proton-0.4/pulitzer_prize_winning_documentation
> >
> >
> > or something along those lines?
> >
> > Agree?  Disagree?
> >
> >
> >
> >
> >
> >
> > - Original Message -
> > From: "Phil Harvey" 
> > To: proton@qpid.apache.org
> > Sent: Monday, February 25, 2013 12:14:00 PM
> > Subject: Re: [documentation] -- Intro to Proton
> >
> > Hi Michael,
> >
> > Maybe you didn't see my previous question (or maybe I didn't see your
> > answer).
> >
> > Where are you intending to store this documentation?  Similarly, where
> are
> > you intending to publish it, e.g. as HTML and/or PDF on our web site, as
> a
> > wiki page etc?
> >
> > Thanks
> > Phil
> >
> >
> > On 25 February 2013 16:15, Michael Goulish  wrote:
> >
> >>
> >> Here's the introduction I'm planning on.
> >>
> >> If anyone has any opinions, I'd be happy to get them --
> >> is there too much detail for a quick intro?  Too
> >> little?  A crucial bit I left out?  Something I got wrong?
> >>
> >> ##
> >>
> >>
> >>
> >>
> >>
> >> Introduction to Proton
> >> ===
> >>
> >>
> >>
> >> The Messenger interface is a simple, high-level API that lets
> >> you create point-to-point messaging applications quickly and easily.
> >>
> >> The interface offers four main categories of functionality.
> >>
> >>
> >>
> >>
> >> Messenger Operation
> >> ---
> >>
> >>   There are only a few operations that are not directly concerning
> >>   with message transmission.
> >>
> >>   A messenger can be created, named, and freed.  It can be started
> >>   and stopped, and it can be checked for errors after any operation.
> >>
> >>
> >>
> >>
> >>
> >> Sending and Receiving
> >> ---
> >>
> >>   Both sending and receiving happen in two stages, the inner stage
> >>   moving the message between your application and a queue, the
> >>   outer stage transmitting messages between your queues and
> >>   remote messaging nodes.
> >>
> >>   By changing the ratio of transmissions to queue transfers, you
> >>   can optimize your messaging application for message latency or
> >>   for overall throughput.
> >>
> >>   Subscriptions control what sources your messenger can receive
> >>   from, and what sources it can send to.  Your messenger
> >>   subscribes to the sources you want to receive from, while your
> >>   outgoing messages will be received by messengers that have
> >>   subscribed to your outgoing address.
> >>
> >>
> >>
> >>
> >>
> >> Message Disposition
> >> ---
> >>
> >>   When you receive messages, you must either accept or reject them.
> >>
> >>   You can either configure your messenger to automatically accept
> >>   all messages that you get, or you can exercise finer control over
> >>   message acceptance and rejection, individually or in groups.
> >>
> >>   Trackers and Windows let you set or check the disposition of
> >>   messages in groups.  Applying the disposition operations to
> >>   groups of messages can improve your system's throughput.
> >>
> >>   When receiving messages, you can create a tracker
> >>   for the most recently received message, and later use that tracker
> >>   to accept or reject all messages up to (and including) that one.
> >>
> >>   When sending messages, you can create a tracker for your most
> >>   recently sent message, and later use it to inquire about the
> >>   remote disposition of all sent messages up to that point.
> >>   If you don't want to let a receiver make you wait forever
> >>   to see what he's going to do, you can set a timeout that 

Re: example of proton documentation

2013-02-25 Thread Jakub Scholz
Hi Michael,

I'm rather a foreigner in the land of Proton, but that point of view might
make the feedback useful as well :-). As someone who didn't worked with
proton much, I would probably raise following questions ...

a) If I remember correctly, in (some of) the old Qpid APIs the flow control
was able to work as windows based or credit based. From your description it
is not entirely clear to me whether the flow control in Proton is credit or
window based. You talk about credit, but afterwards you mention
the dequeuing using pn_messenger_get(...) function which makes me wonder
whether this call restores the credit. If it is not related to the credit,
I would probably remove the last part of the chapter mentioning the
pn_messenger_get() call. Since flow control is slightly more advanced
topic, I would assume that the pn_messenger_get() should be explained
already in previous chapters.

b) Again, if I remember correctly, (some of) the old Qpid APIs allowed to
specify flow control limits in messages or in bytes. You mention only limit
in messages - that might immediately raise questions how can I specify the
limit in bytes. I think it would be great if you can add a note that the
flow control limit in bytes is not supported.

c) 10 units per link doesn't really sound like infinite credit. People tend
to often read only half of the documentation - many of them might stop
after reading "You can also grant 'infinite' credit by using a negative
value" and afterwards they will wonder why is it only 10 per link and not
really infinite. I would probably also rename the chapter and/or rephrase
the first sentence.

d) It is not entirely clear to me, whether the "infinite credit" is then
somehow auto-refreshed or whether the 10 units are consumed by the messages.

e) "It remains at the link, and successive calls can increase it." ... can
the credit be really only increased? Or can it be also decreased? I would
suggest to mention it there even if it is not possible to decrease the
credit ... just to avoid questions.

f) It would be great if the typical pattern can be slightly more complex
and include the refreshing of the credit with further
pn_messenger_recv(...) call.

g) Also, I would probably structure the chapters as 1. Controlling Message
Flow with Credit, 1.1 Credit does not drain, 1.2 A typical pattern and 1.3
Infinite credit

Anyway, thanks a lot for your effort ... keep the good work ... without a
good documentation, it doesn't matter how good Proton is - nobody will use
it. When we started with AMQP / Qpid / MRG Messaging, the documentation was
pretty much useless and we had to write our own "Programming Guide" because
nobody from our customers was able to even connect. It would be great if we
can avoid it in the next version :-).

Thanks & Regards
Jakub


On Fri, Feb 22, 2013 at 11:14 AM, Michael Goulish wrote:

>
>   I wonder if anybody out there in Proton Land has an
>   opinion about this little piece of Proton doc.
>
>   This is an example of the documentation I'm creating as
>   I use the Proton interface to
>
>   I'd be interested to hear about
>
>  1. correctness
>  2. clarity
>  3. focus
>  4. usefulness
>  5. anything else that strikes you
>
>
> I don't know what to call this -- a mini-tutorial? -- a 'topic'? --
> but in any case, I expect I will have 5 or 6 pieces like this for
> the Proton Messenger doc when I'm done, so I wanted to See What You Think.
> Yes, *you* !
>
>
> - everything below this point is the doc -
>
>
>
>
>
> Controlling Message Flow with Credit
> =
>
>
> To control the flow of messages into your Proton application,
> use the second argument to
>
> pn_messenger_recv ( messenger, credit );
>
> If you set credit to a positive value, it will limit the number
> of messages that pn_messenger_recv enqueues for you on that
> call.
>
> The number you provide is a maximum.  The call to pn_messenger_recv
> may also enqueue fewer messages, or none.  You can learn how many
> were received with:
>
> pn_messenger_incoming ( messenger );
>
> You can then dequeue each message, one at a time, into your
> application with successive calls to
>
> pn_messenger_get ( messenger );
>
>
>
>
> A typical pattern
> ---
>
> int i, incoming;
>
> pn_messenger_recv ( messenger, credit );
> incoming = pn_messenger_incoming ( messenger );
> for ( i = 0; i < incoming; ++ i )
> {
>   pn_messenger_get ( messenger, message );
>   consume_message ( message );
> }
>
>
> Infinite Credit
> --
>
> You can also grant 'infinite' credit by using a negative
> value as the second arg to pn_messenger_recv().  This will
> have the effect of granting 10 units of credit to every link
> on that call to pn_messenger_recv().
>
> A single messenger, listening on a single port, may have
> many incoming links.
>
>

Re: [documentation] -- Intro to Proton

2013-02-25 Thread Jakub Scholz
Hi Michael,

I know you mentioned plans to write some bigger document ... it is not
entirely clear to me, whether this is supposed to be a standalone
introduction or just a first chapter of the larger document. It suppose the
second is correct, right?

Also, is it introduction to Proton or just to the Proton Messenger API?
>From what I understood so far from the discussions here in the mailing
list, Proton is much more than just the Messenger API. I would either call
it Proton Messenger introduction or add some short explanation that the
Messenger API is just one part of Proton which might be the most
interesting for beginners.

Thanks & Regards
Jakub

On Mon, Feb 25, 2013 at 5:15 PM, Michael Goulish wrote:

>   The messenger interface allows you to use the Secure Sockets Layer
>   by exposing an interface to the OpenSSL library.
>


[jira] [Commented] (PROTON-215) Add tests to verify AMQP 1.0 type support for all language bindings

2013-02-25 Thread Alan Conway (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13586391#comment-13586391
 ] 

Alan Conway commented on PROTON-215:


The approach is slightly different to that described in the first comment. The 
data is split up into separate files containing fragments of AMQP-encoded data, 
with a unit test for each fragment in each binding. This has the advantage that 
if there is a failure on one fragment, you can still verify the others 
independently, you can skip tests individually etc. With a single message 
containing all types, there's just one test and any failure means the whole 
interop test fails. This has already been useful as a couple of encode bugs 
were found and fixed in the process of creating the tests. There is also a file 
& test for a full encoded message so the message encoding is tested, we 
probably will wan to extend the tests to cover messages with various headers 
etc.

> Add tests to verify AMQP 1.0 type support for all language bindings
> ---
>
> Key: PROTON-215
> URL: https://issues.apache.org/jira/browse/PROTON-215
> Project: Qpid Proton
>  Issue Type: Test
>  Components: proton-c
>Affects Versions: 0.3
>Reporter: Ken Giusti
>Assignee: Alan Conway
>  Labels: test
>
> For each language binding, we need to verify that the language can encode to 
> and decode from the AMQP 1.0 types. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (PROTON-215) Add tests to verify AMQP 1.0 type support for all language bindings

2013-02-25 Thread Alan Conway (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13586390#comment-13586390
 ] 

Alan Conway commented on PROTON-215:


Review: https://reviews.apache.org/r/9413/

Support for python and java (native and JNI)  is in the following commits:

r1445920 | PROTON-215: Add tests to verify AMQP type support for python 
bindings.
r1446307 | PROTON-215: Interop test: make finding AMQP fragments more robust.
r1449935 | PROTON-215: Added message test to python interop test
r1449936 | PROTON-215: Add tests for described types and arrays to 
InteropTest.java.
r1449938 | PROTON-215: Java InteropTest test for primitve types.
r1449939 | PROTON-215: Fix bug in JNI map decoding discovered by new tests.
r1449940 | PROTON-215: Add type coverage to Java InteropTest.
r1449941 | PROTON-215: Fix bug in JNI described type decoding discovered by new 
tests.
r1449942 | PROTON-215: Add tests for described types and arrays to 
InteropTest.java.
r1449944 | PROTON-215: Fix bug in JNI array decoding discovered by new tests.


> Add tests to verify AMQP 1.0 type support for all language bindings
> ---
>
> Key: PROTON-215
> URL: https://issues.apache.org/jira/browse/PROTON-215
> Project: Qpid Proton
>  Issue Type: Test
>  Components: proton-c
>Affects Versions: 0.3
>Reporter: Ken Giusti
>Assignee: Alan Conway
>  Labels: test
>
> For each language binding, we need to verify that the language can encode to 
> and decode from the AMQP 1.0 types. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: [RESULT] [VOTE] 0.4 RC3

2013-02-25 Thread Rafael Schloming
I've uploaded the artifacts and updated the download page[1]. It will be
about 24 hours or so until the mirrors are fully synced.

[1] http://qpid.apache.org/proton/download.html

--Rafael

On Mon, Feb 25, 2013 at 12:44 PM, Rafael Schloming  wrote:

> The vote carries with 5 +1's and 0 -1's. I'll upload the artifacts shortly.
>
> --Rafael
>
> On Thu, Feb 21, 2013 at 1:54 PM, Rafael Schloming wrote:
>
>> Hi everyone, I've spun an RC3 with fixes for the two immediately soluble
>> issues that turned up with RC2. Please check it out and cast your vote.
>>
>> Source is here:
>>   - http://people.apache.org/~rhs/qpid-proton-0.4rc3/
>>
>> Java binaries are here:
>>  - https://repository.apache.org/content/repositories/orgapacheqpid-292/
>>
>> Changes since RC2:
>>
>> PROTON-230, PROTON-246: Copying nested data fails in some cases
>> PROTON-245: make swig skip pn_dtag for compatibility with older versions
>> of swig
>>
>> [ ] Yes, I believe we should make 0.4 RC3 into 0.4 final
>> [ ] No, because ...
>>
>
>


[RESULT] [VOTE] 0.4 RC3

2013-02-25 Thread Rafael Schloming
The vote carries with 5 +1's and 0 -1's. I'll upload the artifacts shortly.

--Rafael

On Thu, Feb 21, 2013 at 1:54 PM, Rafael Schloming  wrote:

> Hi everyone, I've spun an RC3 with fixes for the two immediately soluble
> issues that turned up with RC2. Please check it out and cast your vote.
>
> Source is here:
>   - http://people.apache.org/~rhs/qpid-proton-0.4rc3/
>
> Java binaries are here:
>  - https://repository.apache.org/content/repositories/orgapacheqpid-292/
>
> Changes since RC2:
>
> PROTON-230, PROTON-246: Copying nested data fails in some cases
> PROTON-245: make swig skip pn_dtag for compatibility with older versions
> of swig
>
> [ ] Yes, I believe we should make 0.4 RC3 into 0.4 final
> [ ] No, because ...
>


[jira] [Updated] (PROTON-250) Add -fvisibility option when building shared libraries

2013-02-25 Thread Irina Boverman (JIRA)

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

Irina Boverman updated PROTON-250:
--

Attachment: patch.txt

> Add -fvisibility option when building shared libraries 
> ---
>
> Key: PROTON-250
> URL: https://issues.apache.org/jira/browse/PROTON-250
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: proton-c
>Affects Versions: 0.3
> Environment: GNU Compiler
>Reporter: Irina Boverman
>Priority: Minor
> Attachments: patch.txt
>
>
> Add an option to "hide" symbols in shared libraries except when they are 
> declared public.
> Extends efforts already in place for Windows builds.
> Excludes an effort to determine what symbols should be considered "public" 
> interfaces.
> The gcc 4 -fvisibility option is said to:
> ...very substantially improve linking and load times of shared object 
> libraries, produce more optimized code, provide near-perfect API export and 
> prevent symbol clashes. It is strongly recommended that you use this in any 
> shared objects you distribute.
> See here: http://gcc.gnu.org/wiki/Visibility
> Attached patch (patch.txt) will build libqpid-proton.so shared library using 
> this flag.
> It reduces number of symbols from 700+ to 500+.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (PROTON-250) Add -fvisibility option when building shared libraries

2013-02-25 Thread Irina Boverman (JIRA)

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

Irina Boverman updated PROTON-250:
--

Description: 
Add an option to "hide" symbols in shared libraries except when they are 
declared public.
Extends efforts already in place for Windows builds.
Excludes an effort to determine what symbols should be considered "public" 
interfaces.

The gcc 4 -fvisibility option is said to:

...very substantially improve linking and load times of shared object 
libraries, produce more optimized code, provide near-perfect API export and 
prevent symbol clashes. It is strongly recommended that you use this in any 
shared objects you distribute.

See here: http://gcc.gnu.org/wiki/Visibility

Attached patch (patch.txt) will build libqpid-proton.so shared library using 
this flag.
It reduces number of symbols from 700+ to 500+.


  was:
Add an option to "hide" symbols in shared libraries except when they are 
declared public.
Extends efforts already in place for Windows builds.
Excludes an effort to determine what symbols should be considered "public" 
interfaces.

The gcc 4 -fvisibility option is said to:

...very substantially improve linking and load times of shared object 
libraries, produce more optimized code, provide near-perfect API export and 
prevent symbol clashes. It is strongly recommended that you use this in any 
shared objects you distribute.

See here: http://gcc.gnu.org/wiki/Visibility



> Add -fvisibility option when building shared libraries 
> ---
>
> Key: PROTON-250
> URL: https://issues.apache.org/jira/browse/PROTON-250
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: proton-c
>Affects Versions: 0.3
> Environment: GNU Compiler
>Reporter: Irina Boverman
>Priority: Minor
>
> Add an option to "hide" symbols in shared libraries except when they are 
> declared public.
> Extends efforts already in place for Windows builds.
> Excludes an effort to determine what symbols should be considered "public" 
> interfaces.
> The gcc 4 -fvisibility option is said to:
> ...very substantially improve linking and load times of shared object 
> libraries, produce more optimized code, provide near-perfect API export and 
> prevent symbol clashes. It is strongly recommended that you use this in any 
> shared objects you distribute.
> See here: http://gcc.gnu.org/wiki/Visibility
> Attached patch (patch.txt) will build libqpid-proton.so shared library using 
> this flag.
> It reduces number of symbols from 700+ to 500+.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (PROTON-250) Add -fvisibility option when building shared libraries

2013-02-25 Thread Irina Boverman (JIRA)
Irina Boverman created PROTON-250:
-

 Summary: Add -fvisibility option when building shared libraries 
 Key: PROTON-250
 URL: https://issues.apache.org/jira/browse/PROTON-250
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-c
Affects Versions: 0.3
 Environment: GNU Compiler
Reporter: Irina Boverman
Priority: Minor


Add an option to "hide" symbols in shared libraries except when they are 
declared public.
Extends efforts already in place for Windows builds.
Excludes an effort to determine what symbols should be considered "public" 
interfaces.

The gcc 4 -fvisibility option is said to:

...very substantially improve linking and load times of shared object 
libraries, produce more optimized code, provide near-perfect API export and 
prevent symbol clashes. It is strongly recommended that you use this in any 
shared objects you distribute.

See here: http://gcc.gnu.org/wiki/Visibility


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: [documentation] -- Intro to Proton

2013-02-25 Thread Rajith Attapattu
I'm strong believer in maintaining our docs in the source tree, as it
makes it easy to release docs along side the code.
Also it helps keep the docs current.
The wiki based documentation in the past had many issues, the chief
complaint being stale most of the time.

We could look at doing something similar to the qpid docs, or we could
also use this opportunity to experiment with a different approach/tool
set.

Rajith

On Mon, Feb 25, 2013 at 1:50 PM, Michael Goulish  wrote:
>
> I think I will be landing it in the code tree first, and
> from there, I don't know.   Any suggestions?
>
> In the code -- I assume it should be at the top level?
> i.e. a sibling of the README file?   i.e.
>
>
>  qpid-proton-0.4/pulitzer_prize_winning_documentation
>
>
> or something along those lines?
>
> Agree?  Disagree?
>
>
>
>
>
>
> - Original Message -
> From: "Phil Harvey" 
> To: proton@qpid.apache.org
> Sent: Monday, February 25, 2013 12:14:00 PM
> Subject: Re: [documentation] -- Intro to Proton
>
> Hi Michael,
>
> Maybe you didn't see my previous question (or maybe I didn't see your
> answer).
>
> Where are you intending to store this documentation?  Similarly, where are
> you intending to publish it, e.g. as HTML and/or PDF on our web site, as a
> wiki page etc?
>
> Thanks
> Phil
>
>
> On 25 February 2013 16:15, Michael Goulish  wrote:
>
>>
>> Here's the introduction I'm planning on.
>>
>> If anyone has any opinions, I'd be happy to get them --
>> is there too much detail for a quick intro?  Too
>> little?  A crucial bit I left out?  Something I got wrong?
>>
>> ##
>>
>>
>>
>>
>>
>> Introduction to Proton
>> ===
>>
>>
>>
>> The Messenger interface is a simple, high-level API that lets
>> you create point-to-point messaging applications quickly and easily.
>>
>> The interface offers four main categories of functionality.
>>
>>
>>
>>
>> Messenger Operation
>> ---
>>
>>   There are only a few operations that are not directly concerning
>>   with message transmission.
>>
>>   A messenger can be created, named, and freed.  It can be started
>>   and stopped, and it can be checked for errors after any operation.
>>
>>
>>
>>
>>
>> Sending and Receiving
>> ---
>>
>>   Both sending and receiving happen in two stages, the inner stage
>>   moving the message between your application and a queue, the
>>   outer stage transmitting messages between your queues and
>>   remote messaging nodes.
>>
>>   By changing the ratio of transmissions to queue transfers, you
>>   can optimize your messaging application for message latency or
>>   for overall throughput.
>>
>>   Subscriptions control what sources your messenger can receive
>>   from, and what sources it can send to.  Your messenger
>>   subscribes to the sources you want to receive from, while your
>>   outgoing messages will be received by messengers that have
>>   subscribed to your outgoing address.
>>
>>
>>
>>
>>
>> Message Disposition
>> ---
>>
>>   When you receive messages, you must either accept or reject them.
>>
>>   You can either configure your messenger to automatically accept
>>   all messages that you get, or you can exercise finer control over
>>   message acceptance and rejection, individually or in groups.
>>
>>   Trackers and Windows let you set or check the disposition of
>>   messages in groups.  Applying the disposition operations to
>>   groups of messages can improve your system's throughput.
>>
>>   When receiving messages, you can create a tracker
>>   for the most recently received message, and later use that tracker
>>   to accept or reject all messages up to (and including) that one.
>>
>>   When sending messages, you can create a tracker for your most
>>   recently sent message, and later use it to inquire about the
>>   remote disposition of all sent messages up to that point.
>>   If you don't want to let a receiver make you wait forever
>>   to see what he's going to do, you can set a timeout that will
>>   control how long he can take making up his mind.
>>
>>   By using incoming and outgoing Windows, you can limit the
>>   number of messages that these operations affect.
>>
>>
>>
>>
>>
>>
>>
>> Security
>> ---
>>
>>   The messenger interface allows you to use the Secure Sockets Layer
>>   by exposing an interface to the OpenSSL library.
>>
>>
>>
>>


Re: [documentation] -- Intro to Proton

2013-02-25 Thread Michael Goulish

I think I will be landing it in the code tree first, and
from there, I don't know.   Any suggestions?

In the code -- I assume it should be at the top level?  
i.e. a sibling of the README file?   i.e.  


 qpid-proton-0.4/pulitzer_prize_winning_documentation


or something along those lines?

Agree?  Disagree?






- Original Message -
From: "Phil Harvey" 
To: proton@qpid.apache.org
Sent: Monday, February 25, 2013 12:14:00 PM
Subject: Re: [documentation] -- Intro to Proton

Hi Michael,

Maybe you didn't see my previous question (or maybe I didn't see your
answer).

Where are you intending to store this documentation?  Similarly, where are
you intending to publish it, e.g. as HTML and/or PDF on our web site, as a
wiki page etc?

Thanks
Phil


On 25 February 2013 16:15, Michael Goulish  wrote:

>
> Here's the introduction I'm planning on.
>
> If anyone has any opinions, I'd be happy to get them --
> is there too much detail for a quick intro?  Too
> little?  A crucial bit I left out?  Something I got wrong?
>
> ##
>
>
>
>
>
> Introduction to Proton
> ===
>
>
>
> The Messenger interface is a simple, high-level API that lets
> you create point-to-point messaging applications quickly and easily.
>
> The interface offers four main categories of functionality.
>
>
>
>
> Messenger Operation
> ---
>
>   There are only a few operations that are not directly concerning
>   with message transmission.
>
>   A messenger can be created, named, and freed.  It can be started
>   and stopped, and it can be checked for errors after any operation.
>
>
>
>
>
> Sending and Receiving
> ---
>
>   Both sending and receiving happen in two stages, the inner stage
>   moving the message between your application and a queue, the
>   outer stage transmitting messages between your queues and
>   remote messaging nodes.
>
>   By changing the ratio of transmissions to queue transfers, you
>   can optimize your messaging application for message latency or
>   for overall throughput.
>
>   Subscriptions control what sources your messenger can receive
>   from, and what sources it can send to.  Your messenger
>   subscribes to the sources you want to receive from, while your
>   outgoing messages will be received by messengers that have
>   subscribed to your outgoing address.
>
>
>
>
>
> Message Disposition
> ---
>
>   When you receive messages, you must either accept or reject them.
>
>   You can either configure your messenger to automatically accept
>   all messages that you get, or you can exercise finer control over
>   message acceptance and rejection, individually or in groups.
>
>   Trackers and Windows let you set or check the disposition of
>   messages in groups.  Applying the disposition operations to
>   groups of messages can improve your system's throughput.
>
>   When receiving messages, you can create a tracker
>   for the most recently received message, and later use that tracker
>   to accept or reject all messages up to (and including) that one.
>
>   When sending messages, you can create a tracker for your most
>   recently sent message, and later use it to inquire about the
>   remote disposition of all sent messages up to that point.
>   If you don't want to let a receiver make you wait forever
>   to see what he's going to do, you can set a timeout that will
>   control how long he can take making up his mind.
>
>   By using incoming and outgoing Windows, you can limit the
>   number of messages that these operations affect.
>
>
>
>
>
>
>
> Security
> ---
>
>   The messenger interface allows you to use the Secure Sockets Layer
>   by exposing an interface to the OpenSSL library.
>
>
>
>


Re: [documentation] -- Intro to Proton

2013-02-25 Thread Phil Harvey
Hi Michael,

Maybe you didn't see my previous question (or maybe I didn't see your
answer).

Where are you intending to store this documentation?  Similarly, where are
you intending to publish it, e.g. as HTML and/or PDF on our web site, as a
wiki page etc?

Thanks
Phil


On 25 February 2013 16:15, Michael Goulish  wrote:

>
> Here's the introduction I'm planning on.
>
> If anyone has any opinions, I'd be happy to get them --
> is there too much detail for a quick intro?  Too
> little?  A crucial bit I left out?  Something I got wrong?
>
> ##
>
>
>
>
>
> Introduction to Proton
> ===
>
>
>
> The Messenger interface is a simple, high-level API that lets
> you create point-to-point messaging applications quickly and easily.
>
> The interface offers four main categories of functionality.
>
>
>
>
> Messenger Operation
> ---
>
>   There are only a few operations that are not directly concerning
>   with message transmission.
>
>   A messenger can be created, named, and freed.  It can be started
>   and stopped, and it can be checked for errors after any operation.
>
>
>
>
>
> Sending and Receiving
> ---
>
>   Both sending and receiving happen in two stages, the inner stage
>   moving the message between your application and a queue, the
>   outer stage transmitting messages between your queues and
>   remote messaging nodes.
>
>   By changing the ratio of transmissions to queue transfers, you
>   can optimize your messaging application for message latency or
>   for overall throughput.
>
>   Subscriptions control what sources your messenger can receive
>   from, and what sources it can send to.  Your messenger
>   subscribes to the sources you want to receive from, while your
>   outgoing messages will be received by messengers that have
>   subscribed to your outgoing address.
>
>
>
>
>
> Message Disposition
> ---
>
>   When you receive messages, you must either accept or reject them.
>
>   You can either configure your messenger to automatically accept
>   all messages that you get, or you can exercise finer control over
>   message acceptance and rejection, individually or in groups.
>
>   Trackers and Windows let you set or check the disposition of
>   messages in groups.  Applying the disposition operations to
>   groups of messages can improve your system's throughput.
>
>   When receiving messages, you can create a tracker
>   for the most recently received message, and later use that tracker
>   to accept or reject all messages up to (and including) that one.
>
>   When sending messages, you can create a tracker for your most
>   recently sent message, and later use it to inquire about the
>   remote disposition of all sent messages up to that point.
>   If you don't want to let a receiver make you wait forever
>   to see what he's going to do, you can set a timeout that will
>   control how long he can take making up his mind.
>
>   By using incoming and outgoing Windows, you can limit the
>   number of messages that these operations affect.
>
>
>
>
>
>
>
> Security
> ---
>
>   The messenger interface allows you to use the Secure Sockets Layer
>   by exposing an interface to the OpenSSL library.
>
>
>
>


[documentation] -- Intro to Proton

2013-02-25 Thread Michael Goulish

Here's the introduction I'm planning on.

If anyone has any opinions, I'd be happy to get them -- 
is there too much detail for a quick intro?  Too 
little?  A crucial bit I left out?  Something I got wrong?

##





Introduction to Proton
===



The Messenger interface is a simple, high-level API that lets 
you create point-to-point messaging applications quickly and easily.

The interface offers four main categories of functionality.




Messenger Operation
---

  There are only a few operations that are not directly concerning
  with message transmission.

  A messenger can be created, named, and freed.  It can be started
  and stopped, and it can be checked for errors after any operation.





Sending and Receiving
---

  Both sending and receiving happen in two stages, the inner stage
  moving the message between your application and a queue, the
  outer stage transmitting messages between your queues and
  remote messaging nodes.

  By changing the ratio of transmissions to queue transfers, you
  can optimize your messaging application for message latency or
  for overall throughput.

  Subscriptions control what sources your messenger can receive
  from, and what sources it can send to.  Your messenger
  subscribes to the sources you want to receive from, while your
  outgoing messages will be received by messengers that have
  subscribed to your outgoing address.





Message Disposition
---

  When you receive messages, you must either accept or reject them.

  You can either configure your messenger to automatically accept
  all messages that you get, or you can exercise finer control over
  message acceptance and rejection, individually or in groups.

  Trackers and Windows let you set or check the disposition of
  messages in groups.  Applying the disposition operations to
  groups of messages can improve your system's throughput.

  When receiving messages, you can create a tracker
  for the most recently received message, and later use that tracker
  to accept or reject all messages up to (and including) that one.

  When sending messages, you can create a tracker for your most
  recently sent message, and later use it to inquire about the
  remote disposition of all sent messages up to that point.
  If you don't want to let a receiver make you wait forever
  to see what he's going to do, you can set a timeout that will
  control how long he can take making up his mind.

  By using incoming and outgoing Windows, you can limit the
  number of messages that these operations affect.







Security
---

  The messenger interface allows you to use the Secure Sockets Layer
  by exposing an interface to the OpenSSL library.





Re: 0.4 RC2

2013-02-25 Thread Keith W
Hi Paul

I've successfuly reproduced your issue and are tracking our progress
under PROTON-249.  We don't need your debug output at this stage.

Kind regards, Keith.

On 24 February 2013 00:27, Paul O'Fallon  wrote:
> I filed this as https://issues.apache.org/jira/browse/PROTON-249
>
> I have some files to attach (my cmake debug output and the vs2012 build
> output) but I couldn't see in Jira where to attach the files (maybe I don't
> have permission?)
>
> Thanks,
> Paul
>
>
> On Sat, Feb 23, 2013 at 3:04 PM, Paul O'Fallon 
> wrote:
>>
>> Sure, I'll do that.  This error is from the VS 2012 build output (cmake
>> runs with no errors).  I'm running v. 2.8.10.2 of cmake.
>>
>> I know with other projects I've run into issues when the depth of
>> directories on Windows grows too large -- not sure if this structure is that
>> deep yet (although that's why I moved it to the root dir of my machine to
>> give it the best shot of working).
>>
>> - Paul
>>
>>
>> On Sat, Feb 23, 2013 at 2:35 PM, Keith Wall  wrote:
>>>
>>>
>>>
>>> I'm getting much closer I
>>>
>>> still get one error
>>>
>>> 4>  javac: file not found:
>>>
>>>
>>> C:\qpid-proton-0.4\proton-j\proton-api\src\main\java\org\apache\qpi\proton\driver\Connector.java
>>> 4>  Usage: javac  
>>> 4>  use -help for a list of possible options
>>>
>>> Paul,
>>>
>>> That sounds odd. The proton-api cmakelist is really simple so I wonder
>>> what we might be doing wrong to cause such an error.  We have nothing that
>>> manipulates the paths.
>>>
>>> Would you be able to repeat with cmake in verbose/debug mode (sorry I
>>> forget the precise name of the cmake option and am travelling right now) and
>>> attach the output to a new Jira,   What version of cmake are you using?
>>> What exact commands are you issuing to get the error?
>>>
>>> Kind regards.  Keith.
>>>
>>>
>>
>


[jira] [Commented] (PROTON-249) Build fails on Win8 / VS 2012 with path error

2013-02-25 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13585838#comment-13585838
 ] 

Keith Wall commented on PROTON-249:
---

Marked as Blocker as this currently prevents users from successfully running 
the build on Windows, and I'm not aware of any reasonable workaround.

> Build fails on Win8 / VS 2012 with path error
> -
>
> Key: PROTON-249
> URL: https://issues.apache.org/jira/browse/PROTON-249
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: 0.4
> Environment: Windows 8 64 bit w/ cmake v. 2.8.10.12 and Visual Studio 
> 2012
>Reporter: Paul O'Fallon
>Assignee: Keith Wall
>Priority: Blocker
>
> The build in Visual Studio generates one error, which is the following (from 
> the build output):
> 3>  Building Java objects for proton-api.jar
> 3>  javac: file not found: 
> C:\qpid-proton-0.4\proton-j\proton-api\src\main\java\org\apache\qpi\proton\driver\Connector.java
> 3>  Usage: javac  
> Note that the path is "qpi", not "qpid"

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Comment Edited] (PROTON-249) Build fails on Win8 / VS 2012 with path error

2013-02-25 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13585836#comment-13585836
 ] 

Keith Wall edited comment on PROTON-249 at 2/25/13 12:56 PM:
-

I've successfully reproduced Paul's problem.

The problem is the handling of long command lines under the Windows OS. It 
seems Windows looses a byte at every 8192 boundary within the command line -- 
effectively limiting command lines to less than 8192 bytes.Our command line 
is ~11,000 characters long.

We are currently testing a workaround which will use javac's @ flag to specify 
a file containing a list of source files, thus avoiding the requirement for 
long command lines.   (A defect http://public.kitware.com/Bug/view.php?id=13028 
was raised against Cmake's UseJava module but unfortunately this never got 
assigned and has been subsequently closed without action).



  was (Author: k-wall):
I've successfully reproduced Paul's problem.

The problem is the handling of long command lines under the Windows OS. It 
seems Windows looses a byte at every 8192 boundary within the command line -- 
effectively limiting command lines to less than 8192 bytes.Our command line 
is ~11,000 characters long.

We are currently testing a workaround which will use javac's @ flag to specify 
a file containing a list of source files, thus avoiding the requirement for 
long command lines.   (A defect http://public.kitware.com/Bug/view.php?id=13028 
was raised against Cmake's UseJava module but unfortunately this never got 
assigned).


  
> Build fails on Win8 / VS 2012 with path error
> -
>
> Key: PROTON-249
> URL: https://issues.apache.org/jira/browse/PROTON-249
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: 0.4
> Environment: Windows 8 64 bit w/ cmake v. 2.8.10.12 and Visual Studio 
> 2012
>Reporter: Paul O'Fallon
>Assignee: Keith Wall
>
> The build in Visual Studio generates one error, which is the following (from 
> the build output):
> 3>  Building Java objects for proton-api.jar
> 3>  javac: file not found: 
> C:\qpid-proton-0.4\proton-j\proton-api\src\main\java\org\apache\qpi\proton\driver\Connector.java
> 3>  Usage: javac  
> Note that the path is "qpi", not "qpid"

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (PROTON-249) Build fails on Win8 / VS 2012 with path error

2013-02-25 Thread Keith Wall (JIRA)

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

Keith Wall updated PROTON-249:
--

Priority: Blocker  (was: Major)

> Build fails on Win8 / VS 2012 with path error
> -
>
> Key: PROTON-249
> URL: https://issues.apache.org/jira/browse/PROTON-249
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: 0.4
> Environment: Windows 8 64 bit w/ cmake v. 2.8.10.12 and Visual Studio 
> 2012
>Reporter: Paul O'Fallon
>Assignee: Keith Wall
>Priority: Blocker
>
> The build in Visual Studio generates one error, which is the following (from 
> the build output):
> 3>  Building Java objects for proton-api.jar
> 3>  javac: file not found: 
> C:\qpid-proton-0.4\proton-j\proton-api\src\main\java\org\apache\qpi\proton\driver\Connector.java
> 3>  Usage: javac  
> Note that the path is "qpi", not "qpid"

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (PROTON-249) Build fails on Win8 / VS 2012 with path error

2013-02-25 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13585836#comment-13585836
 ] 

Keith Wall commented on PROTON-249:
---

I've successfully reproduced Paul's problem.

The problem is the handling of long command lines under the Windows OS. It 
seems Windows looses a byte at every 8192 boundary within the command line -- 
effectively limiting command lines to less than 8192 bytes.Our command line 
is ~11,000 characters long.

We are currently testing a workaround which will use javac's @ flag to specify 
a file containing a list of source files, thus avoiding the requirement for 
long command lines.   (A defect http://public.kitware.com/Bug/view.php?id=13028 
was raised against Cmake's UseJava module but unfortunately this never got 
assigned).



> Build fails on Win8 / VS 2012 with path error
> -
>
> Key: PROTON-249
> URL: https://issues.apache.org/jira/browse/PROTON-249
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: 0.4
> Environment: Windows 8 64 bit w/ cmake v. 2.8.10.12 and Visual Studio 
> 2012
>Reporter: Paul O'Fallon
>Assignee: Keith Wall
>
> The build in Visual Studio generates one error, which is the following (from 
> the build output):
> 3>  Building Java objects for proton-api.jar
> 3>  javac: file not found: 
> C:\qpid-proton-0.4\proton-j\proton-api\src\main\java\org\apache\qpi\proton\driver\Connector.java
> 3>  Usage: javac  
> Note that the path is "qpi", not "qpid"

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Assigned] (PROTON-249) Build fails on Win8 / VS 2012 with path error

2013-02-25 Thread Keith Wall (JIRA)

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

Keith Wall reassigned PROTON-249:
-

Assignee: Keith Wall

> Build fails on Win8 / VS 2012 with path error
> -
>
> Key: PROTON-249
> URL: https://issues.apache.org/jira/browse/PROTON-249
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: 0.4
> Environment: Windows 8 64 bit w/ cmake v. 2.8.10.12 and Visual Studio 
> 2012
>Reporter: Paul O'Fallon
>Assignee: Keith Wall
>
> The build in Visual Studio generates one error, which is the following (from 
> the build output):
> 3>  Building Java objects for proton-api.jar
> 3>  javac: file not found: 
> C:\qpid-proton-0.4\proton-j\proton-api\src\main\java\org\apache\qpi\proton\driver\Connector.java
> 3>  Usage: javac  
> Note that the path is "qpi", not "qpid"

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira