Over a million developers have joined DZone.

Semiconductor Defect Tracking on the NetBeans Platform

DZone 's Guide to

Semiconductor Defect Tracking on the NetBeans Platform

· Java Zone ·
Free Resource

My name is Tomáš Hubálek and I'm the architect of the CADET (Corrective Actions and Defect Events Tracking) application at ON Semiconductor (Nasdaq: ONNN). CADET is created by a group of software developers working on applications supporting ON Semiconductor production, located in Rožnov pod Radhoštěm, in the Czech Republic.

The CADET application is an internal application created to collect defect information and plan corrective actions relating to ON Semiconductor production.

NetBeans Platform

The application is built on the NetBeans Platform and is deployed via Java Web Start on ON Semiconductor's intranet  servers in the US, Europe, and Asia.

How we found out about the NetBeans Platform? Well, first we selected the Matisse GUI Builder and this led us to use NetBeans as an IDE. And, once we had Matisse, we started looking for a Swing-based rich-client platform.

Our project started in 2007 and in those days there wasn't much choice in this area. But, three years of development experiences later, I don't think we made a bad decision. ;-)



The size of the source base is ~ 150k lines of Java code in about 35 Maven modules, which equates to about 5 developer years of work. It consists of the following layers (from  bottom to top):


  • Oracle DB - database
  • Hibernate - ORM framework
  • Spring - business logic layer
  • JAX-WS - transport layer


  • JAX-WS - WS client
  • Swing Based Forms - each module consists of JPanels that can be either pasted into JFrame or into a NetBeans TopComponent
  • NetBeans Platform - used mainly as window manager, for inter-module communication, and module isolation


  • NetBeans 6.8 as IDE
  • Hudson as CI server
  • Mercurial as SCM
  • Maven for building and dependencies management


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}