Domain: objectweb.org
Stories and comments across the archive that link to objectweb.org.
Comments · 42
-
Re:Wow, that's a big fat ASS^H^HPI
Have a chip on your shoulder much? Most of what you're saying is simply incorrect. e.g. Java does not have half-a-dozen containers. Yes, the switch from the STL-inspired Vector to the more Java-ish ArrayList was annoying. Same with HashTable to HashMap. But beyond that, all those different containers you think you see are actually interfaces for wiring up complex functionality. Either that or completely different data structures with different performance characteristics. (Remember your CompSci courses?) The Java Collections package (which seems to be the only thing in Java you're remotely familiar with) provides enough functionality to write a complete database engine. Which, as a matter of fact, has been done quite a few times. (Sorry, ran out of words to link. Doh! Still more. Ah, to hell with it.)
The rest of the Java API is also not bloat. There are libraries for printing, crytography, sound, graphics, DOM, file I/O, text parsing, text formatting, text display, mathematics, directory interfaces (e.g. LDAP), distributed object systems, reflection, security, SQL database interface, logging, cross-platform preferences, regular expressions, ZIP/GZip support, accessibility, networking, the compiler, scripting engines, etc., etc., etc. Very little of the core API is redundant, with most of the (few!) redundancies being a result of the early days of Java before they moved away from the C++ style objects.
Nearly all of the post-1.0 APIs were done correctly the first time. Which means that the core Java API is actually quite slim for the amount of functionality it provides. And even then, there is a HUGE number of official expansion APIs for mail, multimedia codecs, network request/response handlers (e.g. servlets), 3D graphics, 3D sound, text-to-speech, speech recognition, telephony, SOAP, REST, USB, Bluetooth, scientific units, cross-platform desktop integration, Instant Messaging, P2P, and quite a bit more. And that's just the official JSR-approved expansions! The OSS and (bleh) commercial worlds are full of unofficial libraries to deal with nearly any problem you can come up with.
If you want bloat, stop looking at Java. Try compiling a few Linux apps sometime and tell me how many redundant libraries you come across. If you know what they all do (which is a miracle in of itself), compiling just ONE of those programs is enough to make a person blush with embarrassment. Not to mention that when a platform IS solidified (e.g. GNOME), it suffers from versionitis. (i.e. The constant need to upgrade your version of the libraries because this latest program no longer targets the version you just compiled. Or even worse, it requires a specific minor release, thus requiring you to have multiple minor releases of the library compiled and installed.) I won't even go into Microsoft's practice of inventing a new API for the same technology over, and over, and over again. (ODBC, DAO, ADO, JET, anyone?)
Now I happen to think that a lot of the choice that Linux offers is good. But don't point fingers at other platforms when there are more than enough examples of far worse situations close to home. -
Re:Lets invent yet another language!
I checked again.
The wiki is wrong. BeanShell uses this library: http://asm.objectweb.org/ to create byte code.
angel'o'sphere -
Re:Bad idea
First of all, Hibernate came after EJB
This is true. I meant that EJB and Hibernate were both attempts to solve the object persistence problem.
either Hibernate nor EJB does any bytecode manipulation or other JVM tricks.
This is incorrect. Hibernate uses CGLIB and ASM to do runtime magic. They explain this in their FAQs. Rails is possible because Ruby gives developers power that Java denies unless you do magic like that.
Second, EJB is very much alive [...], and was designed with a lot of the features of Hibernate in mind. [...] You should really check out the features in Java EE 5. It was designed to make developer's lives easier.
Yes, this is exactly my point. For years, EJBs were hideous to use and bad performers; I made several "enterprise" systems perform 10x better (and, as a bonus, much easier to work on) by ripping out the EJB crap that others put in when EJBs were fashionable. The Hibernate guys showed years and years ago that there was no need to suffer like that, and Sun has finally come around.
This is exactly the sort of good influence open source can have on Sun's cathedral-style, enterprise-bunker view of the world. But both C# and Hibernate show that Sun needs to keep getting their noses rubbed in it before the realize that making developer's lives easier is the primary point of a programming language. Hopefully Rails will give them a kick in their web-framework keister the way that Hibernate's independent success made them realize their persistence sucked. -
Sequoia/CJDBC
-
Re:JBoss and Marc Fleury
the _only_ full J2EE certified open source appserver
What about Jonas ? -
Re:We'll see.So someone, tell me, what's the next open source EJB server in the line?
I like JOnAS.
-
Don't forget about C-JDBC.
I should mention that if you didn't code-in memcached, you probably don't want to retrofit it, just for performance tuning or capacity scaling. In that case, I should suggest C-JDBC. You don't need to use a Java AS node in order to use C-JBDC, either.
I haven't made a production deployment of C-JDBC, so I defer to the experience of others, but from my research, it looks like a hot ticket for scaling DB performance while simultaneously isolating you from the specificities of a given DB product. -
Re:.NET?!?
The CLR affords far better platform specific integration than Java. JNI is complicated and horrible. COM Interop and API invocation in
.NET is fairly easy and straight forward. This is important for adoption considering the huge amount of legacy code that often needs to be interop'd with.Yes, if you wish to restrict your environment to Microsoft platforms. However I work in a world where there are over 800 core applications running on everything but the kitchen sink. The environment grew organically and will take a long time to standardize. Furthermore, not all business requirements can be well supported in one environment.
.NET requires one environment (Microsoft's), while Java does mot.In short, I can change the technologoy, but I have much less freedom to change the business.
While both
.NET and Java are free, the application servers they run on are not. For ASP.NET, IIS is the application server. For Java/J2EE, it could be Web Sphere or a variety of others. In pretty much every case a Windows license will be a lot cheaper than the license for the J2EE app server... especially Web Sphere.First of all, while the actual CLR is free, the tools to build enterprise level applications in
.NET are not. In order to get the tools, you will need to probably purchase a professional version of Visual Studio .NET.As far as application server costs (both capital and continuing), this depends on your environment's comfort with freely available software. There are at least three good J2EE servers available (Jonas , JBoss, Geronimo ). There are several flavors of Linux available. If you do not need EJB functionality, then there are several freely available JSP/Servlet containers available with Tomcat probably being the most well-known.
In short, if you have an organically grown environment or are not in a position to dictate the environment, Java is a good choice. If you can completely dictate the environment and force it to be Microsoft - only, then
.NET may be a viable option.As far as a technology being so pick your timeframe, that's just marketing speak. You pick the tool for the task at hand. People who create IS environments based on marketing rather than business, technical, and business culture requirements get what they deserve.
They get expesive, poorly functioning, business-inhibiting environments that can only be changed by the forklift upgrade method.
-
Re:.NET?!?
... designed from the start with the idea of multiple language support
Well, yes and no. The CLR was designed so that it could run C#, VB looking like code and C++-ish code. Simultaneously, VB was ditched and a new language that could actually run on the CLR was written (VB.NET), and C++ features were jettisoned from managed C++ to allow the same. And finally Java features were dropped to allow for compatibility with the 2 others (checked exceptions, for instance - brilliant to market it as an "improvement" when they actually had no choice).
being able to write more or less equally capable code in...
See above. Can you write .NET code in a language that looks like VB? Sure. Guess it helps developers "feeling home". But you have to forget long held habits (like dates stored in doubles). So then again it's not VB. More like C# with a VB like syntax. Same with managed C++ (no multiple inheritance). And in both cases, you have to learn new libraries and a new API. In effect 80% of what is usually called "a language".
...affords far better platform specific integration than Java
Yeah, well, guess what. Reason we use Java is because the server app runs on any *x, and the client on win, linux and mac without a shred of recompile. Anyway. Corba is not a problem on Java for legacy stuff, and everybody seems to be moving to SOAP for new code :-( The one thing Microsoft did really right in that domain is the seamless integration with unmanaged C++.
...a Windows license will be a lot cheaper than the license for the J2EE app server.
*cough* JBOSS *cough* JoNas
C# is not an evolutionary step over Java. It's an evolutionary step in windows development. And the reason Java could not have done it is because they specifically made it multiplatform. And enforced it. If it wasn't for that, you'd be saying that MSJava is the best thing, and too bad if it doesn't run on other OSes. -
Re:.NET?!?I can accept most of your points except:
While both
It is possible that WebSphere, WebLogic, and the like may cost more than the .NET and Java are free, the application servers they run on are not. For ASP.NET, IIS is the application server. For Java/J2EE, it could be Web Sphere or a variety of others. In pretty much every case a Windows license will be a lot cheaper than the license for the J2EE app server... especially Web Sphere. .NET equiv (not sure as I've not priced MS lately), but that does not consider: That are completely free of charge to both develop and deploy for production use. Support is also available if you'd like-- both free via the web and for-pay for each of these.
Many of your points may be correct, but a price comparison is not necessarily one of them.
rob. -
What about a AoE and c-jbdc and maybe Mysql?
Storage with AtaOverEthernet. The cheapest Midium size storage...
And write a fs wrapper to acces clusterd jdbc proyect...
And mysql as file repository?
Ata Over Ethernet
http://freshmeat.net/projects/aoelinux/
Ata Over Ethernet tools
http://freshmeat.net/projects/aoetools/
c-jbdc
http://c-jdbc.objectweb.org/
Mysql
http://mysql.org/ -
Re:Some ideasThen you obviously have never looked at JBoss source code. Ick.
Try JOnAS instead.
-
Re:Not GPL, LGPL
Is JBoss, the only 'real' J2EE App Server out there ? I don't think so.
There are alternatives opensource projects like JOnAS(http://jonas.objectweb.org/ or Geronimo(not production ready) available.
JOnAS is J2EE 1.4 certified too, completely free.
The development team is very reactive on the mailing lists.
And the most important : a lot of projects are already in production :) -
Working mirrors
I had the page up to the mirrors, then even the routing pages died (so I had to extract that actual mirror link from the full URL...); anyway, here's one mirror that's zipping along for me. And I will post this reply as soon as my download finishes...
win32 zip at mirror.reachable.ca
You can figure out the base directory from that if you want it for another platform.
And a few more that I haven't tested, in various countries (trying to pick the ones that look the toughest):
gulus.USherbrooke.ca
mirrorservice.org
eclipse.objectweb.org
software-mirror.com
sunsite.informatik.rwth-aachen.de
Final note: some of these are definitely hosed; the first seems to work. Gotta hand it to the Canadians -- they're the ones staying up. -
Re:mirror list
For the Mac OS X version (eclipse-SDK-3.1-macosx-carbon.tar.gz):
[Austria] Vienna University of Technology
http://gd.tuwien.ac.at/softeng/eclipse/R-3.1-20050 6271435/eclipse-SDK-3.1-macosx-carbon.tar.gz
[Canada] Groupe d'utilisateurs de Linux de l'UdeS
http://gulus.usherbrooke.ca/pub/appl/eclipse/eclip se/downloads/drops/R-3.1-200506271435/eclipse-SDK- 3.1-macosx-carbon.tar.gz
[France] ObjectWeb Consortium (INRIA - French National Inst
http://eclipse.objectweb.org/downloads/drops/R-3.1 -200506271435/eclipse-SDK-3.1-macosx-carbon.tar.gz
[Germany] University of Applied Sciences Esslingen
http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclip se/R-3.1-200506271435/eclipse-SDK-3.1-macosx-carbo n.tar.gz
[Hungary] Gabriel Consulting
http://eclipse.gabriel.co.hu/downloads/drops/R-3.1 -200506271435/eclipse-SDK-3.1-macosx-carbon.tar.gz
[Slovenia] bevc.net
http://mirrors.bevc.net/eclipse/download/drops/R-3 .1-200506271435/eclipse-SDK-3.1-macosx-carbon.tar. gz
[Switzerland] SWITCHmirror
http://mirror.switch.ch/mirror/eclipse/downloads/d rops/R-3.1-200506271435/eclipse-SDK-3.1-macosx-car bon.tar.gz
[Turkey] Hacettepe University, Department of Computer Science & Engineering
http://mirrors.cs.hacettepe.edu.tr/eclipse.org/ecl ipse/downloads/drops/R-3.1-200506271435/eclipse-SD K-3.1-macosx-carbon.tar.gz
[United Kingdom] UK Mirror Service
http://www.mirrorservice.org/sites/download.eclips e.org/R-3.1-200506271435/eclipse-SDK-3.1-macosx-ca rbon.tar.gz
[United States] Calvin College
http://mirror.calvin.edu/eclipse/downloads/drops/R -3.1-200506271435/eclipse-SDK-3.1-macosx-carbon.ta r.gz
[United States] Calvin College (ftp)
ftp://mirror.calvin.edu/eclipse/downloads/drops/R- 3.1-200506271435/eclipse-SDK-3.1-macosx-carbon.tar .gz
Unfortunately as of 2005-06-29 02:26:39 BST none are updated yet, hopefully all the rsync mirroring cronjobs'll complete soon! -
plug plug
If they don't, they run tomcat (if no EJBs requried) or JBoss.
Or JOnAS!
-
JOnAS
JOnAS is our there... free, and LGPL'ed and is already J2EE 1.4 certified
It's also not too bad at all... -
Or ObjectWeb?
How about Joram which is supposed to be pretty good.
-
XPDL
XPDL is an XML language made for workflow management. While I did not work with it myself one of my co-workers implemented a "workflow extension" for a well-known J2EE e-commerce suite using XPDL. There is an open source editor (JaWE) and an open source engine (Shark). If I remember correctly we did not use the latter.
XPDL is not the only workflow description standard and XPDL in itself won't bring you anywhere. This is a topic which is unfortunately being worked by a lot of marketing and sales guys who will promise anything to get their tools sold.
While I can assure you that XPDL was the right choice for us it can be the wrong choice for you. This very much depends on what you actually need to achieve. "Workflow" is a really broad topic (as is "J2EE" by the way). If it comes down to management of approval then you maybe better roll your own.
If you are really forced to use J2EE than this probably has a reason which might be that J2EE is used in your company alot. So for questions like persistence you might ask your co-workers. We worked with EJB for years and ended up using our very own "bean managed persistence". I would not advice using EJB to starters but like I said there might be enough knowledge arround you anyway.
As always you can't have both flexibility and simplicity. Unfortunately with Workflow Management this seems to be even more the case. So get your priorities straight and then - Good Luck! -
XPDL
XPDL is an XML language made for workflow management. While I did not work with it myself one of my co-workers implemented a "workflow extension" for a well-known J2EE e-commerce suite using XPDL. There is an open source editor (JaWE) and an open source engine (Shark). If I remember correctly we did not use the latter.
XPDL is not the only workflow description standard and XPDL in itself won't bring you anywhere. This is a topic which is unfortunately being worked by a lot of marketing and sales guys who will promise anything to get their tools sold.
While I can assure you that XPDL was the right choice for us it can be the wrong choice for you. This very much depends on what you actually need to achieve. "Workflow" is a really broad topic (as is "J2EE" by the way). If it comes down to management of approval then you maybe better roll your own.
If you are really forced to use J2EE than this probably has a reason which might be that J2EE is used in your company alot. So for questions like persistence you might ask your co-workers. We worked with EJB for years and ended up using our very own "bean managed persistence". I would not advice using EJB to starters but like I said there might be enough knowledge arround you anyway.
As always you can't have both flexibility and simplicity. Unfortunately with Workflow Management this seems to be even more the case. So get your priorities straight and then - Good Luck! -
Re:Where to go ?
Indeed. So how about JOnAS
It uses either Tomcat or Jetty on the web tier too!
The documentation is (fairly) good, and the developers and communitiy are fast to respond, and very helpful. JOnAS has also received a grant to get full J2EE certification -
Re:How about transactions?
The docs (try the user guide) do mention transactions, but I didn't see any detailed discussion of how they handle it....
Honestly, you *might* have to wait until all databases were finished, when performing an update, insert or delete. Otherwise how could it possibly handle a rollback (which the docs do mention, so they're supported)?
This isn't as bad as it sounds, though. It's not as if the databases were updated in sequence; they're all updating at once, so it won't take any longer than if you were using a single database, and not clustering at all. And you still have the huge benefit of huge, myriad-join selects running on the nodes independantly of each other... which is where this would really help my projects out. I don't do many intensive updates/deletes/inserts... it's the reports that do lots all the calculations using data from dozens of tables that start dragging things down.
I'm no expert on how database clustering normally works.. so anyone feel free to jump in here. -
Nonsense... this is an awesome project
Um... this isn't a database engine (though there *are* database engines written in Java). And I think you're still thinking of Java applets, which is really not a strong point. I'll skip the rant in favor of providing some actual info on the project, though, since it looks really cool.
Here's the homepage, with much better info that the download link above.
Basically, they provide a standard JDBC interface that your application can use normally (no code modification needed at all!). The driver forwards the SQL requests to a central controller that balances them on a cluster of replicated databases (reads are load-balanced and writes are broadcasted).
You can use it with any RDBMS providing a JDBC driver, i.e. almost all existing databases -- anything from Oracle and DB2 to MySql and PostgreSql to, yes, Cloudscape -- anything with a JDBC driver.
Sweet, huh?
It's also highly configurable and extensible (you can even mix *different* kinds of databases in your cluster!), with plug points for adding custom request schedulers, load balancers, connection managers, caching policies, etc.
This could be a godsend for some of my projects. Database access seems to always be the bottleneck that's hardest to fix without complex and expensive solutions. -
Re:HardlyHardly a comparison
I would tell you to go get Lomboz, except that there's no release compatible with Eclipse 3.0RC3 (I've heard that you can pull it out of CVS and build it, or you can try someone else's build here for RC1, which is what I use). This would take care of your Tomcat support, along with support for a bunch of other servers (Weblogic, JBoss, etc.), and takes care of JSP syntax highlighting, correction, and debugging. UML is taken care of with a plugin from an Eclipse subproject, UML2. CVS is there right out of the box, as is code completion. Code optimization is helped by Hyades, another Eclipse subproject. How's that? Assuming that the projects release compatible versions once version 3.0 hits, then you need three things:
Lomboz
UML2
Hyades -
Re:This is good but...You are wrong in thinking that all large corporations are in favour of software patents, or that there is even an economical majority (in Europe) in favour of software patents. In Germany, 80% of the people employed in IT work for SME's, in Belgium 60%. As for large corporations against software patents, have a look at this letter written by the ObjectWeb Consortium, representing these companies. Some names you might recognise are Dassault Aviation, France Telecom R&D and the Thales Group.
Further, the current Commission stance on software patents is mostly dominated by Bolkestein, an extremely conservative "liberal" who longs for a European Microsoft (and failing that, just Microsoft: a few all-encompassing companies as "backbone" for the economy). Bolkestein is now leaving the Commission. Of course, his people will most likely remain, but it will still be interesting to see whether this will bring any change. And failing that, there's still the Parliament and more and more to some extent even the Council that could help us.
-
Re:It's the ASF's J2EE Container
I guess ASF could finally certify it's J2EE container, but maybe it'll take a while to implement the whole J2EE 1.4 specification.
There is another open source J2EE container, Jonas (Java Open Application Server, from Objectweb consortium) who is aiming for J2EE 1.4 certification. I've used their J2EE 1.3 -compliant versions, and latest stable version (3.3.6) is really a very good container implementation, even in production environments.
First milestone release (4.0) of J2EE 1.4 container is already released.
I think that Jonas could very well be the first certified open source container. -
Re:High cost of J2EE?Quite a few more, depending on your definition of "J2EE Application Server". J2EE is a collection of specifications, and you only need to implement one (or more) of those specifications to be considered a J2EE server....
But there are other Open Source "full j2ee stack" application servers out there besides JBoss - Jonas for example.
-
Correction
Like it or not XFree86 is still the only real alternative to a commerial XServer right now, just as JBoss is the only real alternative to commercial J2EE servers.
Slightly offtopic, but since the post has been modded insightful this really deserves a correction. There is a very real alternative to JBoss in the open-source world: JOnAS, which will be a certified J2EE server real soon . -
Correction
Like it or not XFree86 is still the only real alternative to a commerial XServer right now, just as JBoss is the only real alternative to commercial J2EE servers.
Slightly offtopic, but since the post has been modded insightful this really deserves a correction. There is a very real alternative to JBoss in the open-source world: JOnAS, which will be a certified J2EE server real soon . -
SuSe to announce hot stuff next week ???While wandering the web I discovered that SUSE will be featured during a press conference organized by Objectweb on Linux World in Germany next week.
So : SuSe announces version 9 Professional & SuSe is a guest star of an ObjectWeb press conference.
Do the math !
-
SuSe to announce hot stuff next week ???While wandering the web I discovered that SUSE will be featured during a press conference organized by Objectweb on Linux World in Germany next week.
So : SuSe announces version 9 Professional & SuSe is a guest star of an ObjectWeb press conference.
Do the math !
-
Linked text in case of slashdotting!
Posted by Cliff on Thursday September 11, @04:45PM
from the prime-time-league-contenders-yet? dept.
grugruto asks: "A lot of open source solutions are available to scale web sites with clusters but what about databases? I can't afford an Oracle RAC license but can I have something more reliable and fault tolerant than my single Postgres box? I have seen this recent article that looks promising for open source solutions. Do anyone have experiences with clusters of MySQL , Postgres-R, C-JDBC or other solutions? How does it compare to commercial products?" -
Re:Good Thing(tm)
Another alternative is replication at the driver layer. Check out C-JDBC if you dont know it yet.
-
Re:Is this only a partial solution?
8. clients using JDBC would need some mechanism of finding out what the new master is when an update/insert/delete fails.
C-JDBC may take care of this -
Re:Why modded as troll? Sigh...Just note that tomcat is NOT a *complete* j2ee server (i.e. it's "just" a webserver - more or less). Then whether you actually need a complete j2ee server is a different matter.
Correct.
Anyway... it's only matter of installing just one additional package :).+ + + +
I am quite sure to have read or heard somewhere (maybe at the Italian JavaConference that the Jakarta project wished to integrated an EJB container inside Tomcat for version 5.0 or 6.0. Can't find a reference however :(. Maybe it was too much Twix & Cappuccino. :(+ + + +
Mental note: stop eating junk food before posting on slashdot. -
Re:Tried this before... its a tough sell
They support RAID 0 and 1 plus any combination thereof. Therefore you can have your tables on multiple hosts and whichever one is up can send the results. You could have your entire database on multiple pc's and use this with two or more frontends to have the fastest responding server service the request. This is exactly about failover in the DBC layer. For more info on this see This page.
-
Re:How about a meta-database adapter?
Actually, if you look at RAIDb-0, it is very close to this, maybe even identical. They show having different tables on different database servers. They also indicate that C-JDBC can be used without modifcations to the application. This would imply that if you get a JDBC driver for MSSQL, a JDBC for PostreSQL, and write your code using JDBC, you should be able to do the type of selects you are talking about.
-
Re:Quick thru the docs...Some answers:
1. Yes, you can have multiple controllers that synchronizes using group communication. In the driver, you give a list of coma separated host names running controllers. The driver has built-in failover and load balancing among multiple controllers (check the doc here).
2. Yes, all ports are customizable when you start the controller (check the doc here).
This is just an alpha version, so as you mentioned, there are still many features missing but it is a good starting point and contributions are welcome (remember it is open source software
;-))! -
Re:Quick thru the docs...Some answers:
1. Yes, you can have multiple controllers that synchronizes using group communication. In the driver, you give a list of coma separated host names running controllers. The driver has built-in failover and load balancing among multiple controllers (check the doc here).
2. Yes, all ports are customizable when you start the controller (check the doc here).
This is just an alpha version, so as you mentioned, there are still many features missing but it is a good starting point and contributions are welcome (remember it is open source software
;-))! -
Re:Performance?
C-JDBC can handle more than just full partitioning or replication, it also provides partial replication (a little bit like you would use RAID-5 with disks).
The idea is that with full replication you have to broadcast the write to all databases (to be consistent) and you can only balance the reads. By controlling the replication of each database table, you can have scalable performance. Look also at the nested RAIDb levels, it's pretty cool to build large configurations.
Some tests have been done with TPC-W and performance scales linearly up to 6 nodes (we did not have a larger cluster to test bigger configurations).
Sure it will not replace very large Oracle configurations at the end of the year, but it looks very promising. -
The joram projectCheck out the Objectweb project, and in particular Joram. Objectweb is a complete J2EE environnement that includes a MOM with a JMS interface. A XML-RPC interface is in the works.
The project is spear-headed by INRIA (a French research institute). The whole system is open-source and they are doing quite advanced stuff (including group communications).
-
Jabber, XMLBlaster and friends
Jabber is normally thought of as yet another IM system, but "Jabber is an open XML protocol for the real-time exchange of messages and presence between any two points on the Internet" (from the Jabber site). Its first application has been IM, but it is by no means limited to IM. Jabber is a protocol specification, and there are several open and closed source implementations of clients and servers.
xmlBlaster is a more traditional MOM offering, under LGPL. It supports numerous protocols and bindings into a number of languages.
As usual, Google offers a lot of advice on the topic of 'mom middleware "open source"', including a list of MOM implementations which tells us that JORAM is also open source, and an article entitle Open Source in Middleware.