/*
* JBoss, Home of Professional Open Source
* Copyright 2009, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt 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 GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* 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 GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General 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 com.arjuna.ats.jta.distributed;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.xa.XAResource;
import org.jboss.tm.XAResourceRecovery;
public class TestResourceRecovery implements XAResourceRecovery {
private String nodeName;
public TestResourceRecovery(String nodeName) {
this.nodeName = nodeName;
System.out.println("[" + Thread.currentThread().getName() + "] TestResourceRecovery (" + nodeName + ")");
}
@Override
public XAResource[] getXAResources() throws RuntimeException {
List<TestResource> resources = new ArrayList<TestResource>();
File file = new File(System.getProperty("user.dir") + "/distributedjta-tests/TestResource/" + nodeName + "/");
if (file.exists() && file.isDirectory()) {
File[] listFiles = file.listFiles();
for (int i = 0; i < listFiles.length; i++) {
File currentFile = listFiles[i];
if (currentFile.getAbsolutePath().endsWith("_")) {
try {
resources.add(new TestResource(nodeName, currentFile));
} catch (IOException e) {
throw new RuntimeException (e);
}
System.out.println("[" + Thread.currentThread().getName() + "] TestResourceRecovery (" + nodeName + ") Added TestResource: " + currentFile.getName());
}
}
}
System.out.println("[" + Thread.currentThread().getName() + "] TestResourceRecovery (" + nodeName + ") returning list of TestResources of length: " + resources.size());
return resources.toArray(new XAResource[] {});
}
}