Ejemplo n.º 1
0
 /**
  * Reads a string from a reader.
  *
  * @param reader the reader to be read.
  * @return a string read from the specified reader.
  * @throws IOException if there is IO error occurred during the operation.
  */
 public static String readString(Reader reader) throws IOException {
   StringWriter writer = new StringWriter();
   pipe(reader, writer);
   String s = writer.toString();
   writer.close();
   return s;
 }
Ejemplo n.º 2
0
 /**
  * Reads an array of bytes from an input stream.
  *
  * @param ins the input stream to be read.
  * @return an array of bytes read from the specified input stream.
  * @throws IOException if there is IO error occurred during the operation.
  */
 public static byte[] readBytes(InputStream ins) throws IOException {
   ByteArrayOutputStream out = new ByteArrayOutputStream(ins.available());
   pipe(ins, out);
   byte[] bytes = out.toByteArray();
   out.close();
   return bytes;
 }
Ejemplo n.º 3
0
 /**
  * Reads an array of bytes from a reader.
  *
  * @param reader the reader to be read.
  * @param charset the charset used to convert the characters.
  * @return an array of bytes read from the specified reader.
  * @throws IOException if there is IO error occurred during the operation.
  */
 public static byte[] readBytes(Reader reader, Charset charset) throws IOException {
   ByteArrayOutputStream out = new ByteArrayOutputStream();
   OutputStreamWriter writer = new OutputStreamWriter(out, charset);
   pipe(reader, writer);
   byte[] bytes = out.toByteArray();
   writer.close();
   out.close();
   return bytes;
 }
Ejemplo n.º 4
0
 /**
  * Writes an array of bytes to a writer.
  *
  * @param bytes an array of bytes to write.
  * @param writer to writer to be written.
  * @param charset the charset used to convert the bytes.
  * @throws IOException if there is IO error occurred during the operation.
  */
 public static void writeBytes(byte[] bytes, Writer writer, Charset charset) throws IOException {
   ByteArrayInputStream ins = new ByteArrayInputStream(bytes);
   InputStreamReader reader;
   if (charset == null) {
     reader = new InputStreamReader(ins);
   } else {
     reader = new InputStreamReader(ins, charset);
   }
   pipe(reader, writer);
   reader.close();
   ins.close();
 }
Ejemplo n.º 5
0
 /**
  * Writes a string to a writer.
  *
  * @param s the string to write.
  * @param writer the writer to be written.
  * @throws IOException if there is IO error occurred during the operation.
  */
 public static void writeString(String s, Writer writer) throws IOException {
   StringReader reader = new StringReader(s);
   pipe(reader, writer);
   reader.close();
 }
Ejemplo n.º 6
0
 /**
  * Writes an array of bytes to an output stream.
  *
  * @param bytes an array of bytes to write.
  * @param out the output stream to be written.
  * @throws IOException if there is IO error occurred during the operation.
  */
 public static void writeBytes(byte[] bytes, OutputStream out) throws IOException {
   ByteArrayInputStream ins = new ByteArrayInputStream(bytes);
   pipe(ins, out);
   ins.close();
 }
Ejemplo n.º 7
0
  /** The main method is for CLI mode. */
  public static void main(String[] args) {
    try {
      java.io.PrintStream out = System.out;

      if (args.length < 2) {
        out.println("Usage: as2-envelop [config-xml] [log-path]");
        out.println();
        out.println(
            "Example: as2-envelop ./config/as2-envelop/as2-request.xml ./logs/as2-envelop.log");
        System.exit(1);
      }

      out.println("------------------------------------------------------");
      out.println("       AS2 Envelop Queryer       ");
      out.println("------------------------------------------------------");

      // Initialize the logger.
      out.println("Initialize logger .. ");
      // The logger path is specified at the last argument.
      FileLogger logger = new FileLogger(new File(args[args.length - 1]));

      // Initialize the query parameter.
      out.println("Importing AS2 administrative sending parameters ... ");
      AS2AdminData acd =
          DataFactory.getInstance()
              .createAS2AdminDataFromXML(new PropertyTree(new File(args[0]).toURI().toURL()));

      boolean historyQueryNeeded = false;
      AS2MessageHistoryRequestData queryData = new AS2MessageHistoryRequestData();
      if (acd.getMessageIdCriteria() == null || acd.getMessageIdCriteria().trim().equals("")) {

        historyQueryNeeded = true;

        // print command prompt
        out.println("No messageID was specified!");
        out.println("Start querying message repositry ...");

        String endpoint = acd.getEnvelopQueryEndpoint();
        String host = endpoint.substring(0, endpoint.indexOf("/corvus"));
        host += "/corvus/httpd/as2/msg_history";
        queryData.setEndPoint(host);
      } /*
        	If the user has entered message id but no messagebox,
        	using the messageid as serach criteria and as
        	user to chose his target message
        */ else if (acd.getMessageBoxCriteria() == null
          || acd.getMessageBoxCriteria().trim().equals("")) {

        historyQueryNeeded = true;

        // print command prompt
        out.println("Message Box value haven't specified.");
        out.println(
            "Start query message whcih matched with messageID: " + acd.getMessageIdCriteria());

        String endpoint = acd.getEnvelopQueryEndpoint();
        String host = endpoint.substring(0, endpoint.indexOf("/corvus"));
        host += "/corvus/httpd/as2/msg_history";

        queryData.setEndPoint(host);
        queryData.setMessageId(acd.getMessageIdCriteria());
      }
      // Debug Message
      System.out.println("history Endpoint: " + queryData.getEndPoint());
      System.out.println("Repositry Endpoint: " + acd.getEnvelopQueryEndpoint());

      if (historyQueryNeeded) {
        List msgList = listAvailableMessage(queryData, logger);

        if (msgList == null || msgList.size() == 0) {
          out.println();
          out.println();
          out.println("No stream data found in repositry...");
          out.println("Please view log for details .. ");
          return;
        }

        int selection = promptForSelection(msgList);

        if (selection == -1) {
          return;
        }

        String messageID = (String) ((List) msgList.get(selection)).get(0);
        String messageBox = (String) ((List) msgList.get(selection)).get(1);
        acd.setMessageIdCriteria(messageID);
        acd.setMessageBoxCriteria(messageBox.toUpperCase());
        out.println();
        out.println();
        out.println("Start download targeted message envelop ...");
      }

      // Initialize the sender.
      out.println("Initialize AS2 HTTP data service client... ");
      AS2EnvelopQuerySender sender = new AS2EnvelopQuerySender(logger, acd);

      out.println("Sending    AS2 HTTP Envelop Query request ... ");
      sender.run();

      out.println();
      out.println("                    Sending Done:                   ");
      out.println("----------------------------------------------------");
      out.println("The Message Envelope : ");
      InputStream eins = sender.getEnvelopStream();
      if (eins.available() == 0) {
        out.println("No stream data found.");
        out.println(
            "The message envelop does not exist for message id "
                + sender.getMessageIdToDownload()
                + " and message box "
                + sender.getMessageBoxToDownload());
      } else IOHandler.pipe(sender.getEnvelopStream(), out);

      out.println("Please view log for details .. ");
    } catch (Exception e) {
      e.printStackTrace(System.err);
    }
  }