@Override
 public void setStatus(int status) {
   this.status = status;
   if (HttpUtils.isSuccessfulResponseCode(status) && state == State.UNSET) {
     state = State.SUCCESS;
   }
 }
 /**
  * Get the absolute bookmarkable path of a page
  *
  * @param pageClass Page
  * @param pageParameters Optional page parameters
  * @return Bookmarkable path
  */
 public static String absoluteMountPathForPage(
     Class<? extends Page> pageClass, PageParameters pageParameters) {
   HttpServletRequest req = getHttpServletRequest();
   RequestCycle requestCycle = RequestCycle.get();
   Url url = requestCycle.mapUrlFor(pageClass, pageParameters);
   String renderedUrl = url.toString();
   renderedUrl = Strings.isEmpty(renderedUrl) ? "." : renderedUrl;
   return RequestUtils.toAbsolutePath(
       HttpUtils.getWebappContextUrl(req),
       requestCycle.getOriginalResponse().encodeURL(renderedUrl));
 }
 @Override
 public void renderPage() {
   String lastPage = CookieUtils.getCookie(RememberPageBehavior.COOKIE_NAME);
   if (StringUtils.isEmpty(lastPage)) {
     setResponsePage(BrowseRepoPage.class);
   } else {
     String serverUrl = HttpUtils.getServerUrl(WicketUtils.getHttpServletRequest());
     try {
       WicketUtils.getWebResponse().sendRedirect(serverUrl + lastPage);
     } catch (ComponentNotFoundException e) {
       setResponsePage(BrowseRepoPage.class);
     }
   }
 }
 /**
  * Performs local properties update
  *
  * @param resource
  * @return success/failure
  */
 private boolean doPull(RepoResource resource) {
   log.debug("Downloading properties for artifact {}", resource);
   String repoKey = StringUtils.replaceLast(resource.getRepoPath().getRepoKey(), "-cache", "");
   HttpRepo repo = (HttpRepo) repositoryService.remoteRepositoryByKey(repoKey);
   // If file doesn't exist then do mot update properties since it will be updated during file
   // download
   if (!repositoryService.exists(resource.getRepoPath())) {
     return false;
   }
   // If properties not expire the return false, no need to get properties drom the remote repo
   if (repo == null
       || resourceIsExpirable(resource, repo)
       || !isPropertiesExpired(resource, repo)) {
     return false;
   }
   String remotePath = repo.getUrl() + "/" + resource.getRepoPath().getPath() + ":properties";
   HttpGet getMethod = new HttpGet(HttpUtils.encodeQuery(remotePath));
   try {
     CloseableHttpResponse getResponse = repo.executeMethod(getMethod);
     boolean ok = HttpStatus.SC_OK == getResponse.getStatusLine().getStatusCode();
     boolean notFound = HttpStatus.SC_NOT_FOUND == getResponse.getStatusLine().getStatusCode();
     if (ok || notFound) {
       InputStream stream = getResponse.getEntity().getContent();
       Properties properties = (Properties) InfoFactoryHolder.get().createProperties();
       if (ok && stream != null) {
         RepoRequests.logToContext("Received remote property content");
         Properties remoteProperties =
             (Properties) InfoFactoryHolder.get().getFileSystemXStream().fromXML(stream);
         for (String remotePropertyKey : remoteProperties.keySet()) {
           Set<String> values = remoteProperties.get(remotePropertyKey);
           RepoRequests.logToContext(
               "Found remote property key '{}' with values '%s'", remotePropertyKey, values);
           if (!remotePropertyKey.startsWith(ReplicationAddon.PROP_REPLICATION_PREFIX)) {
             properties.putAll(remotePropertyKey, values);
           }
         }
       }
       updateRemoteProperties(resource, properties);
     }
     repositoryService.unexpireIfExists(
         repo.getLocalCacheRepo(), resource.getRepoPath().getPath());
   } catch (IOException e) {
     log.debug("Cannot update remote properties", e);
     return false;
   }
   return true;
 }
 @Override
 public void execute(ArtifactoryRestRequest request, RestResponse response) {
   GradleSettingModel gradleSettingModel = (GradleSettingModel) request.getImodel();
   boolean downloadScript = Boolean.valueOf(request.getQueryParamByKey("downloadScript"));
   boolean downloadGradleProps = Boolean.valueOf(request.getQueryParamByKey("gradleProps"));
   String servletContextUrl = HttpUtils.getServletContextUrl(request.getServletRequest());
   // generate maven settings
   String gradleSnippet = generateSettings(servletContextUrl, gradleSettingModel, response);
   if (downloadGradleProps) {
     downLoadGradleProps(response, servletContextUrl);
     return;
   }
   if (downloadScript) {
     downloadGradleBuildFile(response, gradleSnippet);
     return;
   } else {
     // update maven setting model
     GradleSettingModel mavenSnippetModel = new GradleSettingModel(gradleSnippet);
     mavenSnippetModel.clearProps();
     response.iModel(mavenSnippetModel);
   }
 }