Hi, 2 questions:
1) why do call yourself Sisyphus? Is it really all for meaningless, endless :) 2) I'd like to call some perl from a running Java process. I'm using a vendor api and framework to build custom code. The way it works is I have to write some java (see below), then compile within Eclipse using a supplied Ant xml, which turns my code into a Jar that is deployed onto the server. The vendor's Java app reads a DB that indicates where the Jar is located and the class and method to call under various situations. I've written a Inline::Java callback in the past, but it was initiated via Perl. That is, I launched a perl process, that then instantiated some Java that in turn called back into the perl. In reading the callback docs I can't seem to grok how to make it all happen from Java and my Jar correctly. Below is the code. Any guidance would be hugely appreciated. Thanks Jay // this is just some test code // that doesn't really do anything but write to a file package com.my.stuff; import java.io.*; import vendorapi.mpi.*; import vendorapi.handler.*; import java.util.Map; import java.util.Date; import java.text.SimpleDateFormat; public class FileHandler extends HandlerExtBase { // Class-specific members used as keys in the handlerArgs to identify // the pre and post-ixn filename(s) private static final String ARG_PREFILENAME = "preFileName"; private static final String ARG_POSTFILENAME = "postFileName"; // Instance-specific members initialized during the overridden init() method private String preFileName = null; private String postFileName = null; public void init(Context ctx, String handlerArgs) { Map<?, ?> argsMap = parseArgs(handlerArgs); String madHomeDir = System.getenv("MAD_HOMEDIR"); // Create the pre- and post- files in the MAD_HOMEDIR directory if (argsMap.containsKey(ARG_PREFILENAME)) { preFileName = madHomeDir + File.separator + "log" + File.separator + (String)argsMap.get(ARG_PREFILENAME); } if (argsMap.containsKey(ARG_POSTFILENAME)) { postFileName = madHomeDir + File.separator + "log" + File.separator + (String)argsMap.get(ARG_POSTFILENAME); } } protected void writeFile(String fileName, RowList rowList) { Date todaysDate = new java.util.Date(); SimpleDateFormat formatter = new SimpleDateFormat(); String formattedDate = formatter.format(todaysDate); PrintWriter out = null; try { out = new PrintWriter(new BufferedWriter(new FileWriter("c:\\" + formattedDate + ".txt"))); out.println(formattedDate); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // // I'd like to call Perl at this point and have Perl be // able to access the RowList instance, so Perl could walk // the list. As opposed to flattening the list in someway // and shelling out and passing in the flattened list // // public void preIxn(IService service) throws CallbackHandlerException { if (preFileName != null) { writeFile(preFileName, service.getInpMemRowList()); } } public void postIxn(IService service) throws CallbackHandlerException { if (postFileName != null) { writeFile(postFileName, service.getOutMemRowList()); } } }