Example usage for java.net URLConnection URLConnection

List of usage examples for java.net URLConnection URLConnection

Introduction

In this page you can find the example usage for java.net URLConnection URLConnection.

Prototype

protected URLConnection(URL url) 

Source Link

Document

Constructs a URL connection to the specified URL.

Usage

From source file:org.calrissian.mango.jms.stream.JmsFileTransferSupportTest.java

public void testFullCycle() throws Exception {
    try {//from w  ww. j  a  va2s . co m
        URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {

            @Override
            public URLStreamHandler createURLStreamHandler(String protocol) {
                if ("testprot".equals(protocol))
                    return new URLStreamHandler() {

                        @Override
                        protected URLConnection openConnection(URL u) throws IOException {
                            return new URLConnection(u) {

                                @Override
                                public void connect() throws IOException {

                                }

                                @Override
                                public InputStream getInputStream() throws IOException {
                                    return new ByteArrayInputStream(TEST_STR.getBytes());
                                }

                                @Override
                                public String getContentType() {
                                    return "content/notnull";
                                }
                            };
                        }
                    };
                return null;
            }
        });
    } catch (Error ignored) {
    }

    final ActiveMQTopic ft = new ActiveMQTopic("testFileTransfer");

    ThreadPoolTaskExecutor te = new ThreadPoolTaskExecutor();
    te.initialize();

    JmsFileSenderListener listener = new JmsFileSenderListener();
    final String hashAlgorithm = "MD5";
    listener.setHashAlgorithm(hashAlgorithm);
    listener.setStreamRequestDestination(ft);
    listener.setPieceSize(9);
    listener.setTaskExecutor(te);

    ConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
    cf = new SingleTopicConnectionFactory(cf, "test");
    JmsTemplate jmsTemplate = new JmsTemplate();
    jmsTemplate.setConnectionFactory(cf);
    jmsTemplate.setReceiveTimeout(60000);
    listener.setJmsTemplate(jmsTemplate);

    Connection conn = cf.createConnection();
    conn.start();
    Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = sess.createConsumer(ft);
    consumer.setMessageListener(listener);

    JmsFileReceiver receiver = new JmsFileReceiver();
    receiver.setHashAlgorithm(hashAlgorithm);
    receiver.setStreamRequestDestination(ft);
    receiver.setJmsTemplate(jmsTemplate);
    receiver.setPieceSize(9);

    JmsFileReceiverInputStream stream = (JmsFileReceiverInputStream) receiver.receiveStream("testprot:test");
    StringBuilder buffer = new StringBuilder();
    int read;
    while ((read = stream.read()) >= 0) {
        buffer.append((char) read);
    }
    stream.close();

    assertEquals(TEST_STR, buffer.toString());

    conn.stop();

}

From source file:com.samczsun.helios.bootloader.Bootloader.java

private static void loadSWTLibrary()
        throws IOException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
    String name = getOSName();/*from w  w  w . j a  v a2s. c  o  m*/
    if (name == null)
        throw new IllegalArgumentException("Cannot determine OS");
    String arch = getArch();
    if (arch == null)
        throw new IllegalArgumentException("Cannot determine architecture");

    String swtLocation = "/swt/org.eclipse.swt." + name + "." + arch + "-" + Constants.SWT_VERSION + ".jar";

    System.out.println("Loading SWT version " + swtLocation.substring(5));

    InputStream swtIn = Bootloader.class.getResourceAsStream(swtLocation);
    if (swtIn == null)
        throw new IllegalArgumentException("SWT library not found");
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    IOUtils.copy(swtIn, outputStream);
    ByteArrayInputStream swt = new ByteArrayInputStream(outputStream.toByteArray());

    URL.setURLStreamHandlerFactory(protocol -> { //JarInJar!
        if (protocol.equals("swt")) {
            return new URLStreamHandler() {
                protected URLConnection openConnection(URL u) {
                    return new URLConnection(u) {
                        public void connect() {
                        }

                        public InputStream getInputStream() {
                            return swt;
                        }
                    };
                }

                protected void parseURL(URL u, String spec, int start, int limit) {
                    // Don't parse or it's too slow
                }
            };
        }
        return null;
    });

    ClassLoader classLoader = Bootloader.class.getClassLoader();
    Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
    method.setAccessible(true);
    method.invoke(classLoader, new URL("swt://load"));

    System.out.println("Loaded SWT Library");
}

From source file:com.heliosdecompiler.helios.bootloader.Bootloader.java

private static byte[] loadSWTLibrary() throws IOException, NoSuchMethodException, IllegalAccessException,
        InvocationTargetException, ClassNotFoundException {
    String name = getOSName();/*ww w. jav  a  2  s .com*/
    if (name == null)
        throw new IllegalArgumentException("Cannot determine OS");
    String arch = getArch();
    if (arch == null)
        throw new IllegalArgumentException("Cannot determine architecture");

    String artifactId = "org.eclipse.swt." + name + "." + arch;
    String swtLocation = artifactId + "-" + SWT_VERSION + ".jar";

    System.out.println("Loading SWT version " + swtLocation);

    byte[] data = null;

    File savedJar = new File(Constants.DATA_DIR, swtLocation);
    if (savedJar.isDirectory() && !savedJar.delete())
        throw new IllegalArgumentException("Saved file is a directory and could not be deleted");

    if (savedJar.exists() && savedJar.canRead()) {
        try {
            System.out.println("Loading from saved file");
            InputStream inputStream = new FileInputStream(savedJar);
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            copy(inputStream, outputStream);
            data = outputStream.toByteArray();
        } catch (IOException exception) {
            System.out.println("Failed to load from saved file.");
            exception.printStackTrace(System.out);
        }
    }
    if (data == null) {
        InputStream fromJar = Bootloader.class.getResourceAsStream("/swt/" + swtLocation);
        if (fromJar != null) {
            try {
                System.out.println("Loading from within JAR");
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                copy(fromJar, outputStream);
                data = outputStream.toByteArray();
            } catch (IOException exception) {
                System.out.println("Failed to load within JAR");
                exception.printStackTrace(System.out);
            }
        }
    }
    if (data == null) {
        URL url = new URL("https://maven-eclipse.github.io/maven/org/eclipse/swt/" + artifactId + "/"
                + SWT_VERSION + "/" + swtLocation);
        try {
            System.out.println("Loading over the internet");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            if (connection.getResponseCode() == 200) {
                InputStream fromURL = connection.getInputStream();
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                copy(fromURL, outputStream);
                data = outputStream.toByteArray();
            } else {
                throw new IOException(connection.getResponseCode() + ": " + connection.getResponseMessage());
            }
        } catch (IOException exception) {
            System.out.println("Failed to load over the internet");
            exception.printStackTrace(System.out);
        }
    }

    if (data == null) {
        throw new IllegalArgumentException("Failed to load SWT");
    }

    if (!savedJar.exists()) {
        try {
            System.out.println("Writing to saved file");
            if (savedJar.createNewFile()) {
                FileOutputStream fileOutputStream = new FileOutputStream(savedJar);
                fileOutputStream.write(data);
                fileOutputStream.close();
            } else {
                throw new IOException("Could not create new file");
            }
        } catch (IOException exception) {
            System.out.println("Failed to write to saved file");
            exception.printStackTrace(System.out);
        }
    }

    byte[] dd = data;

    URL.setURLStreamHandlerFactory(protocol -> { //JarInJar!
        if (protocol.equals("swt")) {
            return new URLStreamHandler() {
                protected URLConnection openConnection(URL u) {
                    return new URLConnection(u) {
                        public void connect() {
                        }

                        public InputStream getInputStream() {
                            return new ByteArrayInputStream(dd);
                        }
                    };
                }

                protected void parseURL(URL u, String spec, int start, int limit) {
                    // Don't parse or it's too slow
                }
            };
        }
        return null;
    });

    ClassLoader classLoader = Bootloader.class.getClassLoader();
    Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
    method.setAccessible(true);
    method.invoke(classLoader, new URL("swt://load"));

    return data;
}

From source file:org.bimserver.plugins.classloaders.FileJarClassLoader.java

@Override
public URL findResource(String name) {
    try {//  www.ja va2  s. c o  m
        final Lazy<InputStream> lazyInputStream = findPath(name);
        if (lazyInputStream != null) {
            try {
                URL baseUrl = new URL("file:" + name);
                URL url = new URL(baseUrl, name, new URLStreamHandler() {
                    @Override
                    protected URLConnection openConnection(URL u) throws IOException {
                        return new URLConnection(u) {
                            @Override
                            public void connect() throws IOException {
                            }

                            @Override
                            public InputStream getInputStream() throws IOException {
                                return lazyInputStream.get();
                            }
                        };
                    }
                });
                return url;
            } catch (MalformedURLException e) {
                LOGGER.error("", e);
            }
        } else {
            LOGGER.debug("File not found: " + name + " (in " + jarFile.getFileName().toString() + ")");
        }
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    return null;
}

From source file:org.bimserver.plugins.classloaders.JarClassLoader.java

@Override
protected URL findResource(final String name) {
    if (map.containsKey(name)) {
        try {/*from   w w  w.  ja  v a2 s . c  om*/
            return new URL(new URL("jar:" + jarFile.toURI().toURL() + "!/" + name), name,
                    new URLStreamHandler() {
                        @Override
                        protected URLConnection openConnection(URL u) throws IOException {
                            return new URLConnection(u) {
                                @Override
                                public void connect() throws IOException {
                                }

                                @Override
                                public InputStream getInputStream() throws IOException {
                                    return new InflaterInputStream(new ByteArrayInputStream(map.get(name)));
                                }
                            };
                        }
                    });
        } catch (MalformedURLException e) {
            LOGGER.error("", e);
        }
    }
    return null;
}

From source file:org.bimserver.plugins.classloaders.MemoryJarClassLoader.java

@Override
public URL findResource(final String name) {
    if (map.containsKey(name)) {
        try {//  www .  ja v a 2s. c o m
            return new URL(new URL("jar:" + jarFile.toURI().toURL() + "!/" + name), name,
                    new URLStreamHandler() {
                        @Override
                        protected URLConnection openConnection(URL u) throws IOException {
                            return new URLConnection(u) {
                                @Override
                                public void connect() throws IOException {
                                }

                                @Override
                                public InputStream getInputStream() throws IOException {
                                    return new InflaterInputStream(new ByteArrayInputStream(map.get(name)));
                                }
                            };
                        }
                    });
        } catch (MalformedURLException e) {
            LOGGER.error("", e);
        }
    }
    return null;
}

From source file:org.bimserver.plugins.JarClassLoader.java

@Override
protected URL findResource(final String name) {
    if (map.containsKey(name)) {
        try {/*  w w  w  .  j  a  va  2  s .  co  m*/
            return new URL(new URL("jar:" + jarFile.toURI().toURL() + "!/" + name), name,
                    new URLStreamHandler() {
                        @Override
                        protected URLConnection openConnection(URL u) throws IOException {
                            return new URLConnection(u) {
                                @Override
                                public void connect() throws IOException {
                                }

                                @Override
                                public InputStream getInputStream() throws IOException {
                                    return new ByteArrayInputStream(map.get(name));
                                }
                            };
                        }
                    });
        } catch (MalformedURLException e) {
            LOGGER.error("", e);
        }
    }
    return null;
}

From source file:org.mc4j.ems.connection.support.classloader.deepjar.Handler.java

/**
 * @see java.net.URLStreamHandler#openConnection(java.net.URL)
 *//* w w  w.  ja v a2  s  . c  o m*/
protected URLConnection openConnection(final URL u) throws IOException {
    log.debug("Deepjar handler is opening " + u);

    final String resource = u.toString().substring(PROTOCOL_LENGTH);
    return new URLConnection(u) {

        public void connect() {
        }

        public InputStream getInputStream() {
            ClassLoader parent = NestedJarClassLoader.getRunningLoader(u);
            return parent.getResourceAsStream(resource);
        }
    };
}