Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package app.chameleon.sample.linker;
- import com.google.gwt.core.ext.LinkerContext;
- import com.google.gwt.core.ext.TreeLogger;
- import com.google.gwt.core.ext.UnableToCompleteException;
- import com.google.gwt.core.ext.linker.AbstractLinker;
- import com.google.gwt.core.ext.linker.ArtifactSet;
- import com.google.gwt.core.ext.linker.EmittedArtifact;
- import com.google.gwt.core.ext.linker.LinkerOrder;
- import com.google.gwt.core.ext.linker.LinkerOrder.Order;
- @LinkerOrder(Order.POST)
- public class AppCacheLinker extends AbstractLinker {
- @Override
- public String getDescription() {
- return "Offline Linker";
- }
- @Override
- public ArtifactSet link(TreeLogger logger, LinkerContext context,ArtifactSet artifacts) throws UnableToCompleteException {
- ArtifactSet artifactset = new ArtifactSet(artifacts);
- StringBuilder builder= new StringBuilder("CACHE MANIFESTn");
- builder.append("# Cache Version 10n");
- builder.append("CACHE:n");
- builder.append("/demo/ChameleonSample.cssn");
- builder.append("/demo/ChameleonSample.htmln");
- for(EmittedArtifact emitted: artifacts.find(EmittedArtifact.class))
- {
- if(emitted.isPrivate())
- {
- continue;
- }
- if(emitted.getPartialPath().endsWith(".symbolMap"))continue;
- if(emitted.getPartialPath().endsWith(".txt"))continue;
- builder.append("/demo/chameleonsample/" + emitted.getPartialPath()).append("n");
- }
- builder.append("/demo/chameleonsample/hosted.htmln");
- builder.append("/demo/chameleonsample/chameleonsample.nocache.jsn");
- builder.append("NETWORK:n");
- builder.append("*n");
- EmittedArtifact manifest= emitString(logger, builder.toString(), "offline.appcache");
- artifactset.add(manifest);
- return artifactset;
- }
- }
- <html manifest="chameleonsample/offline.appcache">
- <mime-mapping>
- <extension>appcache</extension>
- <mime-type>text/cache-manifest</mime-type>
- </mime-mapping>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement