1 Reply Latest reply on Jan 12, 2010 6:53 PM by Walter White

    Considering open sourcing some of my projects

    Walter White Novice

      Hi all,

      I am considering open sourcing some of my projects to get included into the seam project as modules.

      As an enterprise application software engineer, I enjoy designing and building robust software.  Some of the modules I would like to open source make that easier (in my mind) and allow better bug tracking.

      The first module I would like to add is for tracking deployments.  Every time Seam is initialized, a new deployment instance is created.  This module is dependent on building your application with maven.  It tracks all the artifacts (groupId, artifactId, version, scope, etc.) so that any exceptions can be traced back to a specific jar file, and hence an artifact.  With all of these dependencies listed together, more inferences can be made such as problems with a particular bundle or collection of jars playing nicely together.

      Ok, so after the deployment entity is populated (at application startup).  The next module is for listening for exceptions.  Once an exception is thrown, this package will listen for an exception event, create a new instance of an exception entity, populating it with the exception, handle if it is a asynchronous job, or Http Request if it is from a page interaction.  Then with the root cause of the problem, link it to the artifact (groupId, artifactId, and version) of the component where the problem originated.

      If the same exception is thrown more than once, only more references to the exception will be created to prevent duplicate bugs.  Analysis is done by the stack trace.

      More information is collected than that such as environment information to help identify which machine in a cluster the problem originated from.

      Once the exception is logged, subsequent deploys containing information about fixes will mark those exceptions as fixed in artifact version xx.yy.  When the application restarts, if that artifact is present, the exception listener will go and update the exceptions accordingly.

      This is roughly how it works, it does not yet tie into a bug tracking system, but that integration is in the works.  Also, I am working on a central bug-tracking system that listens for bug requests so if clients or instances in a cluster have a problem, these exceptions can be logged in a central place and tracked.

      Any thoughts?


        • 1. Re: Considering open sourcing some of my projects
          Walter White Novice

          One problem I am currently facing is marking a deployment shutdown.  There is currently a bug for application-scoped components with a @Destroy / @Remove method.  When the component is destroyed and I need an entityManager, there is no active event context.

          Likewise, when I try to observe the end of the application scope, I cannot, that event doesn't appear to be fired because there is no active event context.

          One other note, exceptions are linked to a particular deployment.  I can provide more information with the overall structure / data model.