Skip to content

Installing MEF

ianrae edited this page Oct 26, 2013 · 10 revisions

MEF is available as a github repository. Include it in your project by following these instructions.

Build.scala

Add this to your appDependencies:

 "commons-io" % "commons-io" % "2.3",
 "mettle" % "mettle_2.10" % "1.0-SNAPSHOT"

Then set your project to include a resolver:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
  resolvers += Resolver.url("Mettle Repository", url("http://ianrae.github.io/snapshot/"))(Resolver.ivyStylePatterns),
  checksums := Nil
)

Run app and create Eclipse or IDEA project

play eclipse
play run

Open your browser to localhost:9000 and you should see the Play start page for a new project.

Create your code generation

Eventually MEF will add commands in SBT. Until then, use JUnit tests to do code generation

Create an mgen source folder

In the root of your project create mgen folder and add as source folder (in Java Build Path in Eclipse). You should now how three source folders

app
mgen
test

Create the app codegen JUnit class

    public class AppCodeGenTest extends BaseTest
    {
        @Test
        public void testEntity() throws Exception
        {
            createContext();
            AppScaffoldCodeGenerator gen = new AppScaffoldCodeGenerator(_ctx);
            String appDir = this.getCurrentDir("");
            log(appDir);
            gen.init(appDir);

            boolean b = gen.generateAll();
            assertTrue(b);
        }
    }

And run it. This will create the mef directory structure and some intial files.

app boundaries layer that sits between Play and MEF

mef
    core   		 initialization code
    dals        (daos) database persistence
    entities    the 'model object in MEF (POJOs)
    gen         codegen puts stuff here
    presenters  holds business logic. equivalent to a controller

conf
  mef/seed       JSON database initialization files

test
  mef            unit tests (no FakeApplication needed)

You're Ready to begin building your Entities and Presenters


Clone this wiki locally