I would like to post this quick update on JTrac development and caution users who plan to or may have already started using this in production. Also I will summarize the new features and improvements so far. Note that quite a lot of updates have gone into version control since RC2 - and we hope to have covered the "most wanted" features.
First the good news: Noteworthy features / fixes implemented (in SVN) are as follows:
* People without accounts will be able to use JTrac in "guest mode" (read only)
* Lucene based full-text search is in place. Now you can search even the "detail" and "comment" areas (using Lucene supported query syntax and wildcards)
* Probably the most requested feature, the ability to delete custom fields. You can also delete, rename and even re-order the values within custom "drop down" fields. Impact to existing data if applicable is also handled.
* It is now possible to grant any user Admin privileges
* E-mail servers that require authentication are now supported
* You can now customize the location of "jtrac.home" by editing a properties file within the WAR.
* Refactored URLs to be more "REST"-ful
* fixed JSTL problems on "SEARCH ALL" screen that occured when using Glassfish
* Relaxed naming convention for State names a little, camel case with a dash allowed (e.g. "Work-In-Progress", "On-Hold")
Would appreciate feedback on anything major that needs to go in before a "2.0 final" release.
Now the bad news. There have been three releases so far (EA1, RC1 and RC2) and now for the first time, the database schema has changed a little. I'll try and outline the reasons below. I sincerely invite feedback and suggestions, especially from those who have experience with using Hibernate. I have not yet thought in detail about a migration task that runs on startup but I know this is essential for changes that may happen (but will be avoided as far as possible) from the 2.0 milestone onward. Obviously, I am trying to finalize the schema to be as future-proof as possible before 2.0 final.
Details:
1) Users have reported problems with integer types being used for primary keys
Change: a boolean "guestAllowed" property ("guest_allowed" database column) has been added to the Space class ("spaces" table).
3) Added a Hibernate "version" property for the critical domain objects.
I had overlooked this. This is crucial for solving the scenario when two users modify the same item and attempt to save. Definitely a must in the long term
Change:
A "version" column added to four tables: items, history, spaces and metadata.
4) Column sizes to be re-defined for String types in some database tables.
Currently another potential problem is that all String types default to VARCHAR(255) because the Hibernate mapping has not been defined with the additional information needed during schema generation. I have not made this change yet, but this is likely to impact columns on the User and Space tables only.
If you are interested you can take a look at the Hibernate mapping file here:
I would like to post this quick update on JTrac development and caution users who plan to or may have already started using this in production. Also I will summarize the new features and improvements so far. Note that quite a lot of updates have gone into version control since RC2 - and we hope to have covered the "most wanted" features.
First the good news: Noteworthy features / fixes implemented (in SVN) are as follows:
* People without accounts will be able to use JTrac in "guest mode" (read only)
* Lucene based full-text search is in place. Now you can search even the "detail" and "comment" areas (using Lucene supported query syntax and wildcards)
* Probably the most requested feature, the ability to delete custom fields. You can also delete, rename and even re-order the values within custom "drop down" fields. Impact to existing data if applicable is also handled.
* It is now possible to grant any user Admin privileges
* E-mail servers that require authentication are now supported
* You can now customize the location of "jtrac.home" by editing a properties file within the WAR.
* Refactored URLs to be more "REST"-ful
* fixed JSTL problems on "SEARCH ALL" screen that occured when using Glassfish
* Relaxed naming convention for State names a little, camel case with a dash allowed (e.g. "Work-In-Progress", "On-Hold")
Would appreciate feedback on anything major that needs to go in before a "2.0 final" release.
Now the bad news. There have been three releases so far (EA1, RC1 and RC2) and now for the first time, the database schema has changed a little. I'll try and outline the reasons below. I sincerely invite feedback and suggestions, especially from those who have experience with using Hibernate. I have not yet thought in detail about a migration task that runs on startup but I know this is essential for changes that may happen (but will be avoided as far as possible) from the 2.0 milestone onward. Obviously, I am trying to finalize the schema to be as future-proof as possible before 2.0 final.
Details:
1) Users have reported problems with integer types being used for primary keys
refer the following forum posts:
http://sourceforge.net/forum/forum.php?thread_id=1547831&forum_id=552477
http://sourceforge.net/forum/forum.php?thread_id=1551422&forum_id=552477
Change: all autoincrement primary keys have been changed to "long" (not in the HBM file but in the classes) This affects about 7 tables.
2) There was a request for allowing "guest" access to spaces, which we think is definitely required.
refer:
http://sourceforge.net/forum/forum.php?thread_id=1549670&forum_id=552477
Change: a boolean "guestAllowed" property ("guest_allowed" database column) has been added to the Space class ("spaces" table).
3) Added a Hibernate "version" property for the critical domain objects.
I had overlooked this. This is crucial for solving the scenario when two users modify the same item and attempt to save. Definitely a must in the long term
Change:
A "version" column added to four tables: items, history, spaces and metadata.
4) Column sizes to be re-defined for String types in some database tables.
Currently another potential problem is that all String types default to VARCHAR(255) because the Hibernate mapping has not been defined with the additional information needed during schema generation. I have not made this change yet, but this is likely to impact columns on the User and Space tables only.
If you are interested you can take a look at the Hibernate mapping file here:
http://svn.sourceforge.net/viewvc/j-trac/trunk/jtrac/src/main/resources/jtrac.hbm.xml?view=markup
How far off are we for the "final" release? I'm chomping at the bit to start using this in production.
How easy do you think it would be to migrate the data from RC2 to final?
Regards,
Stephen...
What I will do is try to do a migration, since I personally *am* using this in production :)
Then I hope to throw more light on how feasible a migration can be.
maybe a small app to read the old data and write to the new structure.
An update: I have got a migration utility for HSQLDB working, more details at this thread. Appreciate help from all those who can - to test this out.
http://sourceforge.net/forum/forum.php?thread_id=1592046&forum_id=552477