blob: 040c6e5b3fddbd343a7d64bca4391fb93f1504af [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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 v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.tests.clientserver;
import org.eclipse.persistence.sessions.*;
import org.eclipse.persistence.expressions.*;
import org.eclipse.persistence.testing.models.employee.domain.*;
public class Client2 extends Thread {
protected Server server;
protected Session clientSession;
protected Session session;
public Throwable exception;
public Client2(Server server, Session session, String name) {
super(name);
this.server = server;
this.session = session;
this.clientSession = this.server.serverSession.acquireClientSession();
}
public void release() {
this.clientSession.release();
}
@Override
public void run() {
try {
Employee readEmployee;
Employee newManagedEmployee;
SmallProject newProject;
UnitOfWork uow;
ExpressionBuilder exb = new ExpressionBuilder();
for (int i = 0; i < 5; i++) {
uow = this.clientSession.acquireUnitOfWork();
readEmployee = (Employee)uow.readObject(Employee.class, exb.get("lastName").equal("MacIvor"));
newManagedEmployee = new org.eclipse.persistence.testing.models.employee.domain.Employee();
newManagedEmployee.setFirstName(this.getName() + " Employee" + i);
readEmployee.addManagedEmployee(newManagedEmployee);
newProject = new org.eclipse.persistence.testing.models.employee.domain.SmallProject();
newProject.setName(this.getName() + " Project" + i);
readEmployee.addProject(newProject);
uow.commit();
}
} catch (Throwable t) {
t.printStackTrace();
exception = t;
}
}
}