Google Summer of Code 2011
- 1 Introduction
- 2 Ideas List
- 2.1 Common to all ideas
- 2.2 Create a maven archetype for creating GWT based XML configuration management and implement three of them
- 2.3 Help Us Clean Up the WebUI
- 2.4 Finish converting OpenNMS to use Hibernate
- 2.5 Refactor opennms-services
- 2.6 Manage OpenNMS Service Daemons: 1
- 2.7 Manage OpenNMS Services Daemons: 2
- 2.8 Android Based Client
- 3 Proposals
What Is OpenNMS
OpenNMS is an enterprise grade network management framework developed under the open source model. It consists of a community supported open-source project sponsored by a commercial services, training and support organization, The OpenNMS Group, Inc.
The goal is for OpenNMS to be a truly distributed, scalable platform supporting all aspects of the FCAPS network management model as well as a framework for implementation of NGOSS components making OpenNMS a platform available to both open source and commercial applications.
All code associated with the project is available under the GNU General Public License (GPL).
General details on SoC are available at the the SoC FAQ.
If you want to contact the folks involved in mentoring GSoC 2011, you can get ahold of us in a number of ways:
- IRC (the #opennms-gsoc IRC channel)
- Mentors: sfb, _indigo, p-brane, joed, djgregor
- Organization admins: sfb, mhuot
Note: Be sure to subscribe to the mailing list first, or your post will be rejected as spam.
Common to all ideas
- git (or another DVCS)
- Eclipse (or another IDE)
Create a maven archetype for creating GWT based XML configuration management and implement three of them
The archetype should create a basic process for how to manage the XML for different parts of the applications. It should provide an easy mechanism for the different type of XML files used for configuration.
- Maven 2
Help Us Clean Up the WebUI
The OpenNMS webUI is based on Java Server Pages and underlying Java servlets running on Jetty. While functional, it could use a lot of cleanup. If you really would like to use GSoC to make your mark on a project, this would be a place to start.
This is not a rewrite, but instead we need someone to take a hard look at our current user interface and add some usability improvements, such as:
- Insure tables have alternating (say white and grey) bars to make large tables easy to read.
- General stylesheet improvements to make the webUI look cleaner, for example the Dashboard or when you look at an existing user's information.
- Using AJAX or some other technology to help with pages that auto-refresh, like the alarms page, so that the whole page doesn't reload.
- Creating "wizards" so that tasks like creating destination paths or notifications are easier to manage (i.e. when editing an existing notification, be able to jump to the last page to edit the text without having to go through the intermediate pages)
- Rewrite the process for creating KSC reports.
Easy to impossible
Finish converting OpenNMS to use Hibernate
Many years ago the OpenNMS project started a migration to using Hibernate as an ORM for the application. The process of converting the legacy code to Hibernate is not complete (although all new code has been written to use DAOs). This project would be to continue the work to get OpenNMS to use Hibernate wherever possible. This will be divided into to parts. One is integration into the webui and the other is into the daemons(the rest of OpenNMS). The two students with these projects will have to coordinate if any dao's are needed.
OpenNMS used to have many of its components in one single project, opennms-services. In order to complete the move to Spring, some of the utility classes need to be moved out to corelib. Identifying, creating unit tests and moving these classes is key to this.
- Common object-oriented patterns
Manage OpenNMS Service Daemons: 1
Configure and control the Init, Start, Pause, Stop behavior of OpenNMS Daemons via WebUI. Also create flags in service configuration for auto initiation and startup of each daemon. Create a configuration meta-type for configuration behavior: SLA daemons, Performance Management Daemons, Alarm Management Daemons, Web-UI services.
Manage OpenNMS Services Daemons: 2
Create informational attributes that can be exposed via JMX for each of the OpenNMS service daemons. Information about schedules, queues, and statistical information. This will be helpful for OpenNMS admins to be able to inspect the daemons to learn what is scheduled and how well the schedule is performing.
Android Based Client
Create an OpenNMS Client application on the Android platform. Use of and possible extensions to the ReST API may be necessary.
Please link to the wiki page with your proposal below.