Sunday, September 19, 2010

Re: Return permutation directly from the server without selection script.

Can you please demonstrate how this technique should be used to save
that extra request from host page?
(i.e. what other components needs to be added to implement solution
from google wave guys)

On Sep 18, 12:46 am, Etienne Lacazedieu <etienne.lacazed...@gmail.com>
wrote:
> I wrote such a Linker :
>
> /**
>  * This GWT linker creates a properties file which can be used to
> resolve Permutation Strong name given UserAgent and locale.
>  *
>  * @author Etienne Lacazedieu
>  *
>  */
> @LinkerOrder(Order.PRE)
> public class StrongNameOracleLinker extends AbstractLinker {
>     public static final String STRONGNAME_FILE = "permutation.properties";
>
>     @Override
>     public String getDescription() {
>         return "PermutationStrongName Oracle linker";
>     }
>
>     @Override
>     public ArtifactSet link(TreeLogger logger, LinkerContext context,
> ArtifactSet artifacts) throws UnableToCompleteException {
>         artifacts = new ArtifactSet(artifacts);
>         ByteArrayOutputStream out = new ByteArrayOutputStream();
>
>         String permutation = null;
>         String locale = null;
>         String userAgent = null;
>         SelectionProperty selectionProperty = null;
>
>         Properties props = new Properties();
>
>         for (CompilationResult result :
> artifacts.find(CompilationResult.class)) {
>             permutation = result.getStrongName();
>
>             SortedSet<SortedMap<SelectionProperty, String>>
> propertiesMap = result.getPropertyMap();
>             for (SortedMap<SelectionProperty, String> sm : propertiesMap) {
>                 for (Map.Entry<SelectionProperty, String> e : sm.entrySet()) {
>                     selectionProperty = e.getKey();
>                     if ("locale".equals(selectionProperty.getName())) {
>                         locale = e.getValue();
>                     }
>                     if ("user.agent".equals(selectionProperty.getName())) {
>                         userAgent = e.getValue();
>                     }
>                 }
>             }
>             props.setProperty(userAgent + "." + locale, permutation);
>         }
>         try {
>             props.store(out, "StrongNameOracle properties file");
>         } catch (IOException e) { // Should generally not happen
>             logger.log(TreeLogger.ERROR, "Unable to store deRPC data", e);
>             throw new UnableToCompleteException();
>         }
>         SyntheticArtifact a = emitBytes(logger, out.toByteArray(),
> STRONGNAME_FILE);
>         artifacts.add(a);
>
>         return artifacts;
>     }
>
> }
>
> 2010/9/17 Helder Suzuki <heldersuz...@gmail.com>:
>
> > +1
>
> > On Aug 4, 9:17 am, André Moraes <andr...@gmail.com> wrote:
> >> Hi,
>
> >> I saw the presentation of the GWT team and they talked about sending the
> >> permutation without sending first the selection script.
>
> >> I can read the HTTP headers and find-out what is the browser which is making
> >> the request, this is the "easy" part.
>
> >> But how can I find-out which file was generated by which permutation in the
> >> GWT compiler pipeline? I belive that I will need to write a linker to get
> >> those files, but how?
>
> >> Thanks.
>
> >> --
> >> André Moraes
> >> Analista de Desenvolvimento de Sistemas
> >> andr...@gmail.comhttp://andredevchannel.blogspot.com/
>
> > --
> > 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 athttp://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.

No comments:

Post a Comment