// keep only non server session properties - the rest will
// be either cached in the server session or ignored
properties = splitProperties[0];
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);
// properties override server session properties
Map propertiesToProcess = EntityManagerFactoryProvider.mergeMaps(properties, tempProperties);
processProperties(propertiesToProcess);
this.session = tempSession;
}