// splitProperties[0] contains
// supportedNonServerSessionProperties; [1] - all the rest.
Map[] splitProperties = EntityManagerFactoryProvider.splitSpecifiedProperties(properties, supportedNonServerSessionProperties);
Map serverSessionProperties = splitProperties[1];
// the call to setupImpl.deploy() finishes the session creation
DatabaseSessionImpl tempSession = setupImpl.deploy(realLoader, serverSessionProperties);
// discard all but non server session properties from server
// session properties.
Map tempProperties = EntityManagerFactoryProvider.keepSpecifiedProperties(tempSession.getProperties(), supportedNonServerSessionProperties);
// keep only non server session properties - the rest will
// be either cached in the server session or ignored
properties = splitProperties[0];
// properties override server session properties
Map propertiesToProcess = EntityManagerFactoryProvider.mergeMaps(properties, tempProperties);