|
Open source involvement
[
vmassol
]
09:40, Wednesday, 24 October 2007
I was invited to speak about the XWiki platform at the Valtech Days 2007. It was a very interesting event, focused on Agility. I presented XWiki a bit differently than what we are used to. Whereas XWiki was an Enterprise Wiki not long ago, it's really now a development platform for writing collaborative web applications (and more specifically applications focused on content). The presentation focused on the platform and what type of applications it's possible to build on top of it. My slides are available online.
[
vmassol
]
00:19, Saturday, 6 October 2007
Ludovic and I are in the Silicon Valley between the 6th of October to the 12th of October 2007. We've been kindly invited by Google for the Google Summer of Code Mentor Summit (Thanks Google!) and we're taking that occasion to spend some time in the valley to meet the maximum number of people and talk about wikis and XWiki. If you're interested to meet up register on the Facebook event. We have also organized a joint XWiki and Maven tech meetup on the 9th of October, at Terracotta. Indeed Terracotta has been extermely kind not only to lend us a room but also to cater for some pizzas and snacks :) Thanks Terraccotta! The address is: Terracotta Inc. 650 Townsend St. Suite 325 San Francisco, CA 94103 USA +1 415 738 4059 Jason Van Zyl, creator of Maven will be there too! I hope to see a lot of you there!
[
vmassol
]
18:53, Saturday, 5 May 2007
My friend Jason Van Zyl has started Sonatype, a new company focused on Maven for the Enterprise and providing support, training and consulting for Maven. He's been joined by several talented Maven committers (John Casey, Kenney Westerhof, Andrew Williams, Eric Redmond and Eirik Bjørsnøs) which make their team one of the most knowledgable team on the Maven topic on the planet. Knowing Jason's generosity and dedication to Maven you can be sure that this is the best possible move for the Maven project and it's great for the Maven ecosystem at large. As a proof, Sonatype has already delivered a great (and free) Maven book. I'm also happy to report that XWiki (the company and open source project I work for) is a Sonatype Partner. I'd love to see Maven products built on top of XWiki. I think XWiki's flexibility makes it an ideal platform for building those products and at the same time empowering them with collaborative features. In the near future I'll work closely with Jason and his team to integrate XWiki and Maven and hopefully we'll see some cool things out of this. Well done guys and long live Sonatype!
[
vmassol
]
10:05, Thursday, 27 April 2006
Our Maven2 is book is officially out. Here's the marketing pitch:
I hope this book will help boost Maven2's adoption.
[
vmassol
]
12:09, Thursday, 16 February 2006
I've been asking myself the following 2 questions for about 5 years now: am I good at managing an open source project and making it successful? How can I improve? I guess it depends on the definiton of "successful". My definition of a successful OSS project is:
If we go by point 1, I think that the main 2 projects I have started (Cactus and Cargo) are not doing too bad. Cargo is still new but it seems to be on track and its user base is growing very quickly. However on points 2 and 3, I'm not so sure I'm doing well. Mind you, Cargo has quite a lot of committers (growing every week!) and they're all doing a great job. I'm just thinking about the level beyond (look at the activity on the Maven project, Spring or other projects as an example of what I mean). Cactus is a bit different as it's now a mature project, so let's focus on Cargo. Of course it could be that these project domains are narrow and thus do not interest lots of developers. This is probably true but I don't think this is the only issue. I have the feeling that some of the reasons could be:
On the other hand, I feel that not doing any one of these points will hamper Cargo's user adoption... Or maybe I'm completely wrong on all points above and this is just me fantasizing! I'm really interested to know what you think and if this is something other OSS committers/contributors have noticed too. I've given the example of Cargo but really this is a general discussion on how to best manage an OSS project.
[
vmassol
]
21:05, Tuesday, 10 January 2006
Cargo is a container-manipulation library that allows configuring, starting and stopping containers. It also deploys modules to those containers. Version 0.7 has been released last week along with version 0.1 of a Maven2 plugin. The nice thing about Cargo is that it provides a uniform API across all containers and it has several end user APIs: a Java API, Ant tasks, a Maven 1 plugin, a Maven 2 plugin, a Netbeans plugin, an IntelliJ IDEA plugin, etc. You can use any of those extensions with all the supported containers. I'd like to quickly demonstrate how to use the new Maven 2 plugin on 2 use cases (more samples can be found here):
Deploying a WAR and starting Tomcat 5.xCreate a Maven 2 project and put the following configuration in your
To generate your WAR, start Tomcat and deploy the WAR in it, simply type:
Orion 2.0.5 will then be automatically downloaded and installed the first time you run your build. Inplace webapp development with JettyLet's imagine you're using the same project as above but this time you'd like to start Jetty and make it point to your webapp directory (i.e.
Then open a shell prompt and type If you're interesting in learning more, check the documentation and join us on the Cargo mailing lists.
[
vmassol
]
16:25, Wednesday, 28 September 2005
ResultsThe Google Summer of Code is now over. I've had the pleasure of being a mentor for Codehaus. More specifically I've mentored the following projects:
Learnings
Parting wordsThe SOC was good. It has boosted the open source community quite remarkably (even though it has also probably put some strain on it...). Out of all the students I've mentored I think 2 or 3 of them (out of 6 initially) will continue to work on the open source project they've participated to. That's a 30%-50% ratio and I'm very happy about it. Thanks Google for making this happen!
[
vmassol
]
08:56, Thursday, 15 September 2005
Javazone 2005 was good. It's getting more international every year but there's still a lot of Norwegian speaking there, which was a bit difficult to understand from time to time... Oh well, I had Jerome Lacoste translating for me whenever needed. Thanks Jerome. It also gave me the opportunity to learn "Hey alle semmon" ("hi everybody") and Jeff Genenger woke up his audience on thursday morning with a "I'm a loud-mouthed american, don't listen to me I don't know anything" in Norwegian! :-) I have presented From Maven 1 to Maven 2 which went well. There were about 60-70 people in the room, all Maven 1 users (to be expected for such a talk) and a few (about 5) Maven 2 users. Update 2005-09-28: Kito has blogged about JavaZone 2005 and has uploaded some nice pictures.
[
vmassol
]
10:48, Sunday, 1 May 2005
Cargo 0.5 has been released yesterday. One novelty is the Maven plugin. You can now start and stop a variety of containers using this plugin. This should come very handy for all of you wishing to perform integration or functional testing with Maven. The containers that are currently supported are: Resin 2.x, Resin 3.x, Tomcat 3.x, Tomcat 4.x, Tomcat 5.x, Orion 1.x, Orion 2.x, Jetty 4.x, jo! 1.x, OC4J 9.x and WebLogic 8.x. For example, imagine that you have some integration tests in your project's test directory and that you need, say, Tomcat 5.0.30 to run
them. You'll need to start the Tomcat container before the
You'll need to provide Cargo configuration data in your
Alternatively you can ask the plugin to automatically download and install Tomcat for you (it'll download it only once), by specifying:
As you may have noticed, in our example above we've reused the existing Maven Test plugin which looks for test sources in If there's a strong demand, we may consider adding a Please note that there's also an alternative which is to start the Container directly from your unit tests. If you find Cargo interesting, please come and help us on the Cargo mailing lists. There are lots of different ways you can help: trying Cargo on containers, implementing new containers (for example, JBoss, JOnas, WebSphere, etc), discussing new ideas, letting us know what new features you'd love to see, etc.
[
vmassol
]
10:36, Sunday, 1 May 2005
The Cargo team is pleased to announce the release of Cargo 0.5. The major changes from Cargo 0.4 to 0.5 are:
Detailed release notes are available on the download page. Here's an example of how to use Cargo from Java:
Here's an example using the provided Ant tasks:
And here's an example using the Maven plugin:
Enjoy!
[
vmassol
]
14:23, Sunday, 6 February 2005
At last, I was able to get the svn+ssh protocol to work from both IntelliJ IDEA (Irida #3200) and Eclipse (3.1M4), using a private key! Here's how to do it:
For IntelliJ IDEA
For Eclipse
Enjoy! That should please all the Codehaus hausmates... :-)
[
vmassol
]
20:56, Saturday, 24 July 2004
11/08/2004 update: The project is about to start on Codehaus and is now named Cargo. Note: There is also an article and a discussion thread on TheServerSide about this inititative Here's a new idea for an open source project I'd like to start. It could be called CCI (Container Client Interface). It would aim at providing a simple Java API to start/stop/configure/deploy Java containers (In the first version the goal would be to support J2EE containers). This Java API could then be used by lots of other projects (Ant tasks, Maven plugins, IDE plugins, Cactus, etc). The inspiration comes from the Cactus project, which already provides an extensive API to perform such tasks. The goal is to refactor the Cactus Ant API, remove anything related to Cactus and make it a standalone project called CCI Here's an integraton test showing what the API could look like:
As you can see there are several main Objects/Interfaces:
Note that the ping URLs are the URLs that will be pinged by the ContainerRunner object to ensure the container has finished
starting. Thus, after A shorthand code version to start Resin 3.0.8 could look like:
This is just a taste of what he CCI API could look like. Let me know what you think!
[
vmassol
]
20:10, Sunday, 11 July 2004
I've just released a Maven plugin for Abbot. Abbot is a Swing unit testing framework. The Maven Abbot plugin supports the following:
You can download the Maven Abbot plugin here. Please note that this plugin was written jointly with Christian Blavier whom I thank very much for his help!
[
vmassol
]
19:46, Sunday, 11 July 2004
Here is a list of OSS stuff I'm considering doing in some short future (note that I'm not planning to do all of them ;-))
In addition to this, I plan to continue fixing Cactus v1 bugs (albeit slowly...) and continue fixing bugs and adding enhancements to the Maven plugins I have started (changes, clover, abbot, etc). If you're working on the same topics or if you're interested in contributing, please let me know!
[
vmassol
]
10:55, Friday, 9 April 2004
After discussing with the StatCvs-XML team, we have decided that it would be best that they host the Maven StatCvs plugin on their own site. This will make it easier for them to improve it and keep it in sync with StatCvs-XML. This is possible thanks to the
[
vmassol
]
08:56, Monday, 5 April 2004
TheCortex (creator of Clover) has announced a new product called FishEye. It's an SCM mining tool. They have accepted to run it on Cactus. It's very nice. The things I like particularly:
[
vmassol
]
18:39, Wednesday, 17 March 2004
I've just released a Maven plugin for Jetty. The Maven Jetty plugin allows easy deployment and execution of Jetty. Features in this version includes:
Note that this plugin has been tested with Maven 1.0-rc2. Using it with another version of Maven is at your own risks! :-) You can download the Jetty Maven plugin here.
[
vmassol
]
22:30, Monday, 1 March 2004
After several months of no activity, the PatternTesting project is getting alive again! Matt Smith is now taking the lead. On my side, I have not forgotten the idea of doing Pattern Tests using AOP. I am actually continuing this exploration with Cactus2, in a slightly different way. In the meantime, please welcome Matt and let's wish him the best of success with the PatternTesting project!
[
vmassol
]
16:11, Sunday, 21 December 2003
Cactus v2 architecture
RationaleWhy a new architecture? Several reasons:
Architecture choicesThese are the high-level architecture choices on which Cactus v2 will be built:
High level architectureThe Cactus system is composed of 3 parts (see figure 2):
Cactus test case exampleHere is an example of a typical Cactus test case using AspectWerkz 0.9. Please note that this example is a work in progress and is non-functional at this stage. We're also working towards simplifying the syntax for test case writers: We would like to be able to write the following (not yet supported by AspectWerkz but we've had commitment from the AW team that they will make modifications to support it! :-)). The difference with the previous sample is the removal of the inner aspect class + the typed poincut interception. Detailed designThe detailed design of Cactus v2 is shown in figure 5 below.
It works as follows:
Some additional comments/ideas:
ChallengesThe following challenges await us:
Please challenge us to improve our design! :-) Disclaimer: Please also note that, at this point in time, this architecture and ideas are only mine and do not represent (yet!) the official view of the Cactus project. I am proposing it to the Cactus project members.
[
vmassol
]
12:29, Monday, 1 December 2003
Currently the Cactus project is a framework to help unit test J2EE components (and mostly Servlet/JSP/Taglib). I'd like to expand its goal and make it a framework for building in-container testing solutions. Cactus would still offer an implementation for J2EE component testing but it will also open up an API for plugging other implementations. Some ideas are shown on the diagram below.
For this to happen, the core helper classes will have to be separated from the HTTP protocol implementation and the existing Cactus TestCases. 2 SPIs will appear:
Moreover, the Cactus integration modules (aka front-ends) will also need to provide clearly-defined extension points to help automate the whole process of starting the container, deploying components, running the tests and shutting down the container. I'm currently working on the Cactus code to make the 2 SPIs surface. The first test drive of these new SPIs will be to implement support for EJB TestCases.
[
vmassol
]
19:05, Sunday, 21 September 2003
I have just released version 2.0 of the StatCvs plugin for Maven. The Maven StatCvs plugin is a plugin for StatCvs-XML that generates CVS statistic reports. Changes in this version:
You can download the StatCvs Maven 2.0 plugin here.
[
vmassol
]
16:09, Friday, 30 May 2003
I have just rewritten the Checkstyle plugin for Maven (version is now 2.0) so that it supports the excellent Checkstyle 3.1 tool. The new plugin is currently located in Maven CVS and you need to build Maven from its sources to use it. In other words, it has not been released yet. Note this new checkstyle plugin for Maven has only been tested with Maven 1.0 beta 10 and is not expected to work with other versions (but it may...)
[
vmassol
]
22:31, Friday, 23 May 2003
I have just committed a full rewrite of the Maven Cactus Plugin. As it is a rewrite, I have increased the version to 3.0 (it was 2.1-SNAPSHOT before). Note that the 3.0 version is still in development and is not released yet. I'm waiting for more feedback before releasing it. The new version of the Cactus plugin now relies on the newest Cactus/Ant integration which has completely changed since version 2.0 of the Maven plugin. Thanks to the new Cactus/Ant, some features have also been added. The plugin now uses the new Note that version 2.1-SNAPSHOT will never get released as 1/ a bug had been introduced and 2/ the direction is to use the Cactus/Ant integration which has been changed in Cactus CVS. Please give it a try and report any issue on the Maven mailing lists/JIRA. You can find a read-made test application in here if you wish.
[
vmassol
]
09:30, Saturday, 17 May 2003
NMock v1.0 has been released yesterday by Joe Walnes. It is a dynamic mock object library for .NET. On a related note, I've released version 0.09 of the MockObjects.com framework yesterday too. This release contains several improvements in provided Mock Objects but little modifications to the core, apart from the introduction of a new library: the Dynamic Mock API (or DynaMock for short). It is based on dynamic proxies (same as EasyMock but I think with a more powerful and cleaner syntax), which means the mocks are created at runtime. Warning: This first cut of the DynaMock API is not stable at all. Actually, a big refactoring has happened in the MockObjects CVS and a better API has been developed (very similar but which fixes the quircks from the first cut). Thus, if you use this DynaMok API, be prepared to refactor your applications when version 0.10 is out! Here is a short example using DynaMock 0.09: [...]
import com.mockobjects.constraint.Constraint;
import com.mockobjects.dynamic.C;
import com.mockobjects.dynamic.Mock;
public class TestAdminServlet extends TestCase
{
private Mock mockRequest;
private Mock mockResponse;
private HttpServletRequest request;
private HttpServletResponse response;
private AdminServlet servlet;
public void setUp()
{
servlet = new AdminServlet();
mockRequest = new Mock(HttpServletRequest.class);
request = (HttpServletRequest) mockRequest.proxy();
mockResponse = new Mock(HttpServletResponse.class);
response = (HttpServletResponse) mockResponse.proxy();
}
public void tearDown()
{
mockRequest.verify();
mockResponse.verify();
}
public void testDoGet() throws Exception
{
mockRequest.expectAndReturn("getParameter", "command",
"SELECT...");
// Verify that the result of executing the command has been
// stored in the HTTP request as an attribute that will be
// passed to the JSP page.
mockRequest.expect("setAttribute", C.args(C.eq("result"),
C.isA(Collection.class)));
servlet.doGet(request, response);
}
}
Update: Thanks to Chris Lenz, fixed the testDoGet() method and removed not needed asserts
[
vmassol
]
13:06, Thursday, 15 May 2003
I've just added a RSS feed for Jakarta Cactus news. It is available at http://jakarta.apache.org/cactus/news.rdf. The update process is quite nice too: we change the RDF file in CVS. Then every night Gump builds the Cactus project documentation (we transform the RDF file to HTML using XSLT in this process) and if the build is successful, upload it to http://jakarta.apache.org/cactus. Thus we get automated updates from CVS to your RSS feed reader! |