code: protected void init(Class<T> cls, Key ... keys) {
          readDataSource = Execution.getDataSourceName(cls.getName(), true);
          writeDataSource = Execution.getDataSourceName(cls.getName(), false);
          if( readDataSource == null ) {
              readDataSource = writeDataSource;
          }
          if( writeDataSource == null ) {
              writeDataSource = readDataSource;
          }
          
          if (keys != null && keys.length > 0) {
          	
          	secondaryCache = new ConcurrentHashMap<String,ConcurrentHashMap<String,T>>(keys.length);
          	for (Key k : keys) {
          		secondaryCache.put(k.toString(), new ConcurrentHashMap<String,T>(0));
          	}
          }
      }
docs: Constructs a new persistent factory for objects of the specified class with
  the named unique identifier attributes.
  @param cls the class of objects managed by this factory
  @param keys a list of unique identifiers for instances of the specified class