Sunday, October 10, 2010

This project is paused!

Due to priority changes in my life, I had to let this project paused for undefined time. Eventually I might resume it, as long as this idea is interesting.

But the project is open-source and anyone can work on it if he finds interesting.

Well, farewell!

Sunday, January 11, 2009

Happy new year!!! Oh, and version 0.8.9 is out

Version 0.8.9 was released. Now a Process can be serialized and moved to another machine or survive a graceful reset. All process flows will be serialized together in their waiting states. If a serialized flow within a process is awaken, the process is automatically unserialized and the flow resumes transparently. For more information, please look at the following JavaDocs: Process, passivate(), activate(), Flow.PASSIVE.

Special thanks to Carlos Grahl that is using Lightwolf and thus, is helping to test. His use allowed me to anticipate this important feature. If you can read Portuguese, you can visit his blog: http://soasoabem.blogspot.com/.

Happy new year to everybody! And may this crisis and war end quickly.

Sunday, December 14, 2008

Version 0.8.8 released, now close to Beta

The floods that hit my homecity and end-of-year pressures caused a small slowdown in this project, but I had time to release version 0.8.8. Eclipse users just have to visit the update site.


Among many bugfixes, most of utilities in the class Process are now documented and working. I think it's fairly possible to develop a real workflow using Lightwolf. Worth of mention is the new call/serve scheme.

The Beta version requires some deployment suport and documentation enhancements. I hope I can get it done by the end of the year.

Wednesday, November 12, 2008

Light Wolf with NIO: non-blocking as easy as blocking

Just released version 0.8.7 of Light Wolf. You can download it from here, but as usual it's easier to use the Eclipse plugin.

JavaDoc has been improved in a number of ways. Now there are details about suspend, resume and the handling of signals.

A new utility was created: the IOActivator. This class is the mix of flows with SelectableChannels, allowing one to use non-blocking and thread pools in a way that is very similar to blocking-mode. It also allows implementation of a multithreaded Java server using a single Java method!!!

This release also have some bug-fixes and improved error detection.

Monday, October 27, 2008

Website, Parallel Arrays and Ant

After a while, we get some nice additions:
  • Light Wolf now have a real website, with a reasonable getting started session.
  • New utilities were created for parallel processing: ParallelArray and ParallelIterator.
  • Ant support has been improved. You can download the binary form and use Ant. Please check Ant task Javadoc for usage examples.
  • Light Wolf has moved from Pre-Alpha to Alpha. The next step is to stabilize the API so it can go Beta.

Friday, October 10, 2008

Light Wolf Plug-in for Eclipse!

I've just released version 0.8.2 of Light Wolf Plug-in for Eclipse. The plugin was tested on Eclipse 3.3 and 3.4. You can download it from here (please follow download instructions), or you can use this update site:

http://lightwolf.sourceforge.net/updates/
Once installed, it will add the option "Add/Remove Light Wolf Nature" to Eclipse's context menu of Java projects. When used, this option tells whether the nature was added or removed. You can check the tab "Builders" in the project properties, and notice that it adds the "Light Wolf Builder" just after the "Java Builder". This means that classes with the @FlowMethod annotation will be automatically enhanced during builds, either full or incremental.

The plugin also comes with the lightwolf.jar library, so you don't need to download it separately. The plugin automatically adds the library to the classpath when the Light Wolf Nature is set for a project, but you can add it separately by using the button "Add Library" in the build path's "Libraries" tab. There will be a library called "Light Wolf Library", which already comes with a source attachment.

Go ahead an try the following snipet:
import org.lightwolf.Flow;
import org.lightwolf.FlowMethod;
public class Test {
@FlowMethod
public static void main(String[] args) throws Throwable {
System.out.println("Before fork.");
int b = Flow.fork(4);
System.out.printf("We are in the branch %d.\n", b);
Flow.merge();
System.out.println("After merge.");
}
}
If your environment was correctly configured, it should print something like this:

Before fork.
We are in the branch 0.
We are in the branch 2.
We are in the branch 1.
We are in the branch 3.
We are in the branch 4.
After merge.


The nexts steps will be improvements on JavaDoc and some new APIs. Please feel free to send me feedback.


Monday, October 6, 2008

Good News!

I've just committed version 0.8 sources of Light Wolf Eclipse plug-in. It was simpler than I thought when I posted the previous entry. The plug-in is very simple and have no UI, but it effectively removes the need of an Ant task to instrument flow methods, and thus makes development very easy and natural.

I'm managing to publish the plug-in's update site by the end of this week. I hope everything goes fine so I can accomplish this. The current plan is to add support for Eclipse 3.3. Let me know if you need support for an oldest Eclipse version.

See you!