/** * Loads a serialization policy from a Super Dev Mode code server. * (Not used unless {@link #getCodeServerPolicyUrl} returns a URL.) * * <p>The default version is a simple implementation built on java.net.URL that does * no authentication. It should only be used during development.</p> */ protected SerializationPolicy loadPolicyFromCodeServer(String url) { SerializationPolicyClient.Logger adapter = new SerializationPolicyClient.Logger() { @Override public void logInfo(String message) { RemoteServiceServlet.this.log(message); } @Override public void logError(String message, Throwable throwable) { RemoteServiceServlet.this.log(message, throwable); } }; return CODE_SERVER_CLIENT.loadPolicy(url, adapter); }
/** * Attempts to read a policy from a given InputStream and logs any errors. * * @param sourceName names the source of the input stream for log messages. * @return the policy or null if unavailable. */ private static SerializationPolicy readPolicy(InputStream in, String sourceName, Logger logger) { try { List<ClassNotFoundException> errs = new ArrayList<ClassNotFoundException>(); SerializationPolicy policy = SerializationPolicyLoader.loadFromStream(in, errs); logger.logInfo("Downloaded serialization policy from " + sourceName); if (!errs.isEmpty()) { logMissingClasses(logger, errs); } return policy; } catch (ParseException e) { logger.logError("Can't parse serialization policy from " + sourceName, e); return null; } catch (IOException e) { logger.logError("Can't read serialization policy from " + sourceName, e); return null; } finally { try { in.close(); } catch (IOException e) { logger.logError("Can't close serialization policy url: " + sourceName, e); } } }
SerializationPolicy loadPolicy(String url, Logger logger) { URL urlObj; try { urlObj = new URL(url); } catch (MalformedURLException e) { logger.logError("Can't parse serialization policy URL: " + url, e); return null; } URLConnection conn; InputStream in; try { conn = urlObj.openConnection(); conn.setConnectTimeout(connectTimeout); conn.setReadTimeout(readTimeout); // The code server doesn't redirect. Fail fast if we get a redirect since // it's likely a configuration error. if (conn instanceof HttpURLConnection) { ((HttpURLConnection)conn).setInstanceFollowRedirects(false); } conn.connect(); in = conn.getInputStream(); } catch (IOException e) { logger.logError("Can't open serialization policy URL: " + url, e); return null; } return readPolicy(in, url, logger); }
/** * Loads a serialization policy from a Super Dev Mode code server. * (Not used unless {@link #getCodeServerPolicyUrl} returns a URL.) * * <p>The default version is a simple implementation built on java.net.URL that does * no authentication. It should only be used during development.</p> */ protected SerializationPolicy loadPolicyFromCodeServer(String url) { SerializationPolicyClient.Logger adapter = new SerializationPolicyClient.Logger() { @Override public void logInfo(String message) { RemoteServiceServlet.this.log(message); } @Override public void logError(String message, Throwable throwable) { RemoteServiceServlet.this.log(message, throwable); } }; return CODE_SERVER_CLIENT.loadPolicy(url, adapter); }
SerializationPolicy loadPolicy(String url, Logger logger) { URL urlObj; try { urlObj = new URL(url); } catch (MalformedURLException e) { logger.logError("Can't parse serialization policy URL: " + url, e); return null; } URLConnection conn; InputStream in; try { conn = urlObj.openConnection(); conn.setConnectTimeout(connectTimeout); conn.setReadTimeout(readTimeout); // The code server doesn't redirect. Fail fast if we get a redirect since // it's likely a configuration error. if (conn instanceof HttpURLConnection) { ((HttpURLConnection)conn).setInstanceFollowRedirects(false); } conn.connect(); in = conn.getInputStream(); } catch (IOException e) { logger.logError("Can't open serialization policy URL: " + url, e); return null; } return readPolicy(in, url, logger); }
/** * Attempts to read a policy from a given InputStream and logs any errors. * * @param sourceName names the source of the input stream for log messages. * @return the policy or null if unavailable. */ private static SerializationPolicy readPolicy(InputStream in, String sourceName, Logger logger) { try { List<ClassNotFoundException> errs = new ArrayList<ClassNotFoundException>(); SerializationPolicy policy = SerializationPolicyLoader.loadFromStream(in, errs); logger.logInfo("Downloaded serialization policy from " + sourceName); if (!errs.isEmpty()) { logMissingClasses(logger, errs); } return policy; } catch (ParseException e) { logger.logError("Can't parse serialization policy from " + sourceName, e); return null; } catch (IOException e) { logger.logError("Can't read serialization policy from " + sourceName, e); return null; } finally { try { in.close(); } catch (IOException e) { logger.logError("Can't close serialization policy url: " + sourceName, e); } } }
/** * Loads a serialization policy from a Super Dev Mode code server. * (Not used unless {@link #getCodeServerPolicyUrl} returns a URL.) * * <p>The default version is a simple implementation built on java.net.URL that does * no authentication. It should only be used during development.</p> */ protected SerializationPolicy loadPolicyFromCodeServer(String url) { SerializationPolicyClient.Logger adapter = new SerializationPolicyClient.Logger() { @Override public void logInfo(String message) { RemoteServiceServlet.this.log(message); } @Override public void logError(String message, Throwable throwable) { RemoteServiceServlet.this.log(message, throwable); } }; return CODE_SERVER_CLIENT.loadPolicy(url, adapter); }
SerializationPolicy loadPolicy(String url, Logger logger) { URL urlObj; try { urlObj = new URL(url); } catch (MalformedURLException e) { logger.logError("Can't parse serialization policy URL: " + url, e); return null; } URLConnection conn; InputStream in; try { conn = urlObj.openConnection(); conn.setConnectTimeout(connectTimeout); conn.setReadTimeout(readTimeout); // The code server doesn't redirect. Fail fast if we get a redirect since // it's likely a configuration error. if (conn instanceof HttpURLConnection) { ((HttpURLConnection)conn).setInstanceFollowRedirects(false); } conn.connect(); in = conn.getInputStream(); } catch (IOException e) { logger.logError("Can't open serialization policy URL: " + url, e); return null; } return readPolicy(in, url, logger); }
/** * Attempts to read a policy from a given InputStream and logs any errors. * * @param sourceName names the source of the input stream for log messages. * @return the policy or null if unavailable. */ private static SerializationPolicy readPolicy(InputStream in, String sourceName, Logger logger) { try { List<ClassNotFoundException> errs = new ArrayList<ClassNotFoundException>(); SerializationPolicy policy = SerializationPolicyLoader.loadFromStream(in, errs); logger.logInfo("Downloaded serialization policy from " + sourceName); if (!errs.isEmpty()) { logMissingClasses(logger, errs); } return policy; } catch (ParseException e) { logger.logError("Can't parse serialization policy from " + sourceName, e); return null; } catch (IOException e) { logger.logError("Can't read serialization policy from " + sourceName, e); return null; } finally { try { in.close(); } catch (IOException e) { logger.logError("Can't close serialization policy url: " + sourceName, e); } } }