News: This documentation is going to be updated for the new release of Micro. Please follow the development on Github for more news. Thank you!

Micro, for short: (μ) or Mu, is a modular Model View Controller framework (MVC Pull) for rapid web development. Flexible and powerful at the same time, Micro lets you choose your tools from a decently sized pool of well known products:

Using Micro

The easiest way to start developing with Micro is to download the source code from Github

git clone https://github.com/florinpatrascu/micro

Build it:

cd micro
mvn clean install test -Dtest=MicroGenericTest
# or: 
mvn clean install -DskipTests=true  # to skip the tests

Creating a new Micro web application

Create a new webapp using the Micro quickstart Maven archetype

cd archetypes/quickstart
mvn install

Usage from command line

mvn archetype:generate \
  -DarchetypeGroupId=ca.simplegames.micro\
  -DarchetypeArtifactId=micro-quickstart \
  -DarchetypeVersion=0.2.2 \
  -DgroupId=com.mycompany \
  -DartifactId=myproject

Usage from IntelliJ IDEA

Open IntelliJ. Choose File/Import/Existing Project and point it to myproject directory. Or, you can add the quickstart archetype in IntelliJ by simply following the few next steps:

  • File/New Project
  • select Create from archetype and click the Add Archetype button
  • choose ca.simplegames.micro:micro-quickstart from the list

And simply follow the dialog prompted by IntelliJ :)

Start your web application from command line

Launching the generated application using the embedded Jetty web server is very easy:

cd myproject
mvn compile install exec:java

#or: mvn exec:java, if you already built the project and you only need to restart the webapp

You can also easily start your web application from IntelliJ.

When the Micro web app is started, you will almost immediately see something like this:

     _ __ ___ ( ) ___ _ __ ___
    | '_ ` _ \| |/ __| '__/ _ \
    | | | | | | | (__| | | (_) |
    |_| |_| |_|_|\___|_|  \___/
    = a modular micro MVC Java framework

and you can visit your web application by pointing your browser to: http://localhost:8080

We hope Micro will help you develop web applications while increasing the fun quotient of programming as well.

Have fun!
µ

Submitting an Issue

We use the GitHub issue tracker to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted. When submitting a bug report, please include a Gist that includes a stack trace and any other details that may be necessary to reproduce the bug, including your Java version and operating system. Ideally, a bug report should include a pull request with failing specs.

Special thanks

  • to my wife, for understanding my endless passion for programming.
  • JPublish.org - a rusty but trusty framework. There are core concepts in Micro designed as continuations of the ideas developed for JPublish; Templates and Repositories, for example.
  • Many thanks to Anthony Eden for being an inspiring developer and a model for many of us.
  • Many thanks to Frank Carver for contributing ideas to the JRack, many of these being ported back into JRack and used by Micro.

  • JetBrains is kindly supporting open source projects with its full-featured IntelliJ IDEA. JetBrains is the world's leading vendor of professional development tools for Java, Ruby and .NET applications. Take a look at JetBrains software products: http://www.jetbrains.com/products.html

  • Spring framework - the localization support in Micro was extracted from selected classes originally developed for the early Spring framework.
  • Apache Wink - used as a future support for JSR-311.
  • to all our contributors and supporters. Cheers!

License

Copyright (c) 2012-2014 Florin T.Pătraşcu

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Fork me on GitHub