tag:blogger.com,1999:blog-25807416760031596452023-06-20T21:01:28.337-07:00Lightwolf BlogThe library that allows fork/merge (among other things) in Java.Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-2580741676003159645.post-9667905255862126022010-10-10T11:07:00.000-07:002010-10-10T11:13:59.725-07:00This 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.<div><br /></div><div>But the project is open-source and anyone can work on it if he finds interesting.</div><div><br /></div><div>Well, farewell!</div>Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com40tag:blogger.com,1999:blog-2580741676003159645.post-41963132508900257672009-01-11T11:52:00.000-08:002009-01-11T12:21:00.559-08:00Happy new year!!! Oh, and version 0.8.9 is out<div><a href="https://sourceforge.net/project/showfiles.php?group_id=241050&package_id=293266&release_id=653104">Version 0.8.9</a> was released. Now a <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Process.html">Process</a> 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, <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Process.html#passivate()">passivate()</a>, <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Process.html#activate()">activate()</a>, <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Flow.html#PASSIVE">Flow.PASSIVE</a>.</div><div><br /></div><div>Special thanks to <a href="http://www.blogger.com/profile/10722577421775661107">Carlos Grahl</a> 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: <a href="http://soasoabem.blogspot.com/">http://soasoabem.blogspot.com/</a>.</div><div><br /></div><div>Happy new year to everybody! And may this crisis and war end quickly.</div>Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com1tag:blogger.com,1999:blog-2580741676003159645.post-61846809043142633772008-12-14T07:07:00.000-08:002008-12-14T11:24:28.122-08:00Version 0.8.8 released, now close to BetaThe <a href="http://en.wikipedia.org/wiki/2008_Santa_Catarina_floods">floods</a> that hit my homecity and end-of-year pressures caused a small slowdown in this project, but I had time to release <a href="https://sourceforge.net/project/showfiles.php?group_id=241050&package_id=293266&release_id=647053">version 0.8.8</a>. Eclipse users just have to visit the <a href="http://lightwolf.sourceforge.net/updates/">update site</a>.<br /><br /><br />Among many bugfixes, most of utilities in the class <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Process.html">Process</a> are now documented and working. I think it's fairly possible to develop a real <a href="http://en.wikipedia.org/wiki/Workflow_application">workflow</a> using Lightwolf. Worth of mention is the new <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Process.html#call(java.lang.Object,%20java.lang.Object)">call/serve</a> scheme.<br /><br />The Beta version requires some deployment suport and documentation enhancements. I hope I can get it done by the end of the year.Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com0tag:blogger.com,1999:blog-2580741676003159645.post-43348060260640995782008-11-12T19:15:00.000-08:002008-11-12T19:36:43.035-08:00Light Wolf with NIO: non-blocking as easy as blockingJust released version 0.8.7 of Light Wolf. You can download it from <a href="https://sourceforge.net/projects/lightwolf/">here</a>, but as usual it's easier to use the Eclipse <a href="http://lightwolf.sourceforge.net/updates/">plugin</a>.<br /><br />JavaDoc has been improved in a number of ways. Now there are details about <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Flow.html#suspend(java.lang.Object)">suspend</a>, <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Flow.html#resume(java.lang.Object)">resume</a> and the handling of <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/FlowSignal.html">signals</a>.<br /><br />A new utility was created: the <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/IOActivator.html">IOActivator</a>. This class is the mix of flows with SelectableChannels, allowing one to use non-blocking and thread pools in a way that is <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/IOActivator.html#read(java.nio.channels.ReadableByteChannel,">very similar</a> to blocking-mode. It also allows implementation of a multithreaded Java server using a <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/IOActivator.html#acceptMany(java.nio.channels.ServerSocketChannel)">single Java method</a>!!!<br /><br />This release also have some bug-fixes and improved error detection.Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com1tag:blogger.com,1999:blog-2580741676003159645.post-10901867703201965342008-10-27T02:13:00.000-07:002008-10-27T03:12:39.644-07:00Website, Parallel Arrays and AntAfter a while, we get some nice additions:<br /><ul><li>Light Wolf now have a <a href="http://lightwolf.sourceforge.net/">real website</a>, with a reasonable <a href="http://lightwolf.sourceforge.net/gettingstarted.html">getting started</a> session.</li><li>New utilities were created for <a href="http://lightwolf.sourceforge.net/index.html#aParallel_Iterator">parallel processing</a>: ParallelArray and ParallelIterator.</li><li>Ant support has been improved. You can download the <a href="http://downloads.sourceforge.net/lightwolf/lightwolf-0.8.5.zip">binary form</a> and use Ant. Please check <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/tools/LightWolfAntTask.html">Ant task Javadoc</a> for usage examples.</li><li>Light Wolf has moved from Pre-Alpha to Alpha. The next step is to stabilize the API so it can go Beta.</li></ul>Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com0tag:blogger.com,1999:blog-2580741676003159645.post-67861631510335747612008-10-10T20:27:00.000-07:002008-10-10T21:14:08.601-07:00Light 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 <a href="https://sourceforge.net/project/platformdownload.php?group_id=241050">here</a> (please follow download instructions), or you can use this update site:<br /><br /><blockquote><blockquote></blockquote><blockquote></blockquote><span style="font-family:courier new;"><blockquote><a href="http://lightwolf.sourceforge.net/updates/"><span style="font-family:courier new;"></span></a><a href="http://lightwolf.sourceforge.net/updates/"></blockquote><span style="font-size:85%;">http://lightwolf.sourceforge.net/updates/</span></span></a></blockquote>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 <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/FlowMethod.html">@FlowMethod</a> annotation will be automatically enhanced during builds, either full or incremental.<br /><br />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.<br /><br />Go ahead an try the following snipet:<br /><pre><span style="font-size:85%;">import org.lightwolf.Flow;<br />import org.lightwolf.FlowMethod;<br />public class Test {<br /> @FlowMethod<br /> public static void main(String[] args) throws Throwable {<br /> System.out.println("Before fork.");<br /> int b = Flow.fork(4);<br /> System.out.printf("We are in the branch %d.\n", b);<br /> Flow.merge();<br /> System.out.println("After merge.");<br /> }<br />}</span></pre>If your environment was correctly configured, it should print something like this:<br /><br /><span style="font-size:85%;"><span style="font-family:courier new;">Before fork.<br />We are in the branch 0.<br />We are in the branch 2.<br />We are in the branch 1.<br />We are in the branch 3.<br />We are in the branch 4.<br />After merge.</span><br /></span><br /></span></span>The nexts steps will be improvements on JavaDoc and some new APIs. Please feel free to send me feedback.<br /><br /><br /></span>Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com0tag:blogger.com,1999:blog-2580741676003159645.post-27969560081381680092008-10-06T04:19:00.000-07:002008-10-06T04:32:09.525-07:00Good 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 <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/FlowMethod.html">flow methods</a>, and thus makes development very easy and natural.<br /><br />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.<br /><br />See you!Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com0tag:blogger.com,1999:blog-2580741676003159645.post-3704571195190774542008-10-03T18:29:00.000-07:002008-10-03T19:38:32.641-07:00Greetings!Light Wolf is a small library for Java SE applications, that allows <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Flow.html#fork(int)">fork/merge</a>, signals and continuations, among <a href="http://lightwolf.sourceforge.net/javadoc/org/lightwolf/Flow.html#returnAndContinue(int)">other things</a>. Because it's in early stage of development, people must download the <a href="http://downloads.sourceforge.net/lightwolf/lightwolf_0_7_src.zip?modtime=1222993674&big_mirror=0&filesize=1842124">sources</a> (an Eclipse project) to use it.<br /><br />As expert people expect, this library uses bytecode transformation. This means that after you compile your program with your favorite Java compiler, you must run an Ant task to enhance your class files before it can run and invoke fork(), split() and other utilities.<br /><br />To make this library more usable, someone (probably myself) needs to build an IDE integration, so when you build your project, it's ready to run or debug. As soon as such integration gets ready, I will release a version in binary format.Fernando Colombohttp://www.blogger.com/profile/16785203295626739315noreply@blogger.com0