Bando de dados Prevayler

Bom dia pessoal,

Estou desenvolvendo uma aplicação usando o bando de dados Prevayler.(Alguem conheçe?)

Então estou na duvida se eu consigo fazer uma alterar e remover na lista em que eu estou armazenando…
Tipo:

    private ArrayList<Pessoa> listaPessoas = new ArrayList<Pessoa>();  

E tenho:

    public boolean remove(Pessoa pes) {  
            return listaPessoas.remove(pes);  
    }  

Porem não remover.
Alguem pode me ajudar?

Att,

Boa tarde pessoal,

Ninguem sabe me falar nada sobre esse Banco?

Att,

[quote]
Ninguem sabe me falar nada sobre esse Banco? [/quote]
O Prevayler é um mecanismo de persistência transparente de objetos, mas não é um banco de dados.Usei ele no meu projeto final em 2004.

[quote]public boolean remove(Pessoa pes) {
return listaPessoas.remove(pes);
} [/quote]
Esse método é void, e verifique se sua lista de pessoas e seu Objeto Pessoa implementam a interface Serializable, o que marca eles como persistíveis para o sistema prevalente.E vc precisa de uma Transação para a execução de uma ACID transaction através do método executeOn.Fiz uns 10 sisteminhas com o Prevayler, mas não mexo há muitos anos, me perdoe se falei besteira(pode ter mudado muita coisa de lá para cá).

Uma rápida googlada me retornou esse tutorial do Vitor Panplona, um participante outrora ativo do pojeto Prevayler:
http://vitorpamplona.com/wiki/Tutorial%20Prevayler%202

Adicionar adiciona certinho mas também não sei como remover …

[code]import java.io.Serializable;

public class Pessoa implements Serializable {

private static final long serialVersionUID = 2L;
private String nome;

public Pessoa(String nome){
	this.nome = nome;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

}

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class ListaPessoas implements Serializable {

private static final long serialVersionUID = 1L;
private List<Pessoa> listaPessoas = new ArrayList<Pessoa>();

public void add(Pessoa pes) {
	listaPessoas.add(pes);
}

public void remove(Pessoa pes) {
	listaPessoas.remove(pes);
}

public Pessoa get(int i) {
	return (Pessoa) listaPessoas.get(i); 
}

public int size() {
	return listaPessoas.size();
}

}

import java.io.Serializable;
import java.util.Date;
import org.prevayler.Transaction;

public class AdicionaPessoa implements Transaction, Serializable {

private static final long serialVersionUID = 3L;
private String nome;

public AdicionaPessoa(String nome) {
	this.nome = nome;
}

public void executeOn(Object businessSystem, Date date) {
	((ListaPessoas)businessSystem).add(new Pessoa(nome));
}

}

import java.io.Serializable;
import java.util.Date;
import org.prevayler.Transaction;

public class RemovePessoa implements Transaction, Serializable {

private static final long serialVersionUID = 4L;
private String nome;

public RemovePessoa(String nome) {
	this.nome = nome;
}

public void executeOn(Object businessSystem, Date date) {
	((ListaPessoas)businessSystem).remove(new Pessoa(nome));
}

}

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.prevayler.Prevayler;
import org.prevayler.PrevaylerFactory;

public class Main {

static Prevayler prevayler;

public static void main(String args[]) throws IOException, ClassNotFoundException {
	System.out.println("Iniciando Prevayler ...");
	
	PrevaylerFactory factory = new PrevaylerFactory();
	factory.configurePrevalenceDirectory("BASE");
	factory.configurePrevalentSystem(new ListaPessoas());
	prevayler = factory.create();
	
	System.out.println("Digite o nome da pessoa ou FIM para sair ..");
	String nome = lerTeclado();
	
	while(!nome.equals("FIM")) {
		try {
			prevayler.execute(new AdicionaPessoa(nome));
		} catch (Exception e1) {
			e1.printStackTrace();
		}
		
		System.out.println("Pessoa armazenada.");
		System.out.println("Digite o nome da pessoa ou FIM para sair: ");
		nome = lerTeclado();
	}
	
	System.out.println("Imprimindo pessoas persistidas.");
	ListaPessoas lista = ((ListaPessoas)prevayler.prevalentSystem());
	for (int i = 0; i < lista.size(); i++) {
		System.out.println(lista.get(i).getNome());
	}
}

public static String lerTeclado() {
	BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
	try {
		return reader.readLine();
	} catch (IOException e1) {
		return "FIM";
	}
}

}
[/code]

Eu não sei porque ele não atualiza…

Na lista remove normalmente, porém no banco virtual não atualiza né…

Complicado…
Att,

Complicado mesmo!
Alterei o código para remover o objeto pelo índice, teoricamente agora está certo, mas ainda não remove xD …
Pior que tem muito pouco material sobre na net, será que tem solução?
Att,

[code]import java.io.Serializable;
import java.util.Date;
import org.prevayler.Transaction;

public class RemovePessoa implements Transaction, Serializable {

private static final long serialVersionUID = 4L;
private Pessoa pessoa;

public RemovePessoa(Pessoa pessoa) {
	this.pessoa = pessoa;
}

public void executeOn(Object businessSystem, Date date) {
	((ListaPessoas)businessSystem).remove(pessoa);
}

}

ListaPessoas lista = ((ListaPessoas)prevayler.prevalentSystem());
for (int i = 0; i < lista.size(); i++) {
if (lista.get(i).getNome().equals(nome)) {
prevayler.execute(new RemovePessoa(lista.get(i)));
}
}
[/code]

Não remove msm…

É verdade tem quase nada sobre na net, vc retirou estes codigos do JavaFree?
Lá tinha um artigo muito bom sobre prevayler.

Na verdade eu estava qurendo fazer um chat em cima deste banco de dados, foi uma ideia meio louca que meu gerente teve aqui, mais eu desisti de fazer por esses motivos mesmo.

Vc estava so estudando ou fazendo algum projeto usando prevayler?

Att,

Quase isso Alberto, estava mesmo estudando alguns artigos do javaFree quando vi os sobre Prevayler e fiquei curioso, quando descobri do que se tratava fiquei muito interessado e quis ver pra crer, já que aqui no trabalho usamos Hibernate … os códigos do javaFree só funcionavam para a versão release do prevayler, e pesquisando encontrei os códigos atualizados no blog do Vitor Pamplona …
Infelizmente tem mesmo pouco material na net e me parece que o interesse sobre o prevayler diminuiu muito de 2009 pra cá … mas apesar da resistência da maioria, eu acho muito interessante essa alternativa e gostaria de me aprofundar, mas tá bem difícil hehe
Att,

Hehehe,
Estamos no mesmo barco então, eu também trabalho usando Hibernate.

Achei bastante interessante esse tipo de persistencis de dados…
Vc é de onde…?
Att,

Sou de Penápolis, interior de SP …