PicoContainer

# About

- What is PicoContainer?
- Introduction
- Javadoc
- Downloads
- News
- FAQ
- Project Goals
- Support

# Core Concepts

- Component Lifecycle
- Dependency Injection
- Scoped Containers

# Dependency Injection

- Constructor Injection
- Setter Injection
- Annotated Field Injection
- Annotated Method Injection
- Typed Field Injection
- Named Field Injection
- Method Injection
- Multiple Injection
- Composite Injection
- Factory Injection
- Reinjection
- Injection via Providers

# Configuration

- Disambiguation

# Modifying Component Behaviors

- Modifying Behaviors
- Caching and Singletons
- Hiding Implementations
- Thread Safety Behaviors
- AOP Style Interception

# Advanced Concepts

- Fluent Style
- Arrays, Collections and Maps
- Leveraging Parameter Names
- Building Containers
- Component Properties
- Component Configuration
- Monitoring Component Events

# PicoContainer's Architecture

- Design Patterns
- Inversion of Control
- Component Adapters
- Mock Objects
- Terminology
- Container Comparisons
- Transparency

# Container Choices

- DefaultPicoContainer
- CommandLinePicoContainer
- PropertiesPicoContainer
- SystemPropertiesPicoContainer
- TransientPicoContainer
- TieringPicoContainer

# Dependant & Related

- Web Frameworks
- Scripting Support
- Persistence
- Logging

# Anti-patterns

- Propagating Dependency
- Long Constructor Argument List
- Container Dependency
- Unit Tests Use Container
- Singleton

# Help Pages

- Ambiguous Injectable
- Unprocessed Properties

# History

- Inversion of Control History

# Project Info

- Project
- Team

# Hosted by

# Tools

## Project

PicoContainer is hosted at Codehaus meaning it has a Xircles management page.

## Project links

Jira Bug tracking

Old Confluence based documentation (for Pico 1.x)

Source control root for Pico 2.x (you will need Maven2 installed to build):

http://svn.codehaus.org/picocontainer/java/2.x/trunk/

For other languages:

> Ruby ("Rico") - http://svn.codehaus.org/picocontainer/ruby/

> Php - http://svn.codehaus.org/picocontainer/php/

> .Net - http://svn.codehaus.org/picocontainer/dotnet/

Maven repositories for artifact download :

> numbered releases : http://repository.codehaus.org/org/picocontainer/

> snapshot (work in progress) releases http://snapshots.repository.codehaus.org/org/picocontainer/

## License

Pico is BSD licensed. At least, with us as copyright holder instead of "Regents of the University of California".

You can use it, write extensions for it, from/with software that is:

- licensed with other BSD open source
- Apache licensed software (1.1 or 2.x) open source
- GNU Public license (GPL)
- commercial (closed source) software

Under the terms of the BSD license you don't have to give changes back to us, or make your license the same as ours. If there is something that would benefit PicoContainer we would be pretty happy if you donated it back :-)