I solved it,for 4.0.B2: ServerModule.contributeAdapterDetectors(binder).add(PcExpressPosPgDetector.class); I suppose this method add the new detector to the first place on the list, so It is found as i want.
Does anybody knows why my first approach didn't worked ? Atte. Juan Manuel Díaz Lara On Monday, February 12, 2018, 7:06:42 PM CST, Juan Manuel Diaz Lara <jmdia...@yahoo.com.INVALID> wrote: My code was working on 4.0.M5, but I ca not figure out how to make it work on B2, I think the problem is that I am not installing my DbAdapterDetector properly. package com.ace.dba; import static org.apache.cayenne.configuration.Constants.SERVER_ADAPTER_DETECTORS_LIST; import org.apache.cayenne.configuration.server.DbAdapterDetector; import org.apache.cayenne.dba.postgres.PostgresSniffer; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Module; public class PcExpressPosModule implements Module { public void configure(Binder binder) { //4.0.m5: //binder.bindList(SERVER_ADAPTER_DETECTORS_LIST).before(PostgresSniffer.class).add(PcExpressPosPgDetector.class); //4.0.b2: binder.bindList(DbAdapterDetector.class).insertBefore(PostgresSniffer.class, PcExpressPosPgDetector.class ); //tryes param in reverse order nothing } } My PcExpressPosPgDetector: public class PcExpressPosPgDetector extends PostgresSniffer { public PcExpressPosPgDetector(@Inject AdhocObjectFactory objectFactory) { super(objectFactory); } @Override public DbAdapter createAdapter(DatabaseMetaData md) throws SQLException { PostgresAdapter db = (PostgresAdapter) super.createAdapter(md); db.setPkGenerator(new PcExpressPosUUIDPkGenerator(db)); return db; } } PcExpressPosUUIDPkGenerator detects pk columns of type UUID and generates a uuid for then,.. thats all. Atte. Juan Manuel Díaz Lara