Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

@since Wednesday, November 1, 2017

Simplify your code review process

@throws 0 exception(s)
Managing a repository can require tedious administrative work, and as pull requests increase, it becomes even more complex. Today’s review flow lacks important visible information that leads to serious management issues.

Rivi is an innovative tool that automates repository management. 

I've recently launched a hosted Rivi service (at http://rivi-cm.org ). 
Simply by adding a rules file (YAML) to your repositories and you can take advantage of the service.



@since Thursday, March 31, 2011

Event Driven Programming With Event Roaster

@throws 0 exception(s)
Often, in a multi layered, structured application it is sometimes required to notify several services on a system state change. Such change could be of some user interaction with our application, exception thrown from a specific layer or new client registered with our publishing service. These operations can be handled in a variety of paradigms, but for today's lesson: Event Driven Programming.


Recently I faced a problem with our ever growing application of knowing of a network topology change and notify several modules. The initial approach we took was to send important events to a centralize service, which knows almost the entire application structure, that can modify modules state based on the called method. Over time this service got larger and larger, complexity level rose and the maintainability efforts went to the roof. Searching for a suitable solution I broke the behavior to small strategy methods to which I could call from the original method. These strategies are actually event handlers for the state change. Looking around for event handling framework that will suite my needs I came across GWT's HandlerManager, Java's beans implementation, EventBus, ELF and even SpringSource event multi caster. Most, if not all of the above frameworks follow the same guidelines and principals with their provided solution, some are a lot easier to configure than other but what most of them lack is the (poor) support of configuration by annotations.

That's where my github.com account went in handy - I decided to write an event handling framework of my own. Named the project - Event Roaster. The framework is fully annotation configured and if you're working with IoC container like Spring it even provides you with EventServiceFactoryBean. So, here's what you need  to know before you can start working with it:



The snippet above demonstrates how simple the configuration really is and layout for event publishing and handling. Objects you wish to pass around as events are annotated with @Event (no need to implement anything, any object will do) and handler methods are annotated with @EventHandler, each method declaring which event it handles. Handlers can set their priority when called and (future versions will include the ability to) block further event processing. Publishing (a.k.a Firing) an event is as simple as calling the fire event in a matching event service. The event broadcasting is done asynchronous using a multi-threaded executor service. That's all there is to it, implement your handling methods and you're good to go.

Event Roaster is an open source project and as such it requires some attention and assistance by its users and contributers. Future versions are waiting release to Maven's Central repository using Sonatype OSS repository (project can't go to Central unless one of its dependency will move to Central as well). Feedback, feature requests and any general assistance will be appreciated. 

@since Wednesday, November 10, 2010

UML Tools

@throws 0 exception(s)
I’ve recently searched for an open source, freeware software for easy creation of UML diagrams. My objectives were to find a complete solution for creating classuse case and sequence diagrams.
The following summarize, for my opinion, the best value for the above specifications.

Violet UML Editor

  • Download from: http://violet.sourceforge.net
  • Run with: java -jar [name_of_downloaded_violet_jar]
  • Can also be run as an Eclipse plug-in
  • Very easy and simple software for creating diagrams

StarUML

  • Download from: http://staruml.sourceforge.net
  • Robust software with every type of diagram in software engineering field
  • Can generate class diagrams from existing code (reverse engineering)
  • Can generate initial code from class diagram

ArgoUML

  • Download from: http://argouml.tigris.org
  • Can also be run as an online tool directly from the site
  • Can generate initial code from class diagram
  • Export to PNG

Online tools

gliffy.com

  • http://www.gliffy.com
  • Requires registration
  • Diagrams are public after 30 days trial
  • Has number of basic templates to start with
  • Export to PNG format

lucidchart.com