Examples of JsResponseBuilder


Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    setUp(0);
    JsUri jsUri = mockJsUri(CONTAINER_PARAM, RenderingContext.CONTAINER, false, false, false,
        null, REFRESH_INTERVAL_SEC, UriStatus.VALID_UNVERSIONED);
    expect(jsUriManagerMock.processExternJsUri(isA(Uri.class))).andReturn(jsUri);
    expect(request.getHeader("If-Modified-Since")).andReturn("12345");
    final JsResponse response = new JsResponseBuilder().appendJs(EXAMPLE_JS_CODE, "js").build();
    expect(request.getHeader("Host")).andReturn("localhost");
    expect(getJsProcessorMock.process(isA(JsRequest.class), isA(JsResponseBuilder.class))).andAnswer(
        new IAnswer<Boolean>() {
          public Boolean answer() throws Throwable {
            JsResponseBuilder builder = (JsResponseBuilder)getCurrentArguments()[1];
            builder.appendAllJs(response.getAllJsContent());
            return true;
          }
        });
    replay();
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    // Add CoreUtilConfigContributor behavior
    expect(featureRegistry.getAllFeatureNames()).
        andReturn(ImmutableSet.of("foo", "foo2", "core.util")).anyTimes();
    replay(featureRegistry);

    JsResponseBuilder builder = new JsResponseBuilder();
    for (FeatureResource r :  gadgetResources) {
      if (r.isExternal()) {
        builder.appendJs("<script src=\"" + r.getContent() + "\">", r.getName());
      } else {
        builder.appendJs(r.getContent(), r.getName());
      }
    }
    reset(jsServingPipeline);
    try {
      expect(jsServingPipeline.execute(EasyMock.<JsRequest>anyObject())).andReturn(builder.build());
    } catch (JsException e) {
      throw new RuntimeException("Should not fail here");
    }
    replay(jsServingPipeline);
  }
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    CompilerOptions options = defaultCompilerOptions();
    return options;
  }

  public JsResponse compile(JsUri jsUri, Iterable<JsContent> content, String externs) {
    JsResponseBuilder builder = new JsResponseBuilder();

    CompilerOptions options = getCompilerOptions(jsUri);
    StringBuilder compiled = new StringBuilder();
    StringBuilder exports = new StringBuilder();
    boolean useExterns = compileLevel.equals("advanced");
    if (!useExterns) {
      /*
       * Kicking the can down the road.  Advanced optimizations doesn't currently work with the closure compiler in shindig.
       * When it's fixed, we need to make sure all externs are included (not just externs for what was requested) otherwise
       * the cache key will fluctuate with the url hit, and we will get massive cache churn and possible DDOS scenarios
       * when we recompile all requested modules on the fly because the cache key was different.
       */
      externs = "";
    }

    // Add externs export to the list if set in options.
    if (options.isExternExportsEnabled()) {
      List<JsContent> allContent = Lists.newLinkedList(content);
      allContent.add(EXPORTSYMBOL_CODE);
      content = allContent;
    }

    try {
      List<Future<CompileResult>> futures = Lists.newLinkedList();

      // Process each content for work
      for (JsContent code : content) {
        JsResponse defaultCompiled = defaultCompiler.compile(jsUri, Lists.newArrayList(code), externs);

        Future<CompileResult> future = null;
        boolean compile = !code.isNoCompile() && !compileLevel.equals("none");
        /*
         *  isDebug usually will turn off all compilation, however, setting
         *  isExternExportsEnabled and specifying an export path will keep the
         *  closure compiler on and export the externs for debugging.
         */
        compile = compile && (!jsUri.isDebug() || options.isExternExportsEnabled());
        if (compile) { // We should compile this code segment.
          String cacheKey = makeCacheKey(defaultCompiled.toJsString(), externs, jsUri, options);

          synchronized (compiling) {
            CompileResult cached = cache.getElement(cacheKey);
            if (cached == null) {
              future = compiling.get(cacheKey);
              if (future == null) {
                // Don't pound on the compiler. Let the first thread queue the work,
                // the rest of them will just wait on the futures later.
                future = getCompileFuture(cacheKey, code, jsUri, externs);
                compiling.put(cacheKey, future);
              }
            } else {
              future = ImmediateFuture.newInstance(cached);
            }
          }
        }

        if (future == null) {
          future = ImmediateFuture.newInstance(new CompileResult(code.get()));
        }
        futures.add(future);
      }

      // Wait on all work to be done.
      for (Future<CompileResult> future : futures) {
        CompileResult result = future.get();
        compiled.append(result.getContent());
        if (useExterns) {
          String export = result.getExternExport();
          if (export != null) {
            exports.append(export);
          }
        }
      }

    } catch (Exception e) {
      if (LOG.isLoggable(Level.WARNING)) {
        LOG.log(Level.WARNING, e.getMessage(), e);
      }
      Throwable cause = e.getCause();
      if (cause instanceof CompilerException) {
        return returnErrorResult(builder, HttpResponse.SC_NOT_FOUND, ((CompilerException)cause).getErrors());
      } else {
        return returnErrorResult(builder, HttpResponse.SC_NOT_FOUND, Lists.newArrayList(e.getMessage()));
      }
    }

    builder.appendJs(compiled.toString(), "[compiled]");
    builder.clearExterns().appendRawExtern(exports.toString());
    return builder.build();
  }
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    // Add CoreUtilConfigContributor behavior
    expect(featureRegistry.getAllFeatureNames()).
        andReturn(ImmutableSet.of("foo", "foo2", "core.util")).anyTimes();
    replay(featureRegistry);

    JsResponseBuilder builder = new JsResponseBuilder();
    for (FeatureResource r :  gadgetResources) {
      if (r.isExternal()) {
        builder.appendJs("<script src=\"" + r.getContent() + "\">", r.getName());
      } else {
        builder.appendJs(r.getContent(), r.getName());
      }
    }
    reset(jsServingPipeline);
    try {
      expect(jsServingPipeline.execute(EasyMock.<JsRequest>anyObject())).andReturn(builder.build());
    } catch (JsException e) {
      throw new RuntimeException("Should not fail here");
    }
    replay(jsServingPipeline);
  }
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    String jsContent = "var a;";
    String onload = "do this";
    String repository = "v01";
    expect(jsUriManager.makeExternJsUri(capture(uriCapture))).andReturn(resUri);
    expect(jsPipeline.execute(EasyMock.isA(JsRequest.class))).andReturn(
            new JsResponseBuilder().appendJs(jsContent, "js").setProxyCacheable(true).build());
    GadgetsHandlerApi.JsRequest request = createJsRequest(FakeProcessor.SPEC_URL.toString(),
            CONTAINER, fields, features, repository);
    expect(request.getOnload()).andStubReturn(onload);
    expect(request.getContext()).andStubReturn(GadgetsHandlerApi.RenderingContext.CONTAINER);
    replay();
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    Capture<JsUri> captureUri = new Capture<JsUri>();
    EasyMock.expect(jsUriManager.makeExternJsUri(EasyMock.capture(captureUri))).andReturn(jsUri);
    String jsContent = "var b=\"123\";";
    EasyMock.expect(jsPipeline.execute(EasyMock.isA(JsRequest.class))).andReturn(
            new JsResponseBuilder().appendJs(jsContent, "js").build());
    replay();

    RpcHandler operation = registry.getRpcHandler(request);
    Object responseObj = operation.execute(emptyFormItems, authContext, converter).get();
    JSONObject results = new JSONObject(converter.convertToString(responseObj));
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    return doDebug(content, cacheKey);
  }

  protected JsResponse doDebug(Iterable<JsContent> content, String cacheKey) {
    JsResponseBuilder builder = new JsResponseBuilder();
    builder.appendAllJs(content);
    JsResponse result = builder.build();
    cache.addElement(cacheKey, result);
    return result;
  }
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    return result;
  }

  protected JsResponse doCompile(JsUri jsUri, Iterable<JsContent> content, String externs,
      String cacheKey) {
    JsResponseBuilder builder = new JsResponseBuilder();

    CompilerOptions options = getCompilerOptions(jsUri);

    List<SourceFile> allExterns = Lists.newArrayList();
    allExterns.add(SourceFile.fromCode("externs", externs));
    if (defaultExterns != null) {
      allExterns.addAll(defaultExterns);
    }

    List<JsContent> allContent = Lists.newLinkedList(content);
    if (options.isExternExportsEnabled()) {
      allContent.add(EXPORTSYMBOL_CODE);
    }

    Compiler actualCompiler = newCompiler();
    Result result = actualCompiler.compile(
        allExterns,
        convertToJsSource(allContent),
        options);

    if (actualCompiler.hasErrors()) {
      ImmutableList.Builder<String> errors = ImmutableList.builder();
      for (JSError error : actualCompiler.getErrors()) {
        errors.add(error.toString());
      }
      return cacheAndReturnErrorResult(
          builder, cacheKey,
          HttpResponse.SC_NOT_FOUND,
          errors.build());
    }

    String compiled = compileToSource(actualCompiler, result, jsUri);
    if (outputCorrelatedJs()) {
      // Emit code correlated w/ original source.
      // This operation is equivalent in final code to bundled-output,
      // but is less efficient and should perhaps only be used in code
      // profiling.
      SourceMapParser parser = processSourceMap(result, allContent);
      if (parser != null) {
        builder.appendAllJs(parser.mapCompiled(compiled));
      } else {
        return cacheAndReturnErrorResult(builder, cacheKey, HttpResponse.SC_INTERNAL_SERVER_ERROR,
            Lists.newArrayList("Parse error for source map"));
      }
    } else {
      builder.appendJs(compiled, "[compiled]");
    }

    builder.clearExterns().appendRawExtern(result.externExport);

    JsResponse response = builder.build();
    cache.addElement(cacheKey, response);
    return response;
  }
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    }
    return jsContent;
  }

  public JsResponse compile(JsUri jsUri, Iterable<JsContent> content, String externs) {
    return new JsResponseBuilder().appendAllJs(content).build();
  }
View Full Code Here

Examples of org.apache.shindig.gadgets.js.JsResponseBuilder

    // Add CoreUtilConfigContributor behavior
    expect(featureRegistry.getAllFeatureNames()).
        andReturn(ImmutableSet.of("foo", "foo2", "core.util")).anyTimes();
    replay(featureRegistry);

    JsResponseBuilder builder = new JsResponseBuilder();
    for (FeatureResource r :  gadgetResources) {
      if (r.isExternal()) {
        builder.appendJs("<script src=\"" + r.getContent() + "\">", r.getName());
      } else {
        builder.appendJs(r.getContent(), r.getName());
      }
    }
    reset(jsServingPipeline);
    try {
      expect(jsServingPipeline.execute(EasyMock.<JsRequest>anyObject())).andReturn(builder.build());
    } catch (JsException e) {
      throw new RuntimeException("Should not fail here");
    }
    replay(jsServingPipeline);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.