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):Welcome! Good to have you aboard =)
Questions:
- How do you co-ordinate checking in new stuff? Do people develop locally and email it to pre-approved/authorized folks?
- 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:
- 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.
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:
- 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 mightwant to read up on the documentation...it's really interesting.The Avalon concept of Kernel and ServerApplications allows for a widerrange of server implementations than the dispatching concept.
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
This definately sounds useful. I believe that most view Avalon as being at alower level than this (applications that wish to distribute tasks across multipleVMs or machines should implement this themselves), which means thismight be implemented best as a generic component insideorg.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.
Title: Questions and Contributions! from a newbie
- Questions and Contributions! from a newbie Karthik Rangaraju
- Re: Questions and Contributions! from a newbie Peter Donald
- RE: Questions and Contributions! from a newbie Leo Simons
- RE: Questions and Contributions! from a newbie Peter Donald