Downloads
Welcome to the Induction downloads page. This page contains links to download the latest release of Induction and also links to archives of previous releases.
The archive in the distributions were created using 7-zip using the ZIP compression type flag -tzip. You should be able to open these archives using programs that support the ZIP format. On Windows XP these archives can be viewed/extracted using the operating system’s built-in ZIP archive support.
Update Aug 16 2010: Induction 1.5.0b released! New features and important bug fixes, upgrade recommended
Update Jan 31 2010: Induction 1.4.0b released! New features and important bug fixes, upgrade recommended
Update Nov 22 2009: Induction 1.3.1b released! Has bug fixes related to request interceptors.
Update Nov 02 2009: Induction 1.3.0b released! This release introduces support for request interceptors and support for mapping hyphenated URLs to controllers/views.
Latest Release
This section highlights the latest and greatest stable version of Induction available.
Induction – release 1.5.0b - (JDK 1.4-1.6) - Aug 16, 2010
This release has several important changes summarized below:
- Enhanced controller and views resolver interfaces (more details here) now support dependency injection in the new
resolveRequest()andresolveThrowable()methods- Backwards compatibility note: The new methods replace the previous overloaded
resolve()methods, so any pre-1.5.0b custom resolvers need thereresolve()methods renamed to work with 1.5.0b. If you use the standard resolvers that come with Induction no changes are needed.
- Backwards compatibility note: The new methods replace the previous overloaded
- A new URLResolver class to provide access to Induction’s URL mapping engine. The URLResolver provides access to the class to URL resolution mechanism used by the RedirectResolver.
- The URLResolver is the final piece required to enable writing fully URL independent applications using Induction. It was inadvertently left-out until this release! Thanks to Pierre Lavignotte for raising awareness of this issue on the user group!
- View-to-view injection support. If a view type A is declared in the constructor formal parameter list of view B, then an instance of view A is automatically injected into view B’s constructor.
Bug fixes in this release:
- Bug fix:
Formobjects are now correctly cached within request scope (previously a new object was created each time, causing failure when the Form is requested from more than one context per request) - Bug fix: Form parser now correctly handles array parameters of the form
foobar[]. - Bug fix: Fixed a bug in the ReloadingClassLoader that resulted in infinite recursion when loading a classes with certain types of cyclic dependencies
| File | Description |
| acciente-induction-1.5.0b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.5.0b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.5.0b-samples.zip | This file contains the source for several simple sample Induction applications |
Previous Releases
This section contains links to download previous versions of Induction.
Induction – release 1.4.0b - (JDK 1.4-1.6) - Jan 31, 2010
This release has several important changes summarized below:
- New support for error handlers
- New
<error-to-class-map>directive in config XML to configure error handlers - ControllerResolver interface has a new resolve() method to to support resolving an exception to a controller
- New
- New template output buffering (feature suggested by David Nia)
- The output of a template is sent to the client only if the template completes without errors.
- Since now nothing is written to the client for a template that errors, this means:
- A user no longer sees the messy stack trace generated by most templating engines
- The error handler you write, now has more options, such as returning a redirect or error code to the client (since no writing was started on the response)
- The implementation (re)uses StringWriters from a pool to conserve memory and improve performance
- Improvements in reporting of errors that occur during controller/view execution
Bug fixes in this release:
- Request scope models were not being cached within the scope of the HTTP request context. As a result each time the injection of a request scope model is requested (say first in an interceptor and and then in a controller), a new model gets incorrectly created
- Changes to request model classes were not being detected/hot deployed
| File | Description |
| acciente-induction-1.4.0b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.4.0b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.4.0b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.3.1b - (JDK 1.4-1.6) - Nov 22, 2009
This release was made primarily to include a bug fix that missed the 1.3.0b release.
Bug fixes in this release:
- Injecting the ControllerResolver.Resolution or ViewResolver.Resolution in a request interceptor incorrectly threw an exception if resolution objects were null.
- Now throws an exception when an attempt is made to access a session scope model from a context in which no session is available, previously this caused a NullPtrEx (in the ModelPool class)
| File | Description |
| acciente-induction-1.3.1b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.3.1b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.3.1b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.3.0b - (JDK 1.4-1.6) - Nov 02, 2009
This release introduces support for request interceptors and support for mapping hyphenated URLs to controllers/views.
New features in this release:
- Powerful new support for request interceptors backed by the same zero-configuration type-based dependency injection support currently available in Induction controllers.
- The ShortURL resolvers are enhanced to support a new
<class-replace>directive in the<url-to-class-map>section of the Induction configuration. This directive allows a character in a URL that is not legal in a Java class name to be replaced with a character that is legal in a Java class. For example, this directive can be used to map a hypen in URL to, say, an underscore in a controller or views class name. Induction becomes the only MVC framework to date that supports mapping a hyphenated URL to a controller/view, even though the mapping are established via dynamic discovery with no individual controller/view mapping definitions (please look at the sample Induction configuration XML for examples on how to specify the directive).
Bug fixes in this release:
- The ShortURL resolver regexs now do case insensitive pattern matching.
- Previously specifying
falsefor the<init-on-startup>directive incorrectly generated a configuration exception.
| File | Description |
| acciente-induction-1.3.0b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.3.0b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.3.0b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.2.0b - (JDK 1.4-1.6) - Jun 10, 2009
Induction v1.2.0b has major new features and several enhancements. A summary of the changes follow:
Features in this release:
- New support for directly mapping a URL to a view. This is a whole new subsystem which means there is now a view resolver in addition to the already existing controller and redirect resolvers.
- New support for controllers to return a view type in addition to the previous support for returning a view instance. If a view type is returned, Induction will instantiate the view type (with dependency injection on the view constructor parameters)
- The previous simplistic default resolver implementation are now replaced with powerful, production-quality, regex-driven resolvers. The new resolvers “discover” controllers and views (using a configured regex pattern) and are capable of mapping short URLs to controller and view classes straight out of the box (for example it can easily and efficiently resolve /login.action to class named, say, myapp.security.LoginController). The new resolvers are configured using new three new configuration sections in the Induction configuration XML. The sections are
<controller-mapping>,<view-mapping>and<redirect-mapping>.
- New
<include-config ...>directive in the Induction configuration XML.
- New
<init-on-startup ...>directive to support initializing application scope models on startup.
- And other enhancements to expand access to system level objects (such as the templating engine and classloader) in controllers and views for use by specialized applications.
| File | Description |
| acciente-induction-1.2.0b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.2.0b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.2.0b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.1.4b - (JDK 1.4, 1.5, 1.6) - Oct 12, 2008
This release introduces the following new features:
- Ability to inject models into ControllerResolver and RedirectResolver implementations (this feature was motivated by applications that used models to implement advanced modular configuration management. This feature now allows access to model objects early in the Induction initialization process)
- Ability to inject Induction’s reloading classloader into model constructors. This is accomplished by declaring a parameter of type
java.lang.Classloaderin the model constructor.
- The reloading classloader now implements the
getResourceAsStreammethod. This allows applications to use the Induction classloader to load resources.
- Ability to inject Induction’s templating engine into model constructors. This is accomplished by declaring a parameter of type
com.acciente.induction.template.TemplatingEnginein the model constructor.
- The built-in Freemarker template engine plug-in now ignores any non-existent directories in the template path. Previously non-existent directories caused the Freeemarker template engine plug-in to throw a runtime exception that prevented Induction from starting.
This release fixes the following bugs discovered since the previous release:
- Incorrect return type for the
getInputStreammethod in theFileHandleclass. - Models classes which used factory classes were getting reloaded when no reload was necessary.
| File | Description |
| acciente-induction-1.1.4b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.1.4b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.1.4b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.1.3b - (JDK 1.4, 1.5, 1.6) - Jul 24, 2008
This is a bug fix release. This release fixes the following bugs reported on Jul 23, 2008:
- Injection of HttpServletRequest into a model constructor fails
- Reloading classloader fails attempting to load an array class
This release also introduces improved packaging. This release contains separate binaries (inside the file acciente-induction-1.1.3b-core.zip) compiled with JDK 1.4 and JDK 1.6. If you are using JDK 1.6 you may use the JDK 1.6 binaries, otherwise for JDK 1.5 and JDK 1.4 use the JDK 1.4 binaries.
| File | Description |
| acciente-induction-1.1.3b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.1.3b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.1.3b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.1.2b-jdk1_4 - (JDK 1.4, 1.5, 1.6) - Jul 16, 2008
This beta release was created since v1.1.1b was compiled with JDK 1.6 (Java 6). This release is compiled with JDK 1.4. The functionality of this release is identical to v1.1.1b below. Also the samples and required libs from 1.1.1b are unchanged.
| File | Description |
| acciente-induction-1.1.2b-jdk1_4-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.1.1b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.1.1b-samples.zip | This file contains the source for several simple sample Induction applications |
Induction – release 1.1.1b - (JDK 1.6 only!) - Jun 28, 2008
This is the first publicly released beta version of Induction. This version of Induction was compiled with JDK 1.6 (Java 6). Changes in this release from the 1.1.0b limited beta release are:
- new feature: controller resolution object now supports a new “options” property
- this property was introduced to enable the controller resolver to parameterize the controllers behaviour based on information in the originating request
- bug fix: there were cases when the model definition data was not being loaded correctly by XML config loader
- bug fix: removed reference to Freemarker’s TemplateException class in the Induction TemplateEngine interface
- the TemplateEngine interface should not (and now does not) have any dependency on any templating engine implementation
| File | Description |
| acciente-induction-1.1.1b-core.zip | This file contains the core Induction libraries, javadocs, sources and sample Induction configuration file |
| acciente-induction-1.1.1b-required-libs.zip | This file contains the Apache and Freemarker libraries required to run Induction. If you already have these libraries you do not need to download this file. This file is intended as a convenient way to get the libraries for those who do not already have them. |
| acciente-induction-1.1.1b-samples.zip | This file contains the source for several simple sample Induction applications |
