com.ibm.as400.util.commtrace.FormatRemote Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: FormatRemote.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 2002 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.util.commtrace;
import com.ibm.as400.access.AS400;
import com.ibm.as400.access.Trace;
import com.ibm.as400.access.AS400Message;
import com.ibm.as400.access.JavaApplicationCall;
import com.ibm.as400.vaccess.FileFilter;
import com.ibm.as400.vaccess.IFSFileDialog;
import java.awt.Cursor;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* Used to remotely format a trace residing in an IFS directory.
*/
class FormatRemote implements Runnable {
private String classpath_ = "/QIBM/ProdData/OS400/JT400/lib/JT400Native.jar";
private Thread fmtThread;
private JavaApplicationCall jaCall;
public static final String EXT = ".bin", CLASS="FormatRemote";
private AS400 sys;
private String file = null,
path = null,
filterIPaddr_= null,
filterIPaddr2_= null,
filterPort_= null,
filterBdcst_= null;
private String verbose_;
private CommTrace com_;
/**
* Constructs a FormatRemote object.
* @param sys The system to connect to.
* @param verbose The verbosity of this format.
* @param filterIPaddr The IP address to filter on.
* @param filterIPaddr2 The second IP address to filter on.
* @param filterPort The port to filter on.
* @param filterBdcst Filter broadcast or not.
* @param com This CommTrace object.
*/
public FormatRemote(
AS400 sys,
String verbose,
String filterIPaddr,
String filterIPaddr2,
String filterPort,
String filterBdcst,
CommTrace com) {
try {
this.sys = sys;
filterIPaddr_=filterIPaddr;
filterIPaddr2_=filterIPaddr2;
filterPort_=filterPort;
filterBdcst_=filterBdcst;
verbose_ = verbose;
com_ = com;
// Construct a JavaApplicationCall object.
jaCall = new JavaApplicationCall(sys);
// Set the Java application to be run.
jaCall.setJavaApplication("com.ibm.as400.util.commtrace.Format");
// Set the classpath environment variable used by the system's
// JVM so it can find the class to run.
jaCall.setClassPath(
classpath_);
} catch (Exception e) {
if (Trace.isTraceOn() && Trace.isTraceErrorOn()) {
Trace.log(Trace.ERROR,CLASS + ".FormatRemote() " + "Exception in FormatRemote", e);
}
}
}
/**
* returns the currently running format Thread.
* @return Thread
*/
public Thread getThread() {
return fmtThread;
}
/**
* Sets the thread.
* @param tr The thread this object is running under.
*/
public void setThread(Thread tr) {
fmtThread = tr;
}
/**
* Returns the file choosen by the user.
* @return String
*/
public String getFile() {
return file;
}
/**
* Returns the path choosen by the user.
* @return String
*/
public String getPath() {
return path;
}
/**
* Runs the FormatClient which queries the user for a file and then.
* sends the filename to the FormatServer and waits for it to return.
*/
public void run() {
Thread myThread = Thread.currentThread();
while (fmtThread == myThread) {
IFSFileDialog fd =
new IFSFileDialog((new JFrame()), "Pick file to Format", sys);
FileFilter[] filterList = { new FileFilter(ResourceBundleLoader_ct.getText("AllFiles"), "*.*")};
fd.setFileFilter(filterList, 0);
String fullpath = "";
try {
if (fd.showDialog() == IFSFileDialog.OK) {
String host = sys.getSystemName();
fullpath = fd.getAbsolutePath(); // get fully qualified filename
file = fd.getFileName();
path = fd.getDirectory();
String[] args2 =
{ "-c", "true", "-v", verbose_, "-t", fullpath, "-o", fullpath + EXT, "-ip", filterIPaddr_, "-ip2", filterIPaddr2_, "-port", filterPort_, "-broadcast", filterBdcst_};
jaCall.setParameters(args2);
// Start the thread that will receive standard output
if (verbose_.equals("true")) {
OutputThread ot = new OutputThread(jaCall);
Thread otThread = new Thread(ot, "OutputThread");
ot.setThread(otThread);
otThread.start();
}
// Start the program. The call to run() will not return
// until the system Java program completes. If the Toolbox
// cannot start the Java program, false is returned with
// a list of AS400Message objects indicating why the program
// could not start.
if(com_!=null) {
((Component) CommTrace.getMainFrame()).setCursor(
new Cursor(Cursor.WAIT_CURSOR));
}
if (jaCall.run() != true) {
AS400Message[] messageList = jaCall.getMessageList();
for (int msg = 0; msg < messageList.length; msg++)
Trace.log(Trace.ERROR,CLASS + ".run() " + (messageList[msg].toString()));
}
if(com_!=null) {
((Component) CommTrace.getMainFrame()).setCursor(
new Cursor(Cursor.DEFAULT_CURSOR));
JOptionPane.showMessageDialog(
CommTrace.getMainFrame(),
"Format of " + fullpath + " on " + host + " compeleted",
"Format Complete",
JOptionPane.INFORMATION_MESSAGE);
}
}
} catch (Exception e) {
if (Trace.isTraceOn() && Trace.isTraceErrorOn()) {
Trace.log(Trace.ERROR,CLASS + ".run() " + "Exception in FormatRemote", e);
}
}
fmtThread = null; // End this thread
if(com_!=null) {
com_.open(); // Call the open function to open the file we just formatted
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// the VM doesn't want us to sleep anymore,
// so get back to work
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy