# Seasar

Seasar2 is an open-source application framework similar to the Spring Framework (Java). Initially, it was developed for the Java platform by Yasuo Higa, but .NET and PHP platforms are currently supported as well. Seasar2 has a large base of Japanese users, but there is a steady increase of non-Japanese users since English support was announced at the JavaOne 2005 Tokyo conference.
Seasar2 is currently supported by the Seasar Foundation, a non-profit open source organization.

## History

Seasar was initially made public in August 2003 at SourceForge.jp as an application server using Jetty (web server) and HSQLDB. The name was coined by the initial developer Yasuo Higa after an Okinawan mystical creature Shisa.
In March 2004, Seasar was re-introduced as light weight dependency injection and AOP container and renamed Seasar2. Even though, development of Seasar came to a halt, the last release, seasarsetupV1Final With Nazuna, may still be downloaded from the Seasar2 site. In April 2005, Seasar2 obtained assistance from OSCJ.net (Open Source Collaboration Joint Network) and moved out from SourceForge.jp.

## Introduction

Like other DI container frameworks, components are defined in external XML files. There is, also, a strong support for database and unit testing with JUnit.
The main difference with other frameworks is the support of the concept "Convention over Configuration" to reduce the XML configuration prominent when using framework such as Spring. The aim is to reduce the number or eliminate configuration files by making developers conform to programming and configuration conventions and letting the framework do the work. For example, if a property type is an interface and there is an object that implements this interface, dependency is configured by the container. If the test method name ends with a "Tx", a transaction is initiated before the unit test and rolledback after the test.

### Modules

Seasar2 support of other open source software are prefixed with S2. Like most open source software, Seasar2 software may be divided into 3 major categories:
* Seasar2 core
* Related software
* Sandbox software - software still under development
Related software may further be subdivided into the following subdivision:
* Database related: S2DAO, S2Hibernate, S2Unit(JUnit)
* Presentation: S2JSF, S2Struts, S2Tapestry, Flash player
* Communication related: S2RMI, S2Axis
* Miscellaneous: Kijimuna

#### Seasar2 Core

Seasar2 core is the central software common to all Seasar2 related software. Transaction control module (S2Tx), database connection pooling (S2DBCP), and JUnit testing (S2Unit) are all bundled with this core.

### Cross-Platform Support

Seasar is currently supported on Java/Java EE, PHP5, and .NET.

## Future

On April 22, 2005, at Seasar Strategies Day 2005, project Kuina was announced as the next release of Seasar2. At the conference, it was announced that Kuina will support for EJB3.0 (JSR220) as well as J2SE 5.0 annotation.
From http://ml.seasar.org/archives/seasar-user-en/2010-March/000039.html :
    The language of all of our documents and error messages is Japanese, Japanese ML is very active, and all committers are Japanese.
    Unfortunately, we don't prepare english documents for the current version(2.4).

## Events

Seasar Foundation periodically holds "Karasawagi" conferences around Japan to allow developers and users to talk with each other. Seasar is also featured in JavaOne conference.