TECUJ Library

Introduction To TECUJ


Latest: tecuj.2009.01.15.zip: Source, JAR, JavaDocs.

Java Docs.

1. Introduction

Technology Exponent Common Utilities for Java (TECUJ) is a Java library that makes common programming tasks easier. TECUJ is a free software with a GNU LGPL license. Examples of things made easier by the library include:

    1. Enhancements to the Java and Jakarta-commons collections API

    2. File I/O.

    3. Configuration and properties files.

    4. JDBC handling.

    5. Email.

    6. Logging.

    7. XML processing.

    8. String processing.

    9. A powerful list of String items.

    10. Configurable tokenizers.

    11. And many more ...

TECUJ aspires to achieve the following:

    1. Eliminate repetitive Java programming chores.

    2. TECUJ is not a framework that forces you to either use it all or not at all. If you decide to use any of its features, you could continue to use your favorite libraries or framework.

    3. TECUJ tries not to reinvent the wheel, it builds on existing standards and open source libraries.

TECUJ uses the following libraries (which are included in the tecuj.x.zip download):

    1. Java Mail API: mail.jar, version 1.4

    2. JavaBeans Activation Framework: activation.jar, version 1.1

    3. Apache Jakarta Commons lang library: commons-lang-2.3.jar

    4. Apache Jakarta Commons collections library: commons-collections-3.2.jar

    5. Apache Jakarta Commons codec library: commons-codec-1.3.jar

    6. Apache Jakarta Commons IO library: commons-io-1.3.2.jar

    7. Apache Log4j library: log4j-1.2.15.jar

    8. Apache Jakarta Commons Logging library: commons-logging-1.1.jar

TECUJ should run with any version of Java 1.4 or higher. To use this library, just make sure that Tek271Util.jar (and the other dependent jars) are in your classpath.

2. Classes

The following is a list of classes and a brief description of each. The green background indicates the start of a new package.

3. Changes

Version 1.2, 2009.01.15

    1. Added com.tek271.util.internet.html.menu.MultiLevelMenu

    2. Added com.tek271.util.internet.html.menu.XmlMultiLevelMenu

    3. Added com.tek271.util.internet.html.menu.multiLevelTopMenu.css (style sheet)

    4. Added com.tek271.util.string.StringUtility.deleteControlChars()

    5. Added com.tek271.util.string.StringUtility.mutate()

    6. Added com.tek271.util.string.StringUtility.selectOption()

    7. Added com.tek271.util.string.StringUtility.pluralize()

    8. Added com.tek271.util.string.WordUtility

    9. Added com.tek271.util.reflect.ReflectUtil.getPackageDirectoryOfClass()

    10. Added com.tek271.util.reflect.ReflectUtil.getSuperclasses()

    11. Added com.tek271.util.reflect.ReflectUtil.isDefaultScope()

    12. Added com.tek271.util.reflect.BasicTypes

    13. Added com.tek271.util.reflect.IPrimitiveWrapper

    14. Added com.tek271.util.reflect.filter.MethodFilter

    15. Added com.tek271.util.reflect.filter.MethodSignature

    16. Added com.tek271.util.collections.set.SetUtility

    17. Added com.tek271.util.collections.list.ListOfString.readFromTextFileInContext()

    18. Updated com.tek271.util.reflect.accessors.MethodAccessor.invoke() to call non-public methods

    19. Added overloaded factory methods to XmlTree to enable preserving space in elemetns's data. Thanks Nilanjan Raychaudhuri.

    20. Fixed the spelling error in class com.tek271.util.thread.OsExecutor name

Version 1.1, 2008.01.02

    1. Added com.tek271.util.collections.CollectionUtility.addAll(Collection, Object[])

    2. Added com.tek271.util.collections.array.ArrayUtilities.toArrayOfString(Object[])

    3. Added com.tek271.util.collections.array.ArrayUtilities.toArrayOfString(Collection)

    4. Added com.tek271.util.reflect.accessors.BeanAccessor

    5. Added com.tek271.util.reflect.accessors.FieldAccessor

    6. Added com.tek271.util.reflect.accessors.MethodAccessor

    7. Added com.tek271.util.thread.OsExecutor

    8. Added com.tek271.util.string.StringUtility.replaceBetween*() methods

    9. Added com.tek271.util.string.StringUtility.removeBetween*() methods

    10. Added com.tek271.util.string.StringUtility.defaultToNull() method

    11. Added com.tek271.util.string.StringUtility.substringAfterOpenClose(str, open, close, fromIndex) method

    12. Added com.tek271.util.log.Log4jAdapter.Log4jAdapter(URL) constructor

Version 1.01, 2007.09.21

Updated the used libraries (Jakarta Commons and Log4J) to the latest release.

Version 1.0, 2007.09.15

This is a major release with many updates and bug fixes.

    1. Added Ant build script.

    2. Converted the project to use Eclipse.

    3. Cleaned up many of JavaDocs warnings.

    4. Added com.tek271.util.io.Compress

    5. Added com.tek271.util.thread.ThreadUtility.sleepMillis()

    6. Added com.tek271.util.collections.map.OrderedMapOfTimestamp

    7. Added com.tek271.util.collections.map.TimedLruMap

    8. Added com.tek271.util.collections.array.ArrayUtilities.clone(String[] aArray)

    9. Refactored com.tek271.util.cache.CacheStore to use com.tek271.util.collections.map.TimedLruMap instead of org.apache.commons.collections.map.LRUMap

    10. Fixed a bug in com.tek271.util.cache.CacheStore.equals()

    11. Deprecated com.tek271.util.cache.CacheItem

    12. Deprecated com.tek271.util.cache.ICacheItem

    13. Added these fields to com.tek271.util.internet.html.HtmlTable: classHeader, classRow1, and classRow2

    14. Added com.tek271.util.security.Encryption

    15. Added com.tek271.util.string.StringUtility.deleteControlChars(String)

    16. Added com.tek271.util.string.TextTemplate.setText(String) method.

    17. Added com.tek271.util.string.TextTemplate.getAllTagNames(String aStartsWith) method.

    18. Added com.tek271.util.xml.XmlTree.isEqualTag(String aTag, boolean aIsRegExp)

    19. Added com.tek271.util.xml.XmlTree.findAllChildren(String aTagPath, boolean aIsRegExp)

Version 0.19, 2006.08.16

    1. Fixed a bug in com.tek271.util.xml.XmlUtil.tagStart() where attributes that contain the double-quote character will be surrounded by single quotes.

    2. Refactored com.tek271.util.xml.* classes to use none-deprecated SAX APIs.

    3. Added com.tek271.util.internet.html.TableUtils.rowListToHtmlTable()

    4. Added com.tek271.util.collections.list.RowList.set/getColumnHeadersList()

    5. Added com.tek271.util.reflect.builder.AbstractBeanBuilder

    6. Added com.tek271.util.reflect.builder.BeanFromMapBuilder

    7. Added methods to com.tek271.util.collections.list.RowList: set/getRowInterface(), getRowAsBean()

    8. Added com.tek271.util.collections.map.MapUtility

Version 0.18, 2006.06.22

    1. Added a new constructor to com.tek271.util.log.Log4jAdapter that takes a Log4j Logger object

    2. Add the class com.tek271.util.log.CommonsLoggingAdapter

    3. Fixed a bug in the generation of JavaDocs where the source code was not viewable form FireFox browser.

Version 0.17, 2006.06.14

Small bug fixes. Also, added the following classes and packages:

    1. com.tek271.util.string.StringEscapeUtility

    2. com.tek271.util.string.StringComparator

    3. com.tek271.util.collections.CollectionUtility

    4. com.tek271.util.collections.graph.*

    5. com.tek271.util.collections.tree.*