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:
- Velocity, Markdown, Freemarker, Mustache (java), Stringtemplate; for designing the dynamic content of your web pages.
- Beanshell, server side Javascript(Rhino), JRuby and more; for prototyping controllers before converting them to Java classes, if need be.
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
Create a new webapp using the Micro quickstart Maven archetype
cd archetypes/quickstart
mvn install
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 theAdd Archetype
button - choose
ca.simplegames.micro:micro-quickstart
from the list
And simply follow the dialog prompted by IntelliJ :)
<dependencies>
<dependency>
<groupId>ca.simplegames.micro</groupId>
<artifactId>micro-core</artifactId>
<version>0.2.2</version>
</dependency>
</dependencies>
Launching the generated application using the embedded Jetty web server is very easy:
cd myproject
mvn compile install exec:java
#or: mvn exec:java
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! µ
The documentation is a work in progress and can be found here: micro-docs.simplegames.ca. It is hosted at Heroku, using Micro itself for publishing. You can fork the documentation site and send pull requests. This is the Github repo for the docs: micro-docs
Feedback and contributions to the project, no matter what kind, are always very welcome.
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.
- 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.
- 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!
Copyright (c) 2012-2016 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.