List of usage examples for org.apache.commons.lang StringUtils substringAfter
public static String substringAfter(String str, String separator)
Gets the substring after the first occurrence of a separator.
From source file:adalid.util.i18n.Mapper.java
private String substringAfter(String str, String separator) { return str.contains(separator) ? StringUtils.substringAfter(str, separator) : str; }
From source file:com.netflix.explorers.AppConfigGlobalModelContext.java
@Inject public AppConfigGlobalModelContext(@Named("explorerAppName") String appName) { final String propertiesFileName = appName + "-explorers-app.properties"; try {// w w w . j ava 2s . c o m ConfigurationManager.loadPropertiesFromResources(propertiesFileName); } catch (IOException e) { LOG.error(String.format( "Exception loading properties file - %s, Explorers application may not work correctly ", propertiesFileName)); } AbstractConfiguration configuration = ConfigurationManager.getConfigInstance(); environmentName = configuration.getString(PROPERTY_ENVIRONMENT_NAME); currentRegion = configuration.getString(PROPERTY_CURRENT_REGION); applicationVersion = (String) configuration.getProperty(PROPERTY_APPLICATION_VERSION); applicationName = (String) configuration.getProperty(PROPERTY_APPLICATION_NAME); isLocal = configuration.getBoolean(PROPERTY_IS_LOCAL, false); homePageUrl = configuration.getString(PROPERTY_HOME_PAGE); defaultPort = configuration.getShort(PROPERTY_DEFAULT_PORT, (short) 8080); dataCenter = configuration.getString(PROPERTY_DATA_CENTER); defaultExplorerName = configuration.getString(PROPERTY_DEFAULT_EXPLORER); try { Iterator<String> dcKeySet = configuration.getKeys(PROPERTIES_PREFIX + ".dc"); while (dcKeySet.hasNext()) { String dcKey = dcKeySet.next(); String key = StringUtils.substringBefore(dcKey, "."); String attr = StringUtils.substringAfter(dcKey, "."); CrossLink link = links.get(key); if (link == null) { link = new CrossLink(); links.put(key, link); } BeanUtils.setProperty(link, attr, configuration.getProperty(dcKey)); } } catch (Exception e) { LOG.error("Exception in constructing links map ", e); throw new RuntimeException(e); } }
From source file:eionet.gdem.web.FileDownloadServlet.java
/** * Process the actual request.//from w w w . j a v a2 s . com * * @param request * The request to be processed. * @param response * The response to be created. * @param content * Whether the request body should be written (GET) or not (HEAD). * @throws IOException * If something fails at I/O level. * @throws ServletException If an error occurs. */ private void processRequest(HttpServletRequest request, HttpServletResponse response, boolean content) throws IOException, ServletException { String urlPath = URLDecoder .decode(StringUtils.substringAfter(request.getRequestURI(), request.getContextPath()), "UTF-8"); String filePath = Properties.appRootFolder + urlPath; String securityMessage = checkPermissions(request, urlPath); if (securityMessage != null) { handleNotAuthorised(securityMessage, request, response); return; } // Get the file object from the file store File file = new File(filePath); // If file was not found, send 404. if (file == null || !file.exists() || !file.isFile()) { handleFileNotFound("Could not find file by the following URI: " + request.getRequestURI(), request, response); return; } // Prepare some variables. The ETag is an unique identifier of the file. String fileName = file.getName(); long length = file.length(); long lastModified = file.lastModified(); String eTag = fileName + "_" + length + "_" + lastModified; // Validate request headers for caching --------------------------------------------------- // If-None-Match header should contain "*" or ETag. If so, then return 304. String ifNoneMatch = request.getHeader("If-None-Match"); if (ifNoneMatch != null && matches(ifNoneMatch, eTag)) { response.setHeader("ETag", eTag); // Required in 304. response.sendError(HttpServletResponse.SC_NOT_MODIFIED); return; } // If-Modified-Since header should be greater than LastModified. If so, then return 304. // This header is ignored if any If-None-Match header is specified. long ifModifiedSince = request.getDateHeader("If-Modified-Since"); if (ifNoneMatch == null && ifModifiedSince != -1 && ifModifiedSince + 1000 > lastModified) { response.setHeader("ETag", eTag); // Required in 304. response.sendError(HttpServletResponse.SC_NOT_MODIFIED); return; } // Validate request headers for resume ---------------------------------------------------- // If-Match header should contain "*" or ETag. If not, then return 412. String ifMatch = request.getHeader("If-Match"); if (ifMatch != null && !matches(ifMatch, eTag)) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // If-Unmodified-Since header should be greater than LastModified. If not, then return 412. long ifUnmodifiedSince = request.getDateHeader("If-Unmodified-Since"); if (ifUnmodifiedSince != -1 && ifUnmodifiedSince + 1000 <= lastModified) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // Validate and process range ------------------------------------------------------------- // Prepare some variables. The full Range represents the complete file. Range full = new Range(0, length - 1, length); List<Range> ranges = new ArrayList<Range>(); // Validate and process Range and If-Range headers. String range = request.getHeader("Range"); if (range != null) { // Range header should match format "bytes=n-n,n-n,n-n...". If not, then return 416. if (!range.matches("^bytes=\\d*-\\d*(,\\d*-\\d*)*$")) { response.setHeader("Content-Range", "bytes */" + length); // Required in 416. response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); return; } // If-Range header should either match ETag or be greater then LastModified. If not, // then return full file. String ifRange = request.getHeader("If-Range"); if (ifRange != null && !ifRange.equals(eTag)) { try { long ifRangeTime = request.getDateHeader("If-Range"); // Throws IAE if invalid. if (ifRangeTime != -1 && ifRangeTime + 1000 < lastModified) { ranges.add(full); } } catch (IllegalArgumentException ignore) { ranges.add(full); } } // If any valid If-Range header, then process each part of byte range. if (ranges.isEmpty()) { for (String part : range.substring(6).split(",")) { // Assuming a file with length of 100, the following examples returns bytes at: // 50-80 (50 to 80), 40- (40 to length=100), -20 (length-20=80 to length=100). long start = sublong(part, 0, part.indexOf("-")); long end = sublong(part, part.indexOf("-") + 1, part.length()); if (start == -1) { start = length - end; end = length - 1; } else if (end == -1 || end > length - 1) { end = length - 1; } // Check if Range is syntactically valid. If not, then return 416. if (start > end) { response.setHeader("Content-Range", "bytes */" + length); // Required in 416. response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); return; } // Add range. ranges.add(new Range(start, end, length)); } } } // Prepare and initialize response -------------------------------------------------------- // Get content type by file name and set default GZIP support and content disposition. String contentType = getServletContext().getMimeType(fileName); boolean acceptsGzip = false; String disposition = "inline"; // If content type is unknown, then set the default value. // For all content types, see: http://www.w3schools.com/media/media_mimeref.asp // To add new content types, add new mime-mapping entry in web.xml. if (contentType == null) { contentType = "text/plain"; } // If content type is text, then determine whether GZIP content encoding is supported by // the browser and expand content type with the one and right character encoding. // Else, expect for images, determine content disposition. If content type is supported by // the browser, then set to inline, else attachment which will pop a 'save as' dialogue. if (contentType.startsWith("text")) { String acceptEncoding = request.getHeader("Accept-Encoding"); acceptsGzip = acceptEncoding != null && accepts(acceptEncoding, "gzip"); contentType += ";charset=UTF-8"; } else if (!contentType.startsWith("image")) { String accept = request.getHeader("Accept"); disposition = accept != null && accepts(accept, contentType) ? "inline" : "attachment"; } // Initialize response. response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setHeader("Content-Disposition", disposition + ";filename=\"" + fileName + "\""); response.setHeader("Accept-Ranges", "bytes"); response.setHeader("ETag", eTag); response.setDateHeader("Last-Modified", lastModified); response.setDateHeader("Expires", System.currentTimeMillis() + DEFAULT_EXPIRE_TIME); // Send requested file (part(s)) to client ------------------------------------------------ // Prepare streams. RandomAccessFile input = null; OutputStream output = null; try { // Open streams. input = new RandomAccessFile(file, "r"); output = response.getOutputStream(); if (ranges.isEmpty() || ranges.get(0) == full) { // Return full file. Range r = full; response.setContentType(contentType); response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total); if (content) { if (acceptsGzip) { // The browser accepts GZIP, so GZIP the content. response.setHeader("Content-Encoding", "gzip"); output = new GZIPOutputStream(output, DEFAULT_BUFFER_SIZE); } else { // Content length is not directly predictable in case of GZIP. // So only add it if there is no means of GZIP, else browser will hang. response.setHeader("Content-Length", String.valueOf(r.length)); } // Copy full range. copy(input, output, r.start, r.length); } } else if (ranges.size() == 1) { // Return single part of file. Range r = ranges.get(0); response.setContentType(contentType); response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total); response.setHeader("Content-Length", String.valueOf(r.length)); response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206. if (content) { // Copy single part range. copy(input, output, r.start, r.length); } } else { // Return multiple parts of file. response.setContentType("multipart/byteranges; boundary=" + MULTIPART_BOUNDARY); response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206. if (content) { // Cast back to ServletOutputStream to get the easy println methods. ServletOutputStream sos = (ServletOutputStream) output; // Copy multi part range. for (Range r : ranges) { // Add multipart boundary and header fields for every range. sos.println(); sos.println("--" + MULTIPART_BOUNDARY); sos.println("Content-Type: " + contentType); sos.println("Content-Range: bytes " + r.start + "-" + r.end + "/" + r.total); // Copy single part range of multi part range. copy(input, output, r.start, r.length); } // End with multipart boundary. sos.println(); sos.println("--" + MULTIPART_BOUNDARY + "--"); } } } finally { // Gently close streams. close(output); close(input); } }
From source file:eionet.cr.web.util.columns.SubjectPredicateColumn.java
/** * @see eionet.cr.web.util.columns.SearchResultColumn#format(java.lang.Object) * * Gets the collection of objects matching to the given predicate in the given subject. Formats the given collection to * comma-separated string. For literal objects, simply the value of the literal will be used. For resource objects, * clickable factsheet links will be created. *///w w w .java 2 s.c om @Override public String format(Object object) { String result = null; if (object != null && object instanceof SubjectDTO && predicateUri != null) { SubjectDTO subjectDTO = (SubjectDTO) object; Collection<ObjectDTO> objects = subjectDTO.getObjectsForSearchResultsDisplay(predicateUri, getLanguages()); if (predicateUri.equals(Predicates.RDFS_LABEL)) { if (objects.isEmpty()) { Collection<String> rdfTypes = subjectDTO.getObjectValues(Predicates.RDF_TYPE); if (CollectionUtils.isEmpty(rdfTypes) && subjectTypes != null) { rdfTypes = Arrays.asList(subjectTypes); } if (CollectionUtils.exists(rdfTypes, new EqualPredicate(Subjects.DATACUBE_OBSERVATION))) { // If type is DataCube observation, then special handling. result = StringUtils.substringAfter(subjectDTO.getUri(), ScoreboardSparqlDAO.OBSERVATION_URI_PREFIX); if (StringUtils.isBlank(result)) { result = subjectDTO.getUri(); } } else { result = URIUtil.extractURILabel(subjectDTO.getUri(), SubjectDTO.NO_LABEL); } } else { result = objectValuesToCSV(objects); } logger.debug(result); result = buildFactsheetLink(subjectDTO.getUri(), StringEscapeUtils.escapeXml(result), false); } else if (!objects.isEmpty()) { StringBuffer buf = new StringBuffer(); for (ObjectDTO o : objects) { if (buf.length() > 0) { buf.append(", "); } if (o.isLiteral()) { buf.append(o.getValue()); } else { String label = o.getDerviedLiteralValue(); if (label == null) { label = URIUtil.extractURILabel(o.getValue(), SubjectDTO.NO_LABEL); } buf.append(buildFactsheetLink(o.getValue(), StringEscapeUtils.escapeXml(label), true)); } } result = buf.toString(); } } return StringUtils.isBlank(result) ? " " : result; }
From source file:com.blackducksoftware.tools.scmconnector.integrations.git.GitConnector.java
public static String addCredentialStringToGitUrl(String url, String credentialString) { for (String protocol : CREDENTIAL_COMPATABLE_PROTOCOLS) { if (url.startsWith(protocol) && !url.contains("@") && StringUtils.isNotBlank(credentialString)) { StringBuilder sb = new StringBuilder(protocol); /*//from ww w . ja v a 2 s . c o m * Example * * 1. * ssh://blackduck@mamba-vm.blackducksoftware.com/usr/src/git/ * SampleFiles.git 2. * ssh://mamba-vm.blackducksoftware.com/usr/src * /git/SampleFiles.git If we are here then the url would be in * the form of 2 (1 form will never make it here) */ sb.append(credentialString); sb.append('@'); sb.append(StringUtils.substringAfter(url, protocol)); return sb.toString(); } } return url; }
From source file:com.thalesgroup.hudson.plugins.klocwork.KloResult.java
/** * Returns the dynamic result of the selection element. * * @param link the link to identify the sub page to show * @param request Stapler request//from w w w .j a va2s.c om * @param response Stapler response * @return the dynamic result of the analysis (detail page). * @throws IOException */ public Object getDynamic(final String link, final StaplerRequest request, final StaplerResponse response) throws IOException { if (link.startsWith("source.")) { if (!owner.getProject().getACL().hasPermission(Item.WORKSPACE)) { response.sendRedirect2("nosourcepermission"); return null; } //Map<Integer, KloFile> agregateMap = report.getInternalMap(); Map<Integer, KloWorkspaceFile> agregateMap = kloSourceContainer.getInternalMap(); if (agregateMap != null) { KloWorkspaceFile vKloFile = agregateMap .get(Integer.parseInt(StringUtils.substringAfter(link, "source."))); if (vKloFile == null) { throw new IllegalArgumentException("Error for retrieving the source file with link:" + link); } return new KloSource(owner, vKloFile); } } return null; }
From source file:eu.annocultor.analyzers.SolrPropertyHitsAnalyzer.java
static String extractQuery(String line) { line = StringUtils.substringAfter(line, ", query="); String query = StringUtils.substringBefore(line, ", "); if (StringUtils.length(query) < 3) { // try referal query = StringUtils.substringAfter(line, ", referer="); query = StringUtils.substringAfter(query, "&q="); if (!StringUtils.isBlank(query)) { query = StringUtils.substringBefore(query, "&"); query = StringUtils.replace(query, "+", " "); if (isLongEnoughToCount(query)) { return query; } else { return ""; }//w w w.java 2s .co m } } return query; }
From source file:com.hangum.tadpole.engine.query.sql.DBSystemSchema.java
/** * getViewColumn/* w ww . j av a 2s.co m*/ * * @param userDB * @param tableDao * @return * @throws TadpoleSQLManagerException * @throws SQLException */ public static List<TableColumnDAO> getViewColumnList(final UserDBDAO userDB, final TableDAO tableDao) throws TadpoleSQLManagerException, SQLException { List<TableColumnDAO> showViewColumns = new ArrayList<TableColumnDAO>(); Map<String, String> param = new HashMap<String, String>(); if (userDB.getDBDefine() == DBDefine.ALTIBASE_DEFAULT) { param.put("user", StringUtils.substringBefore(tableDao.getName(), ".")); param.put("table", StringUtils.substringAfter(tableDao.getName(), ".")); } else { param.put("db", userDB.getDb()); //$NON-NLS-1$ param.put("schema", tableDao.getSchema_name()); //$NON-NLS-1$ param.put("table", tableDao.getName()); //$NON-NLS-1$ } SqlMapClient sqlClient = TadpoleSQLManager.getInstance(userDB); showViewColumns = sqlClient.queryForList("tableColumnList", param); //$NON-NLS-1$ // if find the keyword is add system quote. for (TableColumnDAO td : showViewColumns) { td.setSysName(SQLUtil.makeIdentifierName(userDB, td.getField())); } return showViewColumns; }
From source file:com.btobits.automator.fix.comparator.MailComparator.java
public static final String getHeaderField(final String inName, final SMTPMessage inSmtpMessage) { final List<Object> lines = inSmtpMessage.getDataLines(); for (final Object obj : lines) { final String val = (String) obj; final String header = inName + ": "; if (!StringUtils.isBlank(val)) { if (StringUtils.startsWith(val, header)) { return StringUtils.substringAfter(val, header); }/*w ww . j a va2 s .c o m*/ } else { break; // data field } } return null; }
From source file:com.facultyshowcase.app.ui.UIUtil.java
public static void writeProperty(EntityUtilWriter writer, String htmlClass, String label, URL link) { writeContainerBeginning(writer, htmlClass); writeLabel(writer, htmlClass, label); if (link != null) { writer.append("<a ").appendEscapedAttribute("href", link.toString()).append(">"); writer.append("<span "); writer.appendEscapedAttribute(CLASS, CmsHTMLClassNames.convertClassName(PROP + " " + htmlClass)); writer.append(">"); writer.appendEscapedData(StringUtils.substringAfter(link.toString(), "://")); writer.append("</span>"); writer.append("</a>"); } else {//from ww w. ja v a 2 s . co m writer.append("<span "); writer.appendEscapedAttribute(CLASS, CmsHTMLClassNames.convertClassName(PROP + " " + htmlClass)); writer.append(">"); writer.append("</span>"); } writeContainerEnd(writer); }