BasePatterns.org
"A good designer must rely on experience, on precise, logic thinking; and on pedantic exactness. No magic will do."
- Niklaus Wirth
Building a Groovy web application from scratch
There are many frameworks available for building Java or Groovy-based web applications, with the most popular Groovy options being Grails or Gaelyk for Google App Engine development. Fortunately however, a lot of the functionality required for building simple web applications is built into the Groovy library itself.
Groovy Servlets
Support for executing arbitrary Groovy ...
Bootstrapping an OSGi environment
Something I have always lamented about OSGi is a lack of simple examples to get up and running quickly. So here is a simple example using Groovy:
First, dependencies are easily added via Maven, adding the following to your pom.xml should do it.
[code]
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>4.0.2</version>
</dependency>
</dependencies>
[/code]
Then a simple Groovy script to start ...
Prevent multiple instances of an application
A simple way to prevent running of multiple instances of your application is to use Socket communication. For example, in Groovy the first thing you would execute is something like this:
[code]
try {
// choose a unique port (!!)
new Socket('localhost', 1337)
...
Service Selector
Sometimes we may have more than one implementation and/or instance of a service to which we need to route requests. Routing may be controlled by a number of different factors, such as the request type, request arguments, runtime configuration, etc.
An implementation of such routing might look something like this:
[java]
public interface ...
Uniform Caching
Typically object caching in Java is managed by the container or framework in use. Occasionally however there is a need to manually cache domain-specific objects, whereby a java.util.Map implementation will not suffice.
Using the popular ehcache framework as an example, the following pattern is typically observed:
[java]
public class SomeClass {
private ...
Search
The archives run deep. Feel free to search older content using topic keywords.