use of org.apache.tapestry5.Asset in project gapic-generator-java by googleapis.
the class AsyncListAssetsPaged method asyncListAssetsPaged.
public static void asyncListAssetsPaged() throws Exception {
// It may require modifications to work in your environment.
try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
ListAssetsRequest request = ListAssetsRequest.newBuilder().setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()).setReadTime(Timestamp.newBuilder().build()).addAllAssetTypes(new ArrayList<String>()).setContentType(ContentType.forNumber(0)).setPageSize(883849137).setPageToken("pageToken873572522").addAllRelationshipTypes(new ArrayList<String>()).build();
while (true) {
ListAssetsResponse response = assetServiceClient.listAssetsCallable().call(request);
for (Asset element : response.getResponsesList()) {
// doThingsWith(element);
}
String nextPageToken = response.getNextPageToken();
if (!Strings.isNullOrEmpty(nextPageToken)) {
request = request.toBuilder().setPageToken(nextPageToken).build();
} else {
break;
}
}
}
}
use of org.apache.tapestry5.Asset in project tapestry-5 by apache.
the class ResourceStreamerImpl method streamResource.
public boolean streamResource(Resource resource, StreamableResource streamable, String providedChecksum, Set<Options> options) throws IOException {
assert streamable != null;
assert providedChecksum != null;
assert options != null;
String actualChecksum = streamable.getChecksum();
if (providedChecksum.length() > 0 && !providedChecksum.equals(actualChecksum)) {
// TAP5-2185: Trying to find the wrongly-checksummed resource in the classpath and context,
// so we can create an Asset with the correct checksum and redirect to it.
Asset asset = null;
if (resource != null) {
asset = findAssetInsideWebapp(resource);
}
if (asset != null) {
response.sendRedirect(asset.toClientURL());
return true;
}
return false;
}
// ETag should be surrounded with quotes.
String token = QUOTE + actualChecksum + QUOTE;
// Even when sending a 304, we want the ETag associated with the request.
// In most cases (except JavaScript modules), the checksum is also embedded into the URL.
// However, E-Tags are also useful for enabling caching inside intermediate servers, CDNs, etc.
response.setHeader("ETag", token);
// If the client can send the correct ETag token, then its cache already contains the correct
// content.
String providedToken = request.getHeader("If-None-Match");
if (token.equals(providedToken)) {
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
return true;
}
long lastModified = streamable.getLastModified();
long ifModifiedSince;
try {
ifModifiedSince = request.getDateHeader(IF_MODIFIED_SINCE_HEADER);
} catch (IllegalArgumentException ex) {
// Simulate the header being missing if it is poorly formatted.
ifModifiedSince = -1;
}
if (ifModifiedSince > 0 && ifModifiedSince >= lastModified) {
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
return true;
}
// Prevent the upstream code from compressing when we don't want to.
response.disableCompression();
response.setDateHeader("Last-Modified", lastModified);
if (productionMode && !options.contains(Options.OMIT_EXPIRATION)) {
// Starting in 5.4, this is a lot less necessary; any change to a Resource will result
// in a new asset URL with the changed checksum incorporated into the URL.
response.setDateHeader("Expires", lastModified + InternalConstants.TEN_YEARS);
}
// mostly result in quick SC_NOT_MODIFIED responses.
if (options.contains(Options.OMIT_EXPIRATION)) {
response.setHeader("Cache-Control", omitExpirationCacheControlHeader);
}
if (streamable.getCompression() == CompressionStatus.COMPRESSED) {
response.setHeader(TapestryHttpInternalConstants.CONTENT_ENCODING_HEADER, TapestryHttpInternalConstants.GZIP_CONTENT_ENCODING);
}
ResponseCustomizer responseCustomizer = streamable.getResponseCustomizer();
if (responseCustomizer != null) {
responseCustomizer.customizeResponse(streamable, response);
}
if (!request.getMethod().equals("HEAD")) {
response.setContentLength(streamable.getSize());
OutputStream os = response.getOutputStream(streamable.getContentType().toString());
streamable.streamTo(os);
os.close();
}
return true;
}
use of org.apache.tapestry5.Asset in project tapestry-5 by apache.
the class AssetSourceImplTest method missing_resource.
@Test
public void missing_resource() {
ThreadLocale threadLocale = mockThreadLocale();
Map<String, AssetFactory> configuration = Collections.emptyMap();
replay();
AssetSource source = new AssetSourceImpl(threadLocale, configuration, null, null, tracker);
try {
source.getAsset(baseResource, "DoesNotExist.properties", Locale.UK);
unreachable();
} catch (RuntimeException ex) {
assertEquals(ex.getMessage(), "Unable to locate asset 'classpath:org/apache/tapestry5/internal/services/DoesNotExist.properties' (the file does not exist).");
}
verify();
}
use of org.apache.tapestry5.Asset in project tapestry-5 by apache.
the class AssetSourceImplTest method get_classpath_asset.
@Test
public void get_classpath_asset() {
AssetFactory factory = mockAssetFactory();
ThreadLocale threadLocale = mockThreadLocale();
Asset asset = mockAsset();
Resource expectedResource = baseResource.forFile("SimpleComponent_en_GB.properties");
train_getRootResource(factory, rootResource);
train_createAsset(factory, expectedResource, asset);
Map<String, AssetFactory> configuration = Collections.singletonMap("classpath", factory);
replay();
AssetSource source = new AssetSourceImpl(threadLocale, configuration, null, null, tracker);
// First try creates it:
assertSame(source.getClasspathAsset("org/apache/tapestry5/internal/services/SimpleComponent.properties", Locale.UK), asset);
verify();
}
use of org.apache.tapestry5.Asset in project tapestry-5 by apache.
the class AssetSourceImplTest method get_expanded_asset.
@Test
public void get_expanded_asset() {
AssetFactory factory = mockAssetFactory();
Asset asset = mockAsset();
SymbolSource symbolSource = mockSymbolSource();
Resource expectedResource = baseResource.forFile("SimpleComponent.properties");
train_getRootResource(factory, rootResource);
train_createAsset(factory, expectedResource, asset);
train_expandSymbols(symbolSource, "${path}/SimpleComponent.properties", "org/apache/tapestry5/internal/services/SimpleComponent.properties");
Map<String, AssetFactory> configuration = Collections.singletonMap("classpath", factory);
replay();
AssetSource source = new AssetSourceImpl(null, configuration, symbolSource, null, tracker);
// First try creates it:
assertSame(source.getExpandedAsset("${path}/SimpleComponent.properties"), asset);
verify();
}
Aggregations