This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Announce: Activate Persistence Framework

11 replies
fwbrasil
Joined: 2011-03-07,
User offline. Last seen 10 weeks 4 days ago.
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil
fwbrasil.net
fwbrasil
Joined: 2011-03-07,
User offline. Last seen 10 weeks 4 days ago.
Announce: Activate Persistence Framework
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil
Naftoli Gugenheim
Joined: 2008-12-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Announce: Activate Persistence Framework
Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil

fwbrasil
Joined: 2011-03-07,
User offline. Last seen 10 weeks 4 days ago.
Re: Announce: Activate Persistence Framework
Before to respond your question, I'd like to announce that Activate was GPL, and is now LGPL.
Activate is written in Scala. It's difficult to categorize to compare with others. Activate is an ORM (Object Relational Mapping), since it can be used with relational databases. But it also can be used with Prevayler (Object Prevalence Mapping?) and will can be used with No-SQL databases (Object No-SQL Mapping?). For now, the best denomination that I've found is "Pluggable Object Persistence". It persists objects, using pluggable storage systems.
Activate also is a durable STM (Software Transactional Memory). His core is a STM implementation created by me also in Scala, called RadonSTM.  STM gives to the framework:- A powerful mechanism to handle with transactions in memory, without needing to use transactional control from the storage (wich is absent in some No-SQL databases like Cassandra);- Atomic, isolated and consistent transactions with optimistic read and write collision detection in concurrent transactions, so you can use the entities without worrying about concurrency, commit and rollback problems. If a transaction fails, the entities in memory don't stay in a inconsistent state;- In memory transaction propagation control, with nested transactions.
The persistence of the objects is transparent, so just to use the entities inside transactions and the persistence will be achieved. Entities are lazy loaded and transparent activated (initialized) when it's necessary.Queries are type-safe and consistent with the running transaction, so entities created during the transaction are query-able too.
I think that there isn't a framework with this characteristics to compare. I've been searching and I think that is the first full object persistence framework written in Scala.
Obs.: Sorry about the duplicate announcement. I've asked to another user an the email was marked as spam to him.
-- 
Flávio W. Brasilfwbrasil.net

On segunda-feira, 6 de junho de 2011 at 16:49, Naftoli Gugenheim wrote:

Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil


Adam Jorgensen
Joined: 2011-04-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Announce: Activate Persistence Framework
What I like:* Pluggable Persistence* Transactional Blocks with automatic persistence* Query syntax
What I don't like:* Entity declaration looks a little clunky * Reading and Writing entity properties looks a little clunky
2011/6/7 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Before to respond your question, I'd like to announce that Activate was GPL, and is now LGPL.
Activate is written in Scala. It's difficult to categorize to compare with others. Activate is an ORM (Object Relational Mapping), since it can be used with relational databases.  But it also can be used with Prevayler (Object Prevalence Mapping?) and will can be used with No-SQL databases (Object No-SQL Mapping?). For now, the best denomination that I've found is "Pluggable Object Persistence". It persists objects, using pluggable storage systems.
Activate also is a durable STM (Software Transactional Memory). His core is a STM implementation created by me also in Scala, called RadonSTM.  STM gives to the framework: - A powerful mechanism to handle with transactions in memory, without needing to use transactional control from the storage (wich is absent in some No-SQL databases like Cassandra);- Atomic, isolated and consistent transactions with optimistic read and write collision detection in concurrent transactions, so you can use the entities without worrying about concurrency, commit and rollback problems. If a transaction fails, the entities in memory don't stay in a inconsistent state; - In memory transaction propagation control, with nested transactions.
The persistence of the objects is transparent, so just to use the entities inside transactions and the persistence will be achieved. Entities are lazy loaded and transparent activated (initialized) when it's necessary. Queries are type-safe and consistent with the running transaction, so entities created during the transaction are query-able too.
I think that there isn't a framework with this characteristics to compare. I've been searching and I think that is the first full object persistence framework written in Scala.
Obs.: Sorry about the duplicate announcement. I've asked to another user an the email was marked as spam to him.
-- 
Flávio W. Brasilfwbrasil.net

On segunda-feira, 6 de junho de 2011 at 16:49, Naftoli Gugenheim wrote:

Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil



fwbrasil
Joined: 2011-03-07,
User offline. Last seen 10 weeks 4 days ago.
Re: Announce: Activate Persistence Framework
Could you give more details about what you didn't like in the entity declaration?
About the properties, I was wondering if it is possible to write a compiler plugin to transform this:
transactional { class Person(ref name: String, ref age: Int) extends Entity val person = new Person("Test", 20) person.name = "Test2" println(person.name)}
Into this:
transactional { class Person(val name: Var[String], val age: Var[Int]) extends Entity val person = new Person(new Var("Test"), new Var(20)) person.name.set("Test2") println(person.name.get)}
Someone knows if it is possible? There is documentation?

-- 
Flávio W. Brasilfwbrasil.net

On quarta-feira, 8 de junho de 2011 at 02:54, Adam Jorgensen wrote:

What I like:* Pluggable Persistence* Transactional Blocks with automatic persistence* Query syntax
What I don't like:* Entity declaration looks a little clunky * Reading and Writing entity properties looks a little clunky
2011/6/7 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Before to respond your question, I'd like to announce that Activate was GPL, and is now LGPL.
Activate is written in Scala. It's difficult to categorize to compare with others. Activate is an ORM (Object Relational Mapping), since it can be used with relational databases.  But it also can be used with Prevayler (Object Prevalence Mapping?) and will can be used with No-SQL databases (Object No-SQL Mapping?). For now, the best denomination that I've found is "Pluggable Object Persistence". It persists objects, using pluggable storage systems.
Activate also is a durable STM (Software Transactional Memory). His core is a STM implementation created by me also in Scala, called RadonSTM.  STM gives to the framework: - A powerful mechanism to handle with transactions in memory, without needing to use transactional control from the storage (wich is absent in some No-SQL databases like Cassandra);- Atomic, isolated and consistent transactions with optimistic read and write collision detection in concurrent transactions, so you can use the entities without worrying about concurrency, commit and rollback problems. If a transaction fails, the entities in memory don't stay in a inconsistent state; - In memory transaction propagation control, with nested transactions.
The persistence of the objects is transparent, so just to use the entities inside transactions and the persistence will be achieved. Entities are lazy loaded and transparent activated (initialized) when it's necessary. Queries are type-safe and consistent with the running transaction, so entities created during the transaction are query-able too.
I think that there isn't a framework with this characteristics to compare. I've been searching and I think that is the first full object persistence framework written in Scala.
Obs.: Sorry about the duplicate announcement. I've asked to another user an the email was marked as spam to him.
-- 
Flávio W. Brasilfwbrasil.net

On segunda-feira, 6 de junho de 2011 at 16:49, Naftoli Gugenheim wrote:

Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil




Matthew Pocock 3
Joined: 2010-07-30,
User offline. Last seen 42 years 45 weeks ago.
Re: Announce: Activate Persistence Framework

Had you tried an implicit conversion to Var[T] from T?

On 8 Jun 2011 12:35, "Flávio W. Brasil" <fwbrasil [at] gmail [dot] com> wrote:

Could you give more details about what you didn't like in the entity declaration?
About the properties, I was wondering if it is possible to write a compiler plugin to transform this:
transactional { class Person(ref name: String, ref age: Int) extends Entity val person = new Person("Test", 20) person.name = "Test2" println(person.name) }
Into this:
transactional { class Person(val name: Var[String], val age: Var[Int]) extends Entity val person = new Person(new Var("Test"), new Var(20)) person.name.set("Test2") println(person.name.get)}
Someone knows if it is possible? There is documentation?

-- 
Flávio W. Brasilfwbrasil.net


On quarta-feira, 8 de junho de 2011 at 02:54, Adam Jorgensen wrote:
>
> What I like:
> * Pluggable ...

Adam Jorgensen
Joined: 2011-04-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Announce: Activate Persistence Framework
Well, specifically, declaring an entity of the form:
class X(val property: Var[T]) extends Entity
is just not as clean as:
class X(var property: T)
I do understand *why* it's done, I just don't like the fact that it needs to be done in the first place. Essentially it's boiletplateto some extend, something to be avoided...

2011/6/8 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Could you give more details about what you didn't like in the entity declaration?
About the properties, I was wondering if it is possible to write a compiler plugin to transform this:
transactional { class Person(ref name: String, ref age: Int) extends Entity val person = new Person("Test", 20) person.name = "Test2" println(person.name) }
Into this:
transactional { class Person(val name: Var[String], val age: Var[Int]) extends Entity val person = new Person(new Var("Test"), new Var(20)) person.name.set("Test2") println(person.name.get)}
Someone knows if it is possible? There is documentation?

-- 
Flávio W. Brasilfwbrasil.net

On quarta-feira, 8 de junho de 2011 at 02:54, Adam Jorgensen wrote:

What I like:* Pluggable Persistence* Transactional Blocks with automatic persistence* Query syntax
What I don't like: * Entity declaration looks a little clunky * Reading and Writing entity properties looks a little clunky
2011/6/7 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Before to respond your question, I'd like to announce that Activate was GPL, and is now LGPL.
Activate is written in Scala. It's difficult to categorize to compare with others. Activate is an ORM (Object Relational Mapping), since it can be used with relational databases.  But it also can be used with Prevayler (Object Prevalence Mapping?) and will can be used with No-SQL databases (Object No-SQL Mapping?). For now, the best denomination that I've found is "Pluggable Object Persistence". It persists objects, using pluggable storage systems.
Activate also is a durable STM (Software Transactional Memory). His core is a STM implementation created by me also in Scala, called RadonSTM.  STM gives to the framework: - A powerful mechanism to handle with transactions in memory, without needing to use transactional control from the storage (wich is absent in some No-SQL databases like Cassandra);- Atomic, isolated and consistent transactions with optimistic read and write collision detection in concurrent transactions, so you can use the entities without worrying about concurrency, commit and rollback problems. If a transaction fails, the entities in memory don't stay in a inconsistent state; - In memory transaction propagation control, with nested transactions.
The persistence of the objects is transparent, so just to use the entities inside transactions and the persistence will be achieved. Entities are lazy loaded and transparent activated (initialized) when it's necessary. Queries are type-safe and consistent with the running transaction, so entities created during the transaction are query-able too.
I think that there isn't a framework with this characteristics to compare. I've been searching and I think that is the first full object persistence framework written in Scala.
Obs.: Sorry about the duplicate announcement. I've asked to another user an the email was marked as spam to him.
-- 
Flávio W. Brasilfwbrasil.net

On segunda-feira, 6 de junho de 2011 at 16:49, Naftoli Gugenheim wrote:

Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil





fwbrasil
Joined: 2011-03-07,
User offline. Last seen 10 weeks 4 days ago.
Re: Announce: Activate Persistence Framework
I understand.The extension from Entity trait I think that it's not possible to avoid, since it adds the id field and important entities methods, like delete. The property declaration as Var I will study if it's possible to do a compiler plugin to avoid.

-- 
Flávio W. Brasilfwbrasil.net

On quarta-feira, 8 de junho de 2011 at 09:28, Adam Jorgensen wrote:

Well, specifically, declaring an entity of the form:
class X(val property: Var[T]) extends Entity
is just not as clean as:
class X(var property: T)
I do understand *why* it's done, I just don't like the fact that it needs to be done in the first place. Essentially it's boiletplateto some extend, something to be avoided...

2011/6/8 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Could you give more details about what you didn't like in the entity declaration?
About the properties, I was wondering if it is possible to write a compiler plugin to transform this:
transactional { class Person(ref name: String, ref age: Int) extends Entity val person = new Person("Test", 20) person.name = "Test2" println(person.name) }
Into this:
transactional { class Person(val name: Var[String], val age: Var[Int]) extends Entity val person = new Person(new Var("Test"), new Var(20)) person.name.set("Test2") println(person.name.get)}
Someone knows if it is possible? There is documentation?

-- 
Flávio W. Brasilfwbrasil.net

On quarta-feira, 8 de junho de 2011 at 02:54, Adam Jorgensen wrote:

What I like:* Pluggable Persistence* Transactional Blocks with automatic persistence* Query syntax
What I don't like: * Entity declaration looks a little clunky * Reading and Writing entity properties looks a little clunky
2011/6/7 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Before to respond your question, I'd like to announce that Activate was GPL, and is now LGPL.
Activate is written in Scala. It's difficult to categorize to compare with others. Activate is an ORM (Object Relational Mapping), since it can be used with relational databases.  But it also can be used with Prevayler (Object Prevalence Mapping?) and will can be used with No-SQL databases (Object No-SQL Mapping?). For now, the best denomination that I've found is "Pluggable Object Persistence". It persists objects, using pluggable storage systems.
Activate also is a durable STM (Software Transactional Memory). His core is a STM implementation created by me also in Scala, called RadonSTM.  STM gives to the framework: - A powerful mechanism to handle with transactions in memory, without needing to use transactional control from the storage (wich is absent in some No-SQL databases like Cassandra);- Atomic, isolated and consistent transactions with optimistic read and write collision detection in concurrent transactions, so you can use the entities without worrying about concurrency, commit and rollback problems. If a transaction fails, the entities in memory don't stay in a inconsistent state; - In memory transaction propagation control, with nested transactions.
The persistence of the objects is transparent, so just to use the entities inside transactions and the persistence will be achieved. Entities are lazy loaded and transparent activated (initialized) when it's necessary. Queries are type-safe and consistent with the running transaction, so entities created during the transaction are query-able too.
I think that there isn't a framework with this characteristics to compare. I've been searching and I think that is the first full object persistence framework written in Scala.
Obs.: Sorry about the duplicate announcement. I've asked to another user an the email was marked as spam to him.
-- 
Flávio W. Brasilfwbrasil.net

On segunda-feira, 6 de junho de 2011 at 16:49, Naftoli Gugenheim wrote:

Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil






Naftoli Gugenheim
Joined: 2008-12-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Announce: Activate Persistence Framework
Rather than a compiler plugin (which requires more setup on users' part), maybe you can take a different approach. Instead of mutating existing classes, use cgilib or similar to return new (proxy) instances with the new values (or just plain old reflection).


2011/6/8 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
I understand.The extension from Entity trait I think that it's not possible to avoid, since it adds the id field and important entities methods, like delete. The property declaration as Var I will study if it's possible to do a compiler plugin to avoid.

-- 
Flávio W. Brasilfwbrasil.net

On quarta-feira, 8 de junho de 2011 at 09:28, Adam Jorgensen wrote:

Well, specifically, declaring an entity of the form:
class X(val property: Var[T]) extends Entity
is just not as clean as:
class X(var property: T)
I do understand *why* it's done, I just don't like the fact that it needs to be done in the first place. Essentially it's boiletplateto some extend, something to be avoided...

2011/6/8 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Could you give more details about what you didn't like in the entity declaration?
About the properties, I was wondering if it is possible to write a compiler plugin to transform this:
transactional { class Person(ref name: String, ref age: Int) extends Entity val person = new Person("Test", 20) person.name = "Test2" println(person.name) }
Into this:
transactional { class Person(val name: Var[String], val age: Var[Int]) extends Entity val person = new Person(new Var("Test"), new Var(20)) person.name.set("Test2") println(person.name.get)}
Someone knows if it is possible? There is documentation?

-- 
Flávio W. Brasilfwbrasil.net

On quarta-feira, 8 de junho de 2011 at 02:54, Adam Jorgensen wrote:

What I like:* Pluggable Persistence* Transactional Blocks with automatic persistence* Query syntax
What I don't like: * Entity declaration looks a little clunky * Reading and Writing entity properties looks a little clunky
2011/6/7 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
Before to respond your question, I'd like to announce that Activate was GPL, and is now LGPL.
Activate is written in Scala. It's difficult to categorize to compare with others. Activate is an ORM (Object Relational Mapping), since it can be used with relational databases.  But it also can be used with Prevayler (Object Prevalence Mapping?) and will can be used with No-SQL databases (Object No-SQL Mapping?). For now, the best denomination that I've found is "Pluggable Object Persistence". It persists objects, using pluggable storage systems.
Activate also is a durable STM (Software Transactional Memory). His core is a STM implementation created by me also in Scala, called RadonSTM.  STM gives to the framework: - A powerful mechanism to handle with transactions in memory, without needing to use transactional control from the storage (wich is absent in some No-SQL databases like Cassandra);- Atomic, isolated and consistent transactions with optimistic read and write collision detection in concurrent transactions, so you can use the entities without worrying about concurrency, commit and rollback problems. If a transaction fails, the entities in memory don't stay in a inconsistent state; - In memory transaction propagation control, with nested transactions.
The persistence of the objects is transparent, so just to use the entities inside transactions and the persistence will be achieved. Entities are lazy loaded and transparent activated (initialized) when it's necessary. Queries are type-safe and consistent with the running transaction, so entities created during the transaction are query-able too.
I think that there isn't a framework with this characteristics to compare. I've been searching and I think that is the first full object persistence framework written in Scala.
Obs.: Sorry about the duplicate announcement. I've asked to another user an the email was marked as spam to him.
-- 
Flávio W. Brasilfwbrasil.net

On segunda-feira, 6 de junho de 2011 at 16:49, Naftoli Gugenheim wrote:

Nice. How does it compare to other similar frameworks?

2011/6/6 Flávio W. Brasil <fwbrasil [at] gmail [dot] com>
*The original message seems to be marked as spam, so I am sending again.*
I've been working in this framework for some months and it's time to release!
Activate Persistence FrameworkPluggable object persistence in Scalahttps://github.com/fwbrasil/activate
There are cool features like type-safe queries, pluggable storage, lazy load with transparent activation, nested transactions, optimistic concurrency control and in-memory rollback. 
Sorry about my poor english, if someone could help me with english review of the readme, I will be grateful. :)
-- 
Flávio W. Brasil







Philipp Ossler
Joined: 2011-06-21,
User offline. Last seen 42 years 45 weeks ago.
Aw: Re: Announce: Activate Persistence Framework

Will it be posible to use the activate framework for the No-SQL db (data nucleus + jdo / jpa) inside the google app engine?

fwbrasil
Joined: 2011-03-07,
User offline. Last seen 10 weeks 4 days ago.
Re: Aw: Re: Announce: Activate Persistence Framework
I'm working to support the appengine low level datastore API, but the query mechanism is very limited due the database type.In the next week, probably activate will have support for appengine, with some query restrictions. These restrictions will be avoided in next releases.
-- 
Flávio W. Brasilfwbrasil.net

On terça-feira, 21 de junho de 2011 at 05:21, Philipp Ossler wrote:

Will it be posible to use the activate framework for the No-SQL db (data nucleus + jdo / jpa) inside the google app engine?

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland