One thing missing is the persistance layer. It is planned to use GORM, the hibernate-based layer of Grails.
This situation is an opportunity for ocmgroovy, my "framework"(*) for persisting Groovy objects into a JCR. While beeing a little ugly hack atm, the basic things like save() and get() seem to work, at least for my basic test cases.
Using ocmgroovy in grails is one annoying and 2 easy steps
- download ocmgroovy (either create the project via pom.xml or download all dependencies manually, which basically means to download all jackrabbit dependencies and xstream with its dependencies) and install it into {griffon_project}/lib directory
- declare the class to be persisted in {griffon_project/lifecycle}/Startup.groovy
- use it in your Griffon mvc
Step 2 looks like this
TransientRepository repository = new TransientRepository()
def session = repository.login(
new SimpleCredentials("threatmanagment", "password".toCharArray()))
JcrPersister strategy = new JcrPersister()
strategy.session = session
strategy.instanceRoot ="threatmanagment"
strategy.instrumentate(ThreatModel, "name")
strategy.instrumentate(Dataflow,"id")
This makes model classes ThreatModel and Dataflow persistable, i.e. currently mostly adds save() and get() methods to instance and class, respectivelyAnd Step 3: about as easy
ThreatModel model = new ThreatModel("name": "TestModel")
model.save()
...
ThreatModel model2 = ThreatModel.get("TestModel")
Please note that this is all very shaky at the moment (and therefore will create a black hole if you try it at home ;)), but might prove usable in the future.
I probably will release a PoC-project in the near future.
===
(*): ocmgroovy is very alpha and only used by myself. Therefore I do not consider this to be a framework
Keine Kommentare:
Kommentar veröffentlichen