/* * IronJacamar, a Java EE Connector Architecture implementation * Copyright 2015, Red Hat Inc, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the Eclipse Public License 1.0 as * published by the Free Software Foundation. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse * Public License for more details. * * You should have received a copy of the Eclipse Public License * along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.ironjacamar.core.workmanager.support; import javax.resource.spi.work.Work; import javax.resource.spi.work.WorkAdapter; import javax.resource.spi.work.WorkEvent; import javax.resource.spi.work.WorkException; import static org.junit.Assert.*; /** * ContextWorkAdapter * * @author <a href="mailto:vrastsel@redhat.com">Vladimir Rastseluev</a> */ public class ContextWorkAdapter extends WorkAdapter { /**timestamp for check*/ private long timeAccepted = 0; /**timestamp for check*/ private long timeStarted = 0; /**timestamp for check*/ private long timeRejected = 0; /**timestamp for check*/ private long timeCompleted = 0; /** exception */ private WorkException exception = null; /** * start string buffer */ private StringBuffer start = new StringBuffer(); /** * done string buffer */ private StringBuffer done = new StringBuffer(); /** * reject string buffer */ private StringBuffer reject = new StringBuffer(); /** * accept work * * @param e workEvent */ @Override public void workAccepted(WorkEvent e) { if (e.getType() != WorkEvent.WORK_ACCEPTED) fail("Wrong accepted type"); timeAccepted = System.currentTimeMillis(); super.workAccepted(e); } /** * start work * * @param e workEvent */ @Override public void workStarted(WorkEvent e) { if (e.getType() != WorkEvent.WORK_STARTED) fail("Wrong started type"); timeStarted = System.currentTimeMillis(); super.workStarted(e); Work work = e.getWork(); if (work instanceof NestProviderWork) { NestProviderWork nw = (NestProviderWork) work; start.append(nw.getName()); } } /** * start work * * @param e workEvent */ @Override public void workRejected(WorkEvent e) { if (e.getType() != WorkEvent.WORK_REJECTED) fail("Wrong rejected type"); timeRejected = System.currentTimeMillis(); super.workRejected(e); Work work = e.getWork(); if (work instanceof NestProviderWork) { NestProviderWork nw = (NestProviderWork) work; reject.append(nw.getName()); } } /** * complete work * * @param e workEvent */ @Override public void workCompleted(WorkEvent e) { if (e.getType() != WorkEvent.WORK_COMPLETED) fail("Wrong completed type"); timeCompleted = System.currentTimeMillis(); super.workCompleted(e); Work work = e.getWork(); if (work instanceof NestProviderWork) { NestProviderWork nw = (NestProviderWork) work; done.append(nw.getName()); exception = e.getException(); } } /** * getter * @return timestamp */ public long getTimeAccepted() { return timeAccepted; } /** * getter * @return timestamp */ public long getTimeStarted() { return timeStarted; } /** * getter * @return timestamp */ public long getTimeRejected() { return timeRejected; } /** * getter * @return timestamp */ public long getTimeCompleted() { return timeCompleted; } /** * getter * @return start buffer */ public String getStart() { return start.toString(); } /** * getter * @return done buffer */ public String getDone() { return done.toString(); } /** * getter * @return reject buffer */ public String getReject() { return reject.toString(); } /** * getter * @return exception */ public WorkException getException() { return exception; } }