home *** CD-ROM | disk | FTP | other *** search
Java Source | 1997-01-27 | 2.2 KB | 74 lines |
- /*
- * @(#)MimeLauncher.java 1.11 95/08/22 James Gosling
- *
- * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for NON-COMMERCIAL purposes and without fee is hereby
- * granted provided that this copyright notice appears in all copies. Please
- * refer to the file "copyright.html" for further important copyright and
- * licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
- * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
- * OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
- * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR
- * ITS DERIVATIVES.
- */
-
- package sun.net.www;
- import java.net.URL;
- import java.io.*;
-
- class MimeLauncher extends Thread {
- java.net.URLConnection uc;
- MimeEntry m;
- String GenericTempTemplate;
-
- MimeLauncher (MimeEntry M, java.net.URLConnection uc, String gtt,
- String name) {
- super(name);
- m = M;
- this.uc = uc;
- GenericTempTemplate = gtt;
- }
-
- public void run() {
- try {
- InputStream is = uc.getInputStream();
- String c = m.command;
- int inx = 0;
- boolean substituted = false;
- String ofn = m.TempNameTemplate;
- if (ofn == null)
- ofn = GenericTempTemplate;
- while ((inx = ofn.indexOf("%s")) >= 0)
- ofn = ofn.substring(0, inx) + (System.currentTimeMillis() / 1000) + ofn.substring(inx + 2);
- try {
- OutputStream os = new FileOutputStream(ofn);
- byte buf[] = new byte[2048];
- int i;
- try {
- while ((i = is.read(buf)) >= 0)
- os.write(buf, 0, i);
- } catch(IOException e) {
- }
- os.close();
- } catch(IOException e) {
- }
- is.close();
- while ((inx = c.indexOf("%t")) >= 0)
- c = c.substring(0, inx) + uc.getContentType() + c.substring(inx + 2);
- while ((inx = c.indexOf("%s")) >= 0) {
- c = c.substring(0, inx) + ofn + c.substring(inx + 2);
- substituted = true;
- }
- if (!substituted)
- c = c + " <" + ofn;
- Runtime.getRuntime().exec(c);
- } catch(IOException e) {
- }
- }
- }
-