Maintenance Manager MASH Consulting Web Site SourceForge Logo

Maintenance Manager is a Help Desk Application written in Java that allows tracking of "trouble" tickets and their resolution. Maintenance Manager is part of SourceForge.net and can be found hosted at http://sourceforge.net/projects/maintmgr/. A sub-project of Maintenance Manager is the MASH Consulting Library which can be downloaded from the same place. More information on MCLib is here. Other free software written using Java can be found at http://www.mashconsulting.com/javasw/. Another project that I've worked on is software for controlling an Opto22 Ethernet Brain. This functionality is also in the MCLib library and an implementation of it is available at http://sourceforge.net/projects/mwctrl/.

Current Status - June 4th, 2003

  1. Maintenance Manager 2.06 is now released.
  2. Minor fixes to print and lock file libraries in MCLib to fix printing on Mac OSX.

Current Status - April 9th, 2003

  1. Maintenance Manager 2.05 is now released.
  2. Changed how users are created when no security is setup in Maintenance Manager. With CPU security, a database is kept allowing differing access as required. With no security, users are also automatically created, but everyone gets all access.
  3. Added a simple data entry screen option for Maintenance Manager. It is not setup by default and must be turned on in the main setup screen. (Select the "File" pull-down menu and then select "MM Settings" to get to where you can turn on this option.) For Simple data entry you can select the default location for records entered or you can leave it at the default of None, which will force whoever works on the resolution data entry screen to pick the location at that time.
  4. A Macintosh OSX version is now available that will not kill the OS. I found and fixed a bug in the MCLib library that killed the /var directory structure which keeps the OS from booting up afterwards.
  5. The MultipleUI library in MCLib handles how Apple changed the Aqua Look and Feel libraries in the Java 1.3 that came with the initial Mac OSX and the Java 1.4 that ships with the current Mac OSX offerings and updates. If running the Macintosh installer the default look and feel is Apple's native Aqua which is labeled "Mac OS X".
  6. The MultipleUI library in MCLib handles how Apple changed the interface to put the Maintenance Manager menus on the Mac OSX Menu Bar and handles the differences in the libraries in the Java 1.3 that came with the initial Mac OSX and the Java 1.4 that ships with the current Mac OSX offerings and updates. One caveat of using the pull-down menu to change the look and feel is that if you switch to the Mac OSX look and feel, switch to another look and feel, and then try switching back to the Mac OSX look and feel, the menu bar will completely disappear and not be available until you restart the application.
  7. Added additional steps that need to be followed if using the new MySQL 4.0 to get it up and running. See notes below.

Current Status - January 24th, 2003

  1. Maintenance Manager 2.01 is now released.
  2. I completely re-wrote the SQL report writer. I broke it up into smaller pieces and added a few features that should get better results. Part of the is a requirement that the description data needs to be all in upper case. There is a utiltity under the Help menu that will convert the data automatically

Previous Status - December 24th, 2002

  1. Maintenance Manager 2.0 is now released.
  2. I moved the Splash Screen functionality into my MCLib.jar library where I am currently using it on multiple projects.
  3. I added lock file functionality to MCLib.jar and implemented it in Maintenance Manager so that only one copy can run at a given time.
  4. I did more work on getting Maintenance Manager to work well with Mac OS/X. I got my own Mac to work with for more than 5 minutes. I found that the problem the first Mac I had tested hada beta version of Java 1.4 on it. With a fresh install of OS/X 10.2 using the default Java 1.3.1 I found that Maintenance Manager works great. I even added native Aqua support when running under OS/X with the name "Mac OS X." (For some odd reason it looks a lot like the "Aqua" Look and Feel that comes with L2FProd.com's sin libraries.) The only thing I haven't figured out yet is how to create a shortcut in the Mac OS/X for a Java application. (It's on my todo list.)
  5. I added a section for my libraries (MCLib.jar). I'm the kind of programmer that only likes to do something once, so when I write something I like to put them in a library that I can use over and over. My libraries can now be downloaded separately with documentation. Cool stuff that I wrote for other programs and Maintenance Manager are now available. MCLib.jar includes methods for the following areas:
    1. SMTP e-mail.
    2. A nice FIFO library stack.
    3. Modbus support for Opto22.com's equipment using the wimpi.net libraries (see http://sourceforge.net/projects/jamod/).
    4. Java printing libraries. I created my own text-only markup language for creating reports and printer outputs without having to get into nitty gritty details every time I went to print something. (As a side note I found that in using IBM's Java on Linux I can print directly without having to go through Ghostscript.)
    5. Serial connections. I found that IBM's serial libraries work the best. Included in this library is how I made IBM's java libraries (which look a lot like Sun's earlier version) work.
    6. SQL JDBC maintenance. Here is how to read in automatically from an ini file the SQL settings for different SQL engines and a JPanel object that can be used for updating the ini file.
    7. Look & Feel implementations. Here is where I combine the standard look and feel's that come with Java such as Metal, & Motif. Also the various implementations of Java (ie. Windows & Mac OS/X). Included is Kunststoff from www.incors.com. L2FProd.com's skins are also implemented. There is also a JMenu object that you can put in your program to bring up a list of what is available.
    8. Splash Screen. I created a generic Splash Screen that can either be timed or set manually as certain things happen with an application. An image can be inserted or even a JPanel object with whatever code you want can be inserted.
    9. Lockfiles. A lockfile can be created to keep multiple instances of a program running at the same time. On unix machines, the lockfile is created in the /var/lock/mclib directory. If the user doesn't have enough rights the lockfile is created in the current directory. Under Windows the mclib directory is created under the temp directory and the lockfile is created there.
    10. I also added miscellaneous utilities that make my life simpler. For example, instead of having to do a try/catch on each sleep command in each thread, I just call MCLibUtil.sleep(50) and the interruptedException error is caught and discarded. I also wrote a method that reads in a GIF or a JPG and doesn't return control until it is read in without going through all the extra code. There are times when the loading can be handled in the background and times when it is better to have the graphics loaded before progressing.

Previous Status - December 10th, 2002:

  1. Maintenance Manager 2.0 Release Candidate 3 is now released (after 1 month of internal testing). If you have suggestions or problems, e-mail me at mike@4utah.com.
  2. I added e-mail notification support in this release. When a problem is added into Maintenance Manager, an e-mail is automatically sent. Plain text and HTML mail are supported. One cool feature is the ability to have a wallpaper setup as the background for the e-mail notifications. Another feature is the e-mail resend capability. You can pull up a problem incident and hit the resend e-mail button to send the trouble ticket again.
  3. I did a complete re-write of the program startup and reading of the maintmgr.ini file used by Maintenance Manager. Users may need to tweak their file. Some of the settings names have changed and old ones will stay, but be ignored.
  4. I implemented an updated login manager which now allows for auto-login by the login name on the machine using the program.
  5. I've broken up the jar files instead of creating one big jar file to run everything. The necessary jar files are now: activation.jar, jcalendar.jar, kunststoff.jar, mail.jar, skinlf.jar, MySQL.jar, MCLib.jar & MaintMgr.jar
  6. I've added skins to Maintenance Manager using L2FProd.com's "Skin Look & Feel" from http://www.l2fprod.com/. If new skins come out, just download them into the LFSkin directory under Maintenance Manager and have the zip file match the following pattern of *themepack.zip. The skins that come with Maintenance Manager are: Aqua, BBJ, BeOS, MacOS, Mozilla, Whistler, & XP Luna.
  7. I've included the JavaDocs on MCLib and MaintMgr with the distribution.
  8. I'm still using Kai Toedter's JCalendar bean (www.toedter.com), and Incor's Kunststoff Look and Feel bean (www.incors.com).
  9. The current requirements for Maintenance Manager are:

Previous Status - June 14th, 2002:

  1. Maintenance Manager 2.0 Release Candidate 2 is now being tested. If you have suggestions or problems, e-mail me at mike@4utah.com.
  2. I did a complete re-write of the program startup and reading of the maintmgr.ini file used by Maintenance Manager. Users may need to tweak their file. Some of the settings names have changed and old ones will stay, but be ignored.
  3. I implemented a login manager for Maintenance Manager using the employee table to store names, passwords and roles.
  4. I changed the SQL loader in Maintenance manager to load a generic sql.ini file each time it starts up. This should allow for other SQL engines to be used as long as they are JDBC2 compliant. The default loader is for the MySQL database JDBC interface. The SQL statements used by Maintenance Manager should be generic enough that other JDBC interfaces can easily be substituted.
  5. In non-password operation or when a "Super User" is running Maintenance Manager, there is now a "Settings" option that shows up under the "File" pull-down menu to maintain the maintmgr.ini and sql.ini files while running the program.
  6. In password operation, regular users and engineers have the option to change their password while operating the program.
  7. In password operation, regular users will only see the Problem entry and Procedure entry screens.
  8. In password operation, engineers will see all the screens except user maintenance.
  9. In password operation, if a user has no password, they'll be prompted to create a password before being allowed access to the program.
  10. I have included all the files needed in one archive to be able to run the program, except setting up the MySQL database engine. I'm still using Kai Toedter's JCalendar bean (www.toedter.com), and Incor's Kunststoff Look and Feel bean (www.incors.com).

Future Projects Wish List:

  1. Create "Auto Backup/Restore" engine for the MySQL database files. The purpose being to backup the records to another machine automatically.
  2. Create a "clean-up" engine that pulls any records that are "orphaned" and deletes them. For example, an item is deleted from the database, but the serial number records and problem/resolution records are still in the database, but disconnected.
  3. Add LDAP support.

To download  Maintenance Manager, go to http://sourceforge.net/projects/maintmgr/ and select Download under Maintenance Manager.

Simple Install Instructions.

Here are some simple steps to setup Maintenance Manager on Linux.

  1. Install MySQL and create the "maintmgr" database with associated rights needed. (Use the instructions below.)
  2. Install the Sun or IBM Java VM on your machine.
  3. Download the Maintenance Manager .tgz file.
  4. Decompress mm20030409.tgz to the desired directory using whatever tools you want.
  5. Linux users will need gzip (which comes with most Linux distributions), and tar (or Sun's jar) programs.
    1. gzip -d mm20030409.tgz (will de-compress the gz file.)
    2. tar -xvf mm20030409.tar (will extract all the files you need to start the program out of the archive.)
  6. A startup script already exists for Linux named "mm" in the installed directory. Just type "./mm" in  the program directory (without the quote marks of course) to start the program.
  • Run the initial setup.
  • Here are some simple steps to setup Maintenance Manager on Mac OS X.

    1. Install MySQL and create the "maintmgr" database with associated rights needed. (Use the instructions below.)
    2. Download the Maintenance Manager mm20030409MacOSX.zip file.
    3. Double-click and extract setup if not done automatically.
    4. Double-click on setup to run the installation utility.
  • Run the initial setup.
  •  

    Here are some simple steps to setup Maintenance Manager on Windows.

    1. Install MySQL and create the "maintmgr" database with associated rights needed. (Use the instructions below.)
    2. Install the Sun or IBM Java VM on your machine.
    3. Download the Maintenance Manager .zip file.
    4. Decompress mm20030409.zip to the desired directory using whatever tools you want using WinZip or PKZip (or equivalent) to extract the zip file
    5. A startup batch file already exists for Windows named "mm.bat" in the installed directory. Just type "mm.bat" in  the program directory (without the quote marks of course) to start the program.
  • Run the initial setup.
  •  

    Initial SQL Setup for MySQL 3.xx:
    (do before trying to run Maintenance Manager)

      Setup the MySQL database
    1. Install and setup MySQL on any supported platform. I am currently using the MySQL that ships with Red Hat 7.2 on the second CD-ROM.
    2. Create the "maintmgr" database by issuing the following command at the MySQL prompt:
    mysql> CREATE DATABASE maintmgr
    The name maintmgr is case sensitive and should be all lower case.
    3. Authorize a user who will run the database by issuing the following command:
    mysql> GRANT ALL ON maintmgr.* to engtest identified by "secret"
    The above command sets up the user engtest with a password of secret as the administrator of the maintmgr database.
    4. The individual tables will be automatically created by the Maintenance Manager the first time the program is run.

     

    Initial SQL Setup for MySQL 4.xx:
    (do before trying to run Maintenance Manager)

      Setup the MySQL database
    1. Install and setup MySQL on any supported platform. I downloaded the latest MySQL from www.mysql.com to test.
    2. Get to the MySQL prompt by typing: mysql -u root
    3. Create a password for your root user by using the following commands (directly off www.mysql.com):

    update user SET Password=PASSWORD('secret') WHERE User='root';
    FLUSH PRIVILEGES.

    After successfully executing these two commands you will need to use the new password to maintain the database. The command to get to the MySQL prompt will then be:

    mysql -u root -p

    You will then be prompted for a password which if you followed the example above would be the work secret.

    4. Create the "maintmgr" database by issuing the following command at the MySQL prompt:
    mysql> CREATE DATABASE maintmgr
    The name maintmgr is case sensitive and should be all lower case.
    5. Authorize a user who will run the database by issuing the following command:
    mysql> GRANT ALL ON maintmgr.* to engtest identified by "secret"
    The above command sets up the user engtest with a password of secret as the administrator of the maintmgr database.
    6. The individual tables will be automatically created by the Maintenance Manager the first time the program is run.

     

    Manual Program Startup:

      Setup the Maintenance Manager Jar files
    1. Download the latest Maintenance Manager application archive file (Right now it is mm20021210.tgz for Linux and mm20021210.zip for Windows) from: http://sourceforge.net/projects/maintmgr/ extract the files into the directory you want to run the program from.
    2. Create a script or batch file to run the program or use the supplied script mm or batch file mm.bat.

    The command for Linux (all on one line) would be:
      java -cp :./activation.jar:./jcalendar.jar:./kunststoff.jar:
    ./mail.jar:./skinlf.jar:./MySQL.jar:./MCLib.jar:./MaintMgr.jar MaintMgr

    The command for Windows (all on one line) would be:
      javaw -cp .\activation.jar;.\jcalendar.jar;.\kunststoff.jar;
    .\mail.jar;.\skinlf.jar;.\MySQL.jar;.\MCLib.jar;.\MaintMgr.jar MaintMgr

    To debug for Windows, change the javaw to java and you will then have a console window with debug information.

     

    Running Maintenance Manager the first time:

      Run Maintenance Manager the first time:
    1. The first time Maintenance Manager runs it comes up with default settings. It may complain that the settings are not correct, and need to be changed. It should come up with a settings screen where you can change the settings needed for operation and SQL connectivity. (LDAP settings are ignored for the time being.)
    2. Run the program again and Maintenance Manager will automatically create the tables needed by the application.
    3. You are then presented with the main screen where setup can now begin to populate the tables with data such as users, equipment, etc.