/** * Gets the ETag (SHA1 in Nexus) to check item against. * * @return */ public String getIfNoneMatch() { return (String) get( CTX_CONDITION_IF_NONE_MATCH ); }
public Object get( Object key, boolean fallBackToParent ) { if ( containsKey( key, false ) ) { return super.get( key ); } else if ( fallBackToParent && getParentContext() != null && getParentContext() != this ) { return getParentContext().get( key ); } else { return null; } }
/** * Returns the URL of the original request. * * @return */ public String getRequestUrl() { return (String) get( CTX_REQUEST_URL ); }
/** * Returns the URL of the AppRoot of the incoming request. * * @return */ public String getRequestAppRootUrl() { return (String) get( CTX_REQUEST_APP_ROOT_URL ); }
public Object get( Object key ) { return get( key, true ); }
/** * Returns the timestamp to check against. * * @return */ public long getIfModifiedSince() { if ( containsKey( CTX_CONDITION_IF_MODIFIED_SINCE ) ) { return (Long) get( CTX_CONDITION_IF_MODIFIED_SINCE ); } else { return 0; } }
/** * Checks if is request group local only. * * @return true, if is request group local only */ public boolean isRequestGroupLocalOnly() { if ( containsKey( CTX_GROUP_LOCAL_ONLY_FLAG ) ) { return (Boolean) get( CTX_GROUP_LOCAL_ONLY_FLAG ); } else { return false; } }
/** * Checks if is request local only. * * @return true, if is request local only */ public boolean isRequestLocalOnly() { if ( containsKey( CTX_LOCAL_ONLY_FLAG ) ) { return (Boolean) get( CTX_LOCAL_ONLY_FLAG ); } else { return false; } }
/** * Checks if is request remote only. * * @return true, if is request remote only */ public boolean isRequestRemoteOnly() { if ( containsKey( CTX_REMOTE_ONLY_FLAG ) ) { return (Boolean) get( CTX_REMOTE_ONLY_FLAG ); } else { return false; } }
@Override protected void setItemAttributes(final StorageFileItem item, final RequestContext context, final P2ProxyRepository repository) { final String mirrorsURL = (String) context.get(CTX_MIRRORS_URL); if (mirrorsURL != null) { item.getRepositoryItemAttributes().put(ATTR_MIRRORS_URL, mirrorsURL); } }
protected boolean isForceAttributeRecreation( final WalkerContext ctx ) { final RequestContext reqestContext = ctx.getResourceStoreRequest().getRequestContext(); if ( reqestContext.containsKey( FORCE_ATTRIBUTE_RECREATION, false ) ) { // obey the "hint" return Boolean.parseBoolean( String.valueOf( reqestContext.get( FORCE_ATTRIBUTE_RECREATION, false ) ) ); } else { // fallback to default behavior: do force it return true; } }
@Override protected void doDelete(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { final ResourceStoreRequest rsr = getResourceStoreRequest(request); try { repositoryRouter.deleteItem(rsr); response.setStatus(HttpServletResponse.SC_NO_CONTENT); ((Stopwatch) rsr.getRequestContext().get(STOPWATCH_KEY)).stop(); } catch (Exception e) { ((Stopwatch) rsr.getRequestContext().get(STOPWATCH_KEY)).stop(); handleException(request, response, rsr, e); } }
protected boolean isLegacyAttributesOnly( final WalkerContext ctx ) { final RequestContext reqestContext = ctx.getResourceStoreRequest().getRequestContext(); if ( reqestContext.containsKey( LEGACY_ATTRIBUTES_ONLY, false ) ) { // obey the "hint" return Boolean.parseBoolean( String.valueOf( reqestContext.get( LEGACY_ATTRIBUTES_ONLY, false ) ) ); } else { // fallback to default behavior: all of them return false; } } }
@Override protected void doPut(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { final ResourceStoreRequest rsr = getResourceStoreRequest(request); try { final Map<String, String> userAttributes = getUserAttributesFromRequest(request); repositoryRouter.storeItem(rsr, request.getInputStream(), userAttributes); ((Stopwatch) rsr.getRequestContext().get(STOPWATCH_KEY)).stop(); response.setStatus(HttpServletResponse.SC_CREATED); } catch (Exception e) { ((Stopwatch) rsr.getRequestContext().get(STOPWATCH_KEY)).stop(); handleException(request, response, rsr, e); } }
public DefaultWalkerContext( Repository store, ResourceStoreRequest request, WalkerFilter filter, boolean localOnly ) { super(); this.resourceStore = store; this.request = request; this.walkerFilter = filter; this.running = true; if ( request.getRequestContext().containsKey( WalkerThrottleController.CONTEXT_KEY, false ) ) { this.throttleController = (WalkerThrottleController) request.getRequestContext().get( WalkerThrottleController.CONTEXT_KEY, false ); } else { this.throttleController = WalkerThrottleController.NO_THROTTLING; } }
public boolean isHandled( StorageItem item ) { if ( item instanceof StorageFileItem ) { if ( item.getItemContext().containsKey( StorageFileItem.DIGEST_SHA1_KEY ) ) { item.getRepositoryItemAttributes().put( DIGEST_SHA1_KEY, String.valueOf( item.getItemContext().get( StorageFileItem.DIGEST_SHA1_KEY ) ) ); // do this one "blindly" item.getRepositoryItemAttributes().put( DIGEST_MD5_KEY, String.valueOf( item.getItemContext().get( StorageFileItem.DIGEST_MD5_KEY ) ) ); // we did our job, we "lifted" the digest from context return false; } } // handling all files otherwise return true; }
@Override public void delete( final LocalRepositoryStorage ls, final Repository repository, final ResourceStoreRequest request ) throws LocalStorageException { final DeleteOperation operation; if ( request.getRequestContext().containsKey( DeleteOperation.DELETE_OPERATION_CTX_KEY ) ) { operation = (DeleteOperation) request.getRequestContext().get( DeleteOperation.DELETE_OPERATION_CTX_KEY ); } else { operation = getDeleteOperation(); } delete( ls, repository, request, operation ); }
/** * Save it only 1st time. Meaning, a newly proxied/cached item will have not set these attributes, but when it comes * from cache, it will. By storing it only once, at first time, we have the record of who did it initally requested. * * @param item * @param contextKey */ private void addIfExistsButDontContains( StorageFileItem item, String contextKey ) { if ( item.getItemContext().containsKey( contextKey ) && !item.getRepositoryItemAttributes().containsKey( contextKey ) ) { Object val = item.getItemContext().get( contextKey ); if ( val != null ) { item.getRepositoryItemAttributes().put( contextKey, val.toString() ); } } }
public StorageFileItemRepresentation(StorageFileItem file) { super(MediaType.valueOf(file.getMimeType()), file); setSize(file.getLength()); if (file.getRepositoryItemAttributes().containsKey(DigestCalculatingInspector.DIGEST_SHA1_KEY)) { // Shield SHA1 // {SHA1{xxxx}} final String tag = String.format("{SHA1{%s}}", file.getRepositoryItemAttributes().get(DigestCalculatingInspector.DIGEST_SHA1_KEY)); setTag(new Tag(tag, false)); } if (file.getItemContext().containsKey(AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY)) { String filename = file.getItemContext().get(AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY).toString(); setDownloadable(true); setDownloadName(filename); } }
public StorageFileItemRepresentation( StorageFileItem file ) { super( MediaType.valueOf( file.getMimeType() ), file ); setSize( file.getLength() ); if ( file.getRepositoryItemAttributes().containsKey( DigestCalculatingInspector.DIGEST_SHA1_KEY ) ) { // Shield SHA1 // {SHA1{xxxx}} final String tag = String.format( "{SHA1{%s}}", file.getRepositoryItemAttributes().get( DigestCalculatingInspector.DIGEST_SHA1_KEY ) ); setTag( new Tag( tag, false ) ); } if ( file.getItemContext().containsKey( AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY ) ) { String filename = file.getItemContext().get( AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY ).toString(); setDownloadable( true ); setDownloadName( filename ); } }