/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced; import java.util.HashMap; import java.util.Map; import org.eclipse.persistence.config.DescriptorCustomizer; import org.eclipse.persistence.config.SessionCustomizer; import org.eclipse.persistence.descriptors.ClassDescriptor; import org.eclipse.persistence.sessions.Session; import org.eclipse.persistence.sessions.SessionEvent; import org.eclipse.persistence.sessions.SessionEventAdapter; /** * Session and descriptor customizer. */ public class Customizer implements SessionCustomizer, DescriptorCustomizer { static HashMap sessionCalls = new HashMap(); static HashMap descriptorCalls = new HashMap(); public void customize(Session session) { String sessionName = session.getName(); Integer numberOfCalls = (Integer)sessionCalls.get(sessionName); int num = 0; if(numberOfCalls != null) { num = numberOfCalls.intValue(); } sessionCalls.put(sessionName, new Integer(num + 1)); session.getEventManager().addListener(new SessionEventAdapter() { public void postLogin(SessionEvent event) { if (event.getSession().getPlatform().isPostgreSQL()) { event.getSession().setQueryTimeoutDefault(0); } } }); } public void customize(ClassDescriptor descriptor) { String javaClassName = descriptor.getJavaClass().getName(); Integer numberOfCalls = (Integer)descriptorCalls.get(javaClassName); int num = 0; if(numberOfCalls != null) { num = numberOfCalls.intValue(); } descriptorCalls.put(javaClassName, new Integer(num + 1)); } public static Map getSessionCalls() { return sessionCalls; } public static Map getDescriptorCalls() { return descriptorCalls; } public static int getNumberOfCallsForSession(String sessionName) { Integer numberOfCalls = (Integer)sessionCalls.get(sessionName); if(numberOfCalls == null) { return 0; } else { return numberOfCalls.intValue(); } } public static int getNumberOfCallsForClass(String javaClassName) { Integer numberOfCalls = (Integer)descriptorCalls.get(javaClassName); if(numberOfCalls == null) { return 0; } else { return numberOfCalls.intValue(); } } }