Example usage for org.apache.commons.lang StringUtils substringAfter

List of usage examples for org.apache.commons.lang StringUtils substringAfter

Introduction

In this page you can find the example usage for org.apache.commons.lang StringUtils substringAfter.

Prototype

public static String substringAfter(String str, String separator) 

Source Link

Document

Gets the substring after the first occurrence of a separator.

Usage

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) ? "&nbsp;" : 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);

}