Re: SuperDevMode and APT
Here are code fragments for you. It would be good if something like this could be built in to GWT rather than having everybody implement similar code.
private static final String CODE_SERVER_URL_KEY = "CodeServerURL";
public void init(ServletConfig config) throws ServletException
{
m_codeServerURL = config.getInitParameter(CODE_SERVER_URL_KEY);
if (m_codeServerURL != null && m_codeServerURL.charAt(m_codeServerURL.length()-1) != '/')
m_codeServerURL = m_codeServerURL + "/";
}
Then, I override doGetSerializationPolicy and the part of the code that loads from the code server looks like this:
boolean endsWithSlash = moduleBaseURL.charAt(moduleBaseURL.length()-1) == '/';
String tmp = moduleBaseURL;
if (endsWithSlash)
tmp = tmp.substring(0, tmp.length()-1);
int lastSlash = tmp.lastIndexOf('/');
String moduleName = lastSlash < 0 ? tmp : tmp.substring(lastSlash+1, tmp.length());
try
{
url = new URL(m_codeServerURL + moduleName + "/"
+ SerializationPolicyLoader.getSerializationPolicyFileName(strongName));
}
catch (MalformedURLException mue)
{
s_logger.debug("Could not read the policy file '" + url + "'", ioe);
return null; // null return is then converted into throwing an exception
}
InputStream is = null;
try
{
is = url.openStream();
s_logger.debug("Loading serialization policy from code server");
}
catch (IOException ioe2)
{
s_logger.debug("Could not read the policy file '" + url + "'", ioe);
return null; // null return is then converted into throwing an exception
}
Paul
On 14/06/12 22:15, Stefano Ciccarelli wrote:
Great idea!
It should work on GAE too using UrlFetch api to talk with the code server.
Could you share some pieces of code, please?Il giorno giovedì 14 giugno 2012, alle ore 11:33, Paul Robinson ha scritto:
On 13/06/12 18:53, Andrea Boscolo wrote:I can confirm that copying the CodeServer's .gwt.rpc files in the local war dir, works but it's a pain: every time they change, they need to be copied.There's an alternative to copying gwt.rpc files. I've changed my app so that when it looks for the serialization policy, and it can't find it, it will ask the code server for it. You just need to parse the module base URL to get the module name, and then use the strong name provided to generate the appropriate URL, something like:
All I need to do now is to add the codeserver URL as a parameter in web.xml so that this feature can be enabled/disabled so it doesn't happen in production.
I don't know whether this technique would work on GAE as well.
Paul
--You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.To post to this group, send email to google-web-toolkit@googlegroups.com.To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home