aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/Ivy.java2
-rw-r--r--src/Makefile2
-rwxr-xr-xsrc/TestIvy.java127
-rw-r--r--src/TestIvySwing.java243
4 files changed, 2 insertions, 372 deletions
diff --git a/src/Ivy.java b/src/Ivy.java
index f5e32e2..fc0a613 100755
--- a/src/Ivy.java
+++ b/src/Ivy.java
@@ -43,7 +43,7 @@ public class Ivy implements Runnable, IvyApplicationListener {
/**
* the library version
*/
- public static String libVersion ="1.0.10";
+ public static String libVersion ="1.0.11";
private boolean debug;
private static int serial=0; /* an unique ID for each regexp */
diff --git a/src/Makefile b/src/Makefile
index c5e5060..6a3d19c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -5,7 +5,7 @@ JAVACOPTS = -d . -deprecation
SRCS = *.java
OBJS = $(SRCS:.java=.class)
JAR = ../lib/Ivy.jar
- VER = 1.0.10
+ VER = 1.0.11
DIST = ../lib/ivy-java-$(VER).jar
JAVAC = jikes
#JAVAC = javac
diff --git a/src/TestIvy.java b/src/TestIvy.java
deleted file mode 100755
index 802f982..0000000
--- a/src/TestIvy.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package fr.dgac.ivy ;
-
-import java.awt.* ;
-import java.awt.event.* ;
-
-/**
- * toy tool to probe the Ivy software bus.
- * it relies on the AWT, and is less useable than TestIvySwing, which should
- * be preferred.
- *
- * @see fr.dgac.ivy.TestIvySwing
- * @author François-Régis Colin
- * @author Yannick Jestin
- * @author <a href="http://www.tls.cena.fr/products/ivy/">http://www.tls.cena.fr/products/ivy/</a>
- *
- * CHANGELOG
- * 1.0.10:
- * - System.exit on bus die
- */
-
-class TestIvy extends Panel implements IvyApplicationListener {
- private Ivy bus ;
- private String regexp="";
- private TextField tfRegex, tfSend ;
- private TextArea ta ;
- private Button buApply, buSend, buClear ;
- private java.text.SimpleDateFormat format = new
- java.text.SimpleDateFormat("hh:mm:ss");
- private int regexp_id;
-
- public TestIvy() throws IvyException {
- super(new BorderLayout());
- ta = new TextArea();
- ta.setEditable(false);
- add(ta,BorderLayout.CENTER);
- Panel p = new Panel(new BorderLayout());
- p.add(new Label("Regex:"),BorderLayout.WEST);
- tfRegex = new TextField(regexp);
- tfRegex.addActionListener(new REGCB());
- p.add(tfRegex,BorderLayout.CENTER);
- add(p,BorderLayout.NORTH);
- p = new Panel(new BorderLayout());
- p.add(new Label("Msg:"),BorderLayout.WEST);
- tfSend = new TextField("");
- tfSend.addActionListener(new SENDCB());
- p.add(tfSend,BorderLayout.CENTER);
- add(p,BorderLayout.SOUTH);
- bus = new Ivy("JAVATESTBUS","Testbus is ready",this);
- bus.start(null);
- append( "Ivy Domain: "+ bus.getDomain(null) );
- }
-
- public static Frame f;
-
- public static void main(String[] args) throws IvyException {
- TestIvy tb = new TestIvy();
- f = new Frame("TestIvy");
- f.addWindowListener( tb.new WCCB(f,tb)) ;
- f.add(tb, BorderLayout.CENTER);
- f.pack();
- f.setVisible(true);
- }
-
- public void connect(IvyClient client) {
- append(client.getApplicationName() + " connected " );
- }
-
- public void disconnect(IvyClient client) {
- append(client.getApplicationName() + " disconnected " );
- }
- public void die(IvyClient client, int id) {
- f.dispose();
- System.exit(0);
- }
- public void directMessage(IvyClient client, int id, String arg) {
- append(client.getApplicationName() + " direct Message "+ id + arg );
- }
-
- class REGCB implements ActionListener, IvyMessageListener {
- public void actionPerformed(ActionEvent e) {
- try {
- bus.unBindMsg(regexp_id);
- } catch (IvyException ie) {
- System.out.println("Big badaboum"); // this should not happen
- }
- regexp=tfRegex.getText();
- regexp.trim();
- regexp_id = bus.bindMsg(regexp,this);
- tfRegex.setText("");
- }
- public void receive(IvyClient client, String[] args) {
- String out="client " + client.getApplicationName() + " envoie: [ ";
- for (int i=0;i<args.length;i++)
- out=out+args[i]+ ((i<args.length-1)?" , ":"");
- out = out + " ]";
- append(out);
- }
- }
-
- class SENDCB implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- int count;
- String tosend = tfSend.getText();
- tfSend.setText("");
- count = bus.sendMsg(tosend);
- append("Sending '" + tosend + "' count " + count );
- }
- }
-
- private void append(String s) {
- ta.append("[" + format.format(new java.util.Date()) + "] "+ s + "\n");
- }
-
- class WCCB extends WindowAdapter {
- private Frame f;
- public WCCB(Frame f, TestIvy b) { this.f=f; }
- public void windowClosing(WindowEvent e) {
- f.setVisible(false);
- bus.stop();
- bus = null;
- f.dispose();
- System.exit(0);
- }
- }
-
-} // class TestIvy
-// EOF
diff --git a/src/TestIvySwing.java b/src/TestIvySwing.java
deleted file mode 100644
index ed61741..0000000
--- a/src/TestIvySwing.java
+++ /dev/null
@@ -1,243 +0,0 @@
-package fr.dgac.ivy ;
-
-import java.awt.BorderLayout;
-import java.awt.event.*;
-import javax.swing.* ;
-import gnu.getopt.Getopt ;
-
-/**
- * toy tool to probe the Ivy software bus.
- * it relies on the Swing toolkit, which is not standard on jdk1.1 platform.
- * if you don't have jdk1.2 or swing, consider downloading it. You can also
- * use TestIvy
- *
- * @see fr.dgac.ivy.TestIvy
- * @author François-Régis Colin
- * @author Yannick Jestin
- * @author <a href="http://www.tls.cena.fr/products/ivy/">http://www.tls.cena.fr/products/ivy/</a>
- */
-class TestIvySwing extends JPanel implements IvyApplicationListener {
-
- /**
- * help message for the standalone program
- */
- public static final String helpmsg = "usage: java fr.dgac.ivy.TestIvySwing [options]\n\t-b BUS\tspecifies the Ivy bus domain\n\t-q\tquiet, no tty output\n\t-d\tdebug\n\t-h\thelp\n";
- public static final int WIDTH=30;
- public static final int HEIGHT=30;
-
- private static int index;
- private static int nbTIS=0;
- private String localname;
- private Ivy bus ;
- private String domain;
- private String regexp = "(.*)";
- private JLabel laRegex;
- private JTextArea ta ;
- private JTextField tfRegex, tfSend ;
- private JButton buApply, buSend, buClear ;
- private JComboBox ports;
- private int regexp_id;
- private REGCB reg;
- private java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("hh:mm:ss");
- private static String[] startDomainList = {
- "127.255.255.255:2010",
- "10.192.36:3110",
- "10.0.0:54321",
- "228.1.2.4:4567",
- };
- private static java.util.Vector domainList;
-
- static {
- // initialize the domainlist
- domainList = new java.util.Vector();
- for (int i = 0; i<startDomainList.length;i++)
- domainList.add(startDomainList[i]);
- }
-
- public static void main(String[] args) throws IvyException {
- String domain="127.255.255.255:2010";
- Getopt opt = new Getopt("Counter",args,"b:dhq");
- int c;
- boolean quiet=false;
- while ((c=opt.getopt()) != -1 ) switch(c) {
- case 'q':
- quiet=true;
- break;
- case 'b':
- domain=opt.getOptarg();
- break;
- case 'd':
- System.setProperty("IVY_DEBUG","yesla!");
- break;
- case 'h':
- default:
- System.out.println(helpmsg);
- System.exit(0);
- }
- newTestIvy(domain);
- }
-
- private TestIvySwing(String domain) throws IvyException {
- super(new BorderLayout());
- this.domain=domain;
- nbTIS++;
- ta = new JTextArea(WIDTH,HEIGHT);
- ta.setEditable(false);
- add(new JScrollPane(ta),BorderLayout.CENTER);
- JPanel p = new JPanel(new BorderLayout());
- p.add(new JLabel("Regex:"),BorderLayout.WEST);
- tfRegex = new JTextField();
- tfRegex.addActionListener(reg=new REGCB());
- p.add(tfRegex,BorderLayout.CENTER);
- p.add(laRegex=new JLabel(regexp),BorderLayout.EAST);
- add(p,BorderLayout.NORTH);
- JPanel p2 = new JPanel(new BorderLayout());
- p2.add(new JLabel("Msg:"),BorderLayout.WEST);
- tfSend = new JTextField("");
- tfSend.addActionListener(new SENDCB());
- p2.add(tfSend,BorderLayout.CENTER);
- p.add(p2,BorderLayout.SOUTH);
- JButton tmpb ;
- (p = new JPanel()).add(tmpb=new JButton("spawn"));
- tmpb.addActionListener(new SPAWN(domain));
- p.add(tmpb=new JButton("clear"));
- tmpb.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- ta.setText("");
- }
- });
- ports=new JComboBox();
- ports.setEditable(true);
- int index=0;
- for (java.util.Enumeration e=domainList.elements();e.hasMoreElements();index++) {
- String port = (String) e.nextElement();
- ports.addItem(port);
- if (port == domain ) { ports.setSelectedIndex(index); }
- }
- ports.addActionListener(new ComboCB());
- p.add(ports);
- add(p,BorderLayout.SOUTH);
- tfRegex.setNextFocusableComponent(tfSend);
- tfSend.setNextFocusableComponent(tfRegex);
- tfSend.setRequestFocusEnabled(true);
- localname = "TestIvySwing "+Ivy.libVersion+" ("+index+")";
- index++;
- bus = new Ivy(localname,localname+" ready",this);
- regexp_id = bus.bindMsg(regexp,reg);
- bus.start(domain);
- append( "Ivy Domain: "+ bus.getDomain(domain) );
- }
-
- public void connect(IvyClient client) {
- append(client.getApplicationName() + " connected " );
- }
-
- public void disconnect(IvyClient client) {
- append(client.getApplicationName() + " disconnected " );
- }
-
- public void die(IvyClient client, int id) {
- append(client.getApplicationName() + " die "+ id );
- }
-
- public void directMessage(IvyClient client, int id, String arg) {
- append(client.getApplicationName() + " direct Message "+ id + arg );
- }
-
- private class ComboCB implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- String newDomain=(String)ports.getSelectedItem();
- if (newDomain == domain) {
- // if it's the same domain, don't do anything
- return;
- }
- domain=newDomain;
- try {
- append( "deconnexion from domain "+ bus.getDomain(null));
- } catch ( IvyException ie ) {
- System.err.println("deconnexion failed");
- }
- bus.stop();
- try {
- bus.start(newDomain);
- append( "Ivy Domain: "+ newDomain );
- } catch (IvyException ie ) {
- System.err.println("auuuugh "+newDomain);
- }
- }
- } // ComboCB
-
- private class REGCB implements ActionListener, IvyMessageListener {
- public void actionPerformed(ActionEvent e) {
- try {
- bus.unBindMsg(regexp_id);
- } catch (IvyException ie) {
- System.out.println("big badaboum"); // this cannot happen
- }
- regexp=tfRegex.getText();
- regexp.trim();
- regexp_id = bus.bindMsg(regexp,this);
- tfRegex.setText("");
- laRegex.setText(regexp);
- }
- public void receive(IvyClient client, String[] args) {
- String out="client " + client.getApplicationName() + " envoie: [ ";
- for (int i=0;i<args.length;i++) {
- out+=args[i]+ ((i<args.length-1)?" , ":"");
- }
- out+=" ]";
- append(out);
- }
- }
-
- private class SENDCB implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- int count;
- String tosend = tfSend.getText();
- tfSend.setText("");
- if ( (count = bus.sendMsg(tosend)) != 0 )
- append("Sending '" + tosend + "' count " + count );
- else
- append("not Sending '" + tosend + "' nobody cares");
- }
- }
-
- private void append(String s) {
- ta.insert("[" + format.format(new java.util.Date()) + "] "+ s + "\n",0);
- }
-
- private static void newTestIvy(String domain) throws IvyException {
- TestIvySwing tb = new TestIvySwing(domain);
- JFrame f = new JFrame(tb.localname);
- f.addWindowListener( tb.new WCCB(f,tb)) ;
- f.getContentPane().add(tb, BorderLayout.CENTER);
- f.pack();
- f.setVisible(true);
- }
-
- private class WCCB extends WindowAdapter {
- private JFrame f;
- public WCCB(JFrame f, TestIvySwing b) { this.f=f; }
- public void windowClosing(WindowEvent e) {
- bus.stop();
- f.dispose();
- // I leave when the last TestIvySwing exits
- if (--nbTIS == 0) System.exit(0);
- }
- public void windowActivated(WindowEvent e) {tfSend.grabFocus();}
- }
-
- private class SPAWN implements ActionListener {
- private String domain;
- public SPAWN(String domain) {this.domain=domain;}
- public void actionPerformed(ActionEvent e) {
- try {
- newTestIvy(domain);
- } catch (IvyException ie) {
- ie.printStackTrace();
- }
- }
- }
-
-} // class TestIvySwing
-// EOF