You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Karthik Rangaraju <kr...@sapient.com> on 2001/04/09 03:50:01 UTC

Questions and Contributions! from a newbie

Hi all,
      I'm new to the project and am excited to contribute. I've got a couple
of questions (this is my first open-source participation):

Questions:
1)	How do you co-ordinate checking in new stuff? Do people develop
locally and email it to pre-approved/authorized folks?
2)	How does Apache decide whether or not to endorse new project ideas?
If I have an idea, how can I see if Apache would like to develop it?

Contributions:
(The classes that I've developed are under the package root
org.k2d2.framework. I'll change them if approved for inclusion. Also I'll
need to do a little tweaking in terms of coding standards)

Threading utilities:
-	I've written classes for Mutex, Critical Sections, Djikstra
Semaphores (also called counting semaphores) and Thread barriers. Avalon
already has Mutexes and Locks, but you may find Djikstra semaphores and
thread barriers useful
-	Blocking queues: The most valuable threading utilities: I've got two
versions: Bounded and boundless. A blocking queue blocks threads when trying
to dequeue() from an empty queue. A bounded blocking queue blocks threads
trying to enqueue() to a full queue. 

	Dispatch servers:
-	I've got a dispatch and multi-dispatch (pipelined dispatch) server
implementation. The basic idea is that you define a component (I call it a
ServerCommand) that the dispatch server manages. Each component gets an
in-queue and an out-queue and as jobs are put in its in-queue, the server
hands it the job for processing and when done puts it in the outqueue.
Multi-dispatch server extends this by creating a pipeline of commands by
chaining in-queue and out-queues. You guys have Pipelines and kernels, not
sure if they are different or not. I've not yet had a chance to dig deep

	Note: The Exception class in the code has a reference to an base
exception class not included in the tar file. Simply substitute your own to
get it to compile. Also the Test.java class has a simple example usage

	Planned development:
-	I'm planning to write code to implement distributed locks (across
VMs). This will enable me to implement a rudimentary distributed shared
memory utility. I'll submit that too

I'm also planning to write articles on the above for Java world. I hope
there will be no copyright issues if you guys add the code to the Avalon
project.


Thanks for your time!
Karthik

 <<k2d2.tar>> 

RE: Questions and Contributions! from a newbie

Posted by Peter Donald <do...@apache.org>.
At 06:15  9/4/01 +0200, Leo Simons wrote:

>PS: it's probably better if you default to plain text e-mail when 
>posting to this (or any other) mailing list - not everyone might 
>be able to read your messages.

he saids as he replies using HTML ;)
Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-dev-help@jakarta.apache.org


RE: Questions and Contributions! from a newbie

Posted by Leo Simons <ma...@leosimons.com>.
Questions and Contributions! from a newbieHi all,
        I'm new to the project and am excited to contribute. I've got a
couple of questions (this is my first open-source participation):

  Welcome! Good to have you aboard =)

  Questions:

    1.. How do you co-ordinate checking in new stuff? Do people develop
locally and email it to pre-approved/authorized folks?
    2.. How does Apache decide whether or not to endorse new project ideas?
If I have an idea, how can I see if Apache would like to develop it?
   A special kind of software is used for source control: CVS.
  You can find out more about cvs at http://www.cvshome.org. Take a
  look at http://jakarta.apache.org/site/cvsindex.html for instruction
  about accessing the Jakarta CVS repository.

   Contributions:

  ...seem to work well.

  Threading utilities:

        a.. I've written classes for Mutex, Critical Sections, Djikstra
Semaphores (also called counting semaphores) and Thread barriers. Avalon
already has Mutexes and Locks, but you may find Djikstra semaphores and
thread barriers useful
        b.. Blocking queues: The most valuable threading utilities: I've got
two versions: Bounded and boundless. A blocking queue blocks threads when
trying to dequeue() from an empty queue. A bounded blocking queue blocks
threads trying to enqueue() to a full queue.

  I believe Mutex is available as well. I don't know much about threading,
but
  these might be very useful. The place to put them is
  org.apache.avalon.util.thread. If you add them to the avalon source and
  make sure they work, send them to the list and someone will commit
  them for you.

     Dispatch servers:

        a.. I've got a dispatch and multi-dispatch (pipelined dispatch)
server implementation. The basic idea is that you define a component (I call
it a ServerCommand) that the dispatch server manages. Each component gets an
in-queue and an out-queue and as jobs are put in its in-queue, the server
hands it the job for processing and when done puts it in the outqueue.
Multi-dispatch server extends this by creating a pipeline of commands by
chaining in-queue and out-queues. You guys have Pipelines and kernels, not
sure if they are different or not. I've not yet had a chance to dig deep

  A pipeline is a one-way trip through different commands. They're used
mainly
  for tracking the lifecycle of blocks running inside the Kernel. You might
  want to read up on the documentation...it's really interesting.
  The Avalon concept of Kernel and ServerApplications allows for a wider
  range of server implementations than the dispatching concept.
    Planned development:

        a.. I'm planning to write code to implement distributed locks
(across VMs). This will enable me to implement a rudimentary distributed
shared memory utility. I'll submit that too
  This definately sounds useful. I believe that most view Avalon as being at
a
  lower level than this (applications that wish to distribute tasks across
multiple
  VMs or machines should implement this themselves), which means this
  might be implemented best as a generic component inside
  org.apache.cornerstone, or inside another Avalon project, Commons.
  You might want to check with them.

  I'm also planning to write articles on the above for Java world. I hope
there will be no copyright issues if you guys add the code to the Avalon
project.

  All Avalon code falls under the Apache License, which is an Open Source
  license...copyright issues are nonexistent, as long as you include the
short notice
  in each source file and provide a (link to the) copy of the license.

  regards,

  Leo Simons

  PS: it's probably better if you default to plain text e-mail when posting
to this
  (or any other) mailing list - not everyone might be able to read your
messages.