Example usage for java.time ZoneId SHORT_IDS

List of usage examples for java.time ZoneId SHORT_IDS

Introduction

In this page you can find the example usage for java.time ZoneId SHORT_IDS.

Prototype

Map SHORT_IDS

To view the source code for java.time ZoneId SHORT_IDS.

Click Source Link

Document

A map of zone overrides to enable the short time-zone names to be used.

Usage

From source file:Main.java

public static void main(String[] args) {
    Map<String, String> z = ZoneId.SHORT_IDS;

    System.out.println(z);
}

From source file:Main.java

public static void main(String[] args) {
    // Date to Instant
    Instant timestamp = new Date().toInstant();

    // convert Instant to LocalDateTime or other similar classes
    LocalDateTime date = LocalDateTime.ofInstant(timestamp, ZoneId.of(ZoneId.SHORT_IDS.get("PST")));
    System.out.println("Date = " + date);

}

From source file:org.eclipse.hawkbit.ui.utils.SPDateTimeUtil.java

/**
 * Get time zone id .ZoneId.SHORT_IDS used get id if time zone is
 * abbreviated like 'IST'./*  w  ww . j ava 2  s  .co m*/
 *
 * @param tz
 * @return ZoneId
 */
public static ZoneId getTimeZoneId(final TimeZone tz) {
    return ZoneId.of(tz.getID(), ZoneId.SHORT_IDS);
}

From source file:org.hippoecm.frontend.plugins.standards.datetime.DateTimePrinter.java

static ZoneId toZoneId(final TimeZone timeZone) {
    return ZoneId.of(timeZone.getID(), ZoneId.SHORT_IDS);
}

From source file:org.ops4j.pax.web.itest.jetty.WarJsfResourcehandlerIntegrationTest.java

/**
 * Does multiple assertions in one test since container-startup is slow
 * <p>/*  w  w w.  j a  v a  2s . com*/
 * <pre>
 * <ul>
 *    <li>Check if pax-web-resources-jsf is started</li>
 *    <li>Check if application under test (jsf-application-myfaces) is started
 *    <li>Test actual resource-handler
 *       <ul>
 *          <li>Test for occurence of 'Hello JSF' (jsf-application-myfaces)</li>
 *          <li>Test for occurence of 'Standard Header' (jsf-resourcebundle)</li>
 *          <li>Test for occurence of 'iceland.jpg' from library 'default' in version '2_0' (jsf-resourcebundle)</li>
 *          <li>Test for occurence of 'Customized Footer' (jsf-resourcebundle)</li>
 *          <li>Access a resource (image) via HTTP which gets loaded from a other bundle (jsf-resourcebundle)</li>
 *       </ul>
 *    </li>
 *  <li>Test localized resource
 *        <ul>
 *          <li>Test for occurence of 'flag.png' from library 'layout' with default locale 'en' which resolves to 'iceland' (default in faces-config)</li>
 *            <li>Test for occurence of 'flag.png' from library 'layout' with default locale 'de' which resolves to 'germany'</li>
 *        </ul>
 *    </li>
 *    <li>Test resource-overide
 *        <ul>
 *            <li>Install another bundle (jsf-resourcebundle-override) which also serves  template/footer.xhtml</li>
 *            <li>Test for occurence of 'Overriden Footer' (jsf-resourcebundle-override)</li>
 *          <li>Test for occurence of 'iceland.jpg' from library 'default' in version '3_0' (jsf-resourcebundle-override)</li>
 *            <li>Uninstall the previously installed bundle</li>
 *            <li>Test again, this time for occurence of 'Customized Footer' (jsf-resourcebundle)</li>
 *        </ul>
 *    </li>
 *    <li>
 *        Test {@link OsgiResource#userAgentNeedsUpdate(FacesContext)}
 *        with an If-Modified-Since header
 *    </li>
 *    <li>Test servletmapping with prefix (faces/*) rather than extension for both, page and image serving</li>
 * </ul>
 * </pre>
 */
@Test
public void testJsfResourceHandler() throws Exception {
    final String pageUrl = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/index.xhtml";
    final String imageUrl = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&ln=default&lv=2_0";

    // prepare Bundle
    initWebListener();
    installAndStartBundle(mavenBundle().groupId("org.ops4j.pax.web.samples")
            .artifactId("jsf-resourcehandler-myfaces").versionAsInProject().getURL());

    waitForWebListener();

    new WaitCondition2("pax-web-resources-extender done scanning for webresources-bundles", () -> {
        try {
            HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrl);
            return true;
        } catch (AssertionError | Exception e) {
            return false;
        }
    }).waitForCondition(20000, 1000,
            () -> fail("Image not served in time. pax-web-resources-extender not finished"));

    // start testing
    BundleMatchers.isBundleActive("org.ops4j.pax.web.pax-web-resources-extender", bundleContext);
    BundleMatchers.isBundleActive("org.ops4j.pax.web.pax-web-resources-jsf", bundleContext);
    BundleMatchers.isBundleActive("jsf-resourcehandler-resourcebundle", bundleContext);
    BundleMatchers.isBundleActive("jsf-resourcehandler-myfaces", bundleContext);

    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Some Content shall be included from the jsf-application-bundle to test internal view-resources",
            resp -> StringUtils.contains(resp, "Hello Included Content"))
            .withResponseAssertion(
                    "Standard header shall be loaded from resourcebundle to test external view-resources",
                    resp -> StringUtils.contains(resp, "Standard Header"))
            .withResponseAssertion("Images shall be loaded from resourcebundle to test external resources",
                    resp -> StringUtils.contains(resp, "iceland.jpg"))
            .withResponseAssertion(
                    "Customized footer shall be loaded from resourcebundle to test external view-resources",
                    resp -> StringUtils.contains(resp, "Customized Footer"))
            .withResponseAssertion("Image-URL must be created from OsgiResource", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&amp;ln=default&amp;lv=2_0"))
            .withResponseAssertion("Flag-URL must be served from iceland-folder", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/flag.png.xhtml?type=osgi&amp;loc=iceland&amp;ln=layout"))
            .doGETandExecuteTest(pageUrl);
    // Test German image
    HttpTestClientFactory.createDefaultTestClient()
            // set header for german-locale in JSF
            .addRequestHeader("Accept-Language", "de").withReturnCode(200)
            .withResponseAssertion("Flag-URL must be served from germany-folder", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/flag.png.xhtml?type=osgi&amp;loc=germany&amp;ln=layout"))
            .doGETandExecuteTest(pageUrl);
    // test resource serving for image
    HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrl);
    // Install override bundle
    String bundlePath = mavenBundle().groupId("org.ops4j.pax.web.samples")
            .artifactId("jsf-resourcehandler-resourcebundle-override").versionAsInProject().getURL();
    Bundle installedResourceBundle = installAndStartBundle(bundlePath);
    BundleMatchers.isBundleActive(installedResourceBundle.getSymbolicName(), bundleContext);

    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Overriden footer shall be loaded from resourcebundle-override  to test external view-resources which are overriden",
            resp -> StringUtils.contains(resp, "Overriden Footer"))
            .withResponseAssertion("Iceland-Picture shall be found in version 3.0 from resourcebunde-override",
                    resp -> StringUtils.contains(resp,
                            "javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&amp;ln=default&amp;lv=2_0&amp;rv=3_0.jpg"))
            .doGETandExecuteTest(pageUrl);

    // uninstall overriding bundle
    installedResourceBundle.stop();

    new WaitCondition2("Customized footer shall be loaded from resourcebundle", () -> {
        try {
            HttpTestClientFactory.createDefaultTestClient()
                    .withResponseAssertion("Customized footer shall be loaded from resourcebundle",
                            resp -> StringUtils.contains(resp, "Customized Footer"))
                    .doGETandExecuteTest(pageUrl);
            return true;
        } catch (AssertionError | Exception e) {
            return false;
        }
    }).waitForCondition(5000, 1000,
            () -> fail("After uninstalling 'jsf-resourcehandler-resourcebundle-override' "
                    + "the customized foot must be loaded again."));

    // Test If-Modified-Since
    ZonedDateTime now = ZonedDateTime.of(LocalDateTime.now(), ZoneId.of(ZoneId.SHORT_IDS.get("ECT")));
    // "Modified-Since should mark response with 304"
    HttpTestClientFactory.createDefaultTestClient().withReturnCode(304)
            .addRequestHeader("If-Modified-Since", now.format(DateTimeFormatter.RFC_1123_DATE_TIME))
            .doGETandExecuteTest(imageUrl);

    // Test second faces-mapping which uses a prefix (faces/*)
    final String pageUrlWithPrefixMapping = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/faces/index.xhtml";
    final String imageUrlWithPrefixMapping = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/faces/javax.faces.resource/images/iceland.jpg?type=osgi&ln=default&lv=2_0";

    HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrlWithPrefixMapping);
    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Image-URL must be created from OsgiResource. This time the second servlet-mapping (faces/*) must be used.",
            resp -> StringUtils.contains(resp,
                    "/osgi-resourcehandler-myfaces/faces/javax.faces.resource/images/iceland.jpg?type=osgi&amp;ln=default&amp;lv=2_0"))
            .doGETandExecuteTest(pageUrlWithPrefixMapping);
}

From source file:org.ops4j.pax.web.itest.tomcat.WarJsfResourcehandlerIntegrationTest.java

/**
 * Does multiple assertions in one test since container-startup is slow
 * <p>//from w  ww.j  a v a 2  s  . co m
 * <pre>
 * <ul>
 *    <li>Check if pax-web-resources-jsf is started</li>
 *    <li>Check if application under test (jsf-application-myfaces) is started
 *    <li>Test actual resource-handler
 *       <ul>
 *          <li>Test for occurence of 'Hello JSF' (jsf-application-myfaces)</li>
 *          <li>Test for occurence of 'Standard Header' (jsf-resourcebundle)</li>
 *          <li>Test for occurence of 'iceland.jpg' from library 'default' in version '2_0' (jsf-resourcebundle)</li>
 *          <li>Test for occurence of 'Customized Footer' (jsf-resourcebundle)</li>
 *          <li>Access a resource (image) via HTTP which gets loaded from a other bundle (jsf-resourcebundle)</li>
 *       </ul>
 *    </li>
 *  <li>Test localized resource
 *        <ul>
 *          <li>Test for occurence of 'flag.png' from library 'layout' with default locale 'en' which resolves to 'iceland' (default in faces-config)</li>
 *            <li>Test for occurence of 'flag.png' from library 'layout' with default locale 'de' which resolves to 'germany'</li>
 *        </ul>
 *    </li>
 *    <li>Test resource-overide
 *        <ul>
 *            <li>Install another bundle (jsf-resourcebundle-override) which also serves  template/footer.xhtml</li>
 *            <li>Test for occurence of 'Overriden Footer' (jsf-resourcebundle-override)</li>
 *          <li>Test for occurence of 'iceland.jpg' from library 'default' in version '3_0' (jsf-resourcebundle-override)</li>
 *            <li>Uninstall the previously installed bundle</li>
 *            <li>Test again, this time for occurence of 'Customized Footer' (jsf-resourcebundle)</li>
 *        </ul>
 *    </li>
 *    <li>
 *        Test {@link OsgiResource#userAgentNeedsUpdate(FacesContext)}
 *        with an If-Modified-Since header
 *    </li>
 *    <li>Test servletmapping with prefix (faces/*) rather than extension for both, page and image serving</li>
 * </ul>
 * </pre>
 */
@Test
public void testJsfResourceHandler() throws Exception {
    final String pageUrl = "http://127.0.0.1:8282/osgi-resourcehandler-myfaces/index.xhtml";
    final String imageUrl = "http://127.0.0.1:8282/osgi-resourcehandler-myfaces/javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&ln=default&lv=2_0";

    // prepare Bundle
    initWebListener();
    installAndStartBundle(mavenBundle().groupId("org.ops4j.pax.web.samples")
            .artifactId("jsf-resourcehandler-myfaces").versionAsInProject().getURL());

    waitForWebListener();
    new WaitCondition2("pax-web-resources-extender done scanning for webresources-bundles", () -> {
        try {
            HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrl);
            return true;
        } catch (AssertionError | Exception e) {
            return false;
        }
    }).waitForCondition(20000, 1000,
            () -> fail("Image not served in time. pax-web-resources-extender not finished"));

    // start testing
    BundleMatchers.isBundleActive("org.ops4j.pax.web.pax-web-resources-extender", bundleContext);
    BundleMatchers.isBundleActive("org.ops4j.pax.web.pax-web-resources-jsf", bundleContext);
    BundleMatchers.isBundleActive("jsf-resourcehandler-resourcebundle", bundleContext);
    BundleMatchers.isBundleActive("jsf-resourcehandler-myfaces", bundleContext);

    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Some Content shall be included from the jsf-application-bundle to test internal view-resources",
            resp -> StringUtils.contains(resp, "Hello Included Content"))
            .withResponseAssertion(
                    "Standard header shall be loaded from resourcebundle to test external view-resources",
                    resp -> StringUtils.contains(resp, "Standard Header"))
            .withResponseAssertion("Images shall be loaded from resourcebundle to test external resources",
                    resp -> StringUtils.contains(resp, "iceland.jpg"))
            .withResponseAssertion(
                    "Customized footer shall be loaded from resourcebundle to test external view-resources",
                    resp -> StringUtils.contains(resp, "Customized Footer"))
            .withResponseAssertion("Image-URL must be created from OsgiResource", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&amp;ln=default&amp;lv=2_0"))
            .withResponseAssertion("Flag-URL must be served from iceland-folder", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/flag.png.xhtml?type=osgi&amp;loc=iceland&amp;ln=layout"))
            .doGETandExecuteTest(pageUrl);
    // Test German image
    HttpTestClientFactory.createDefaultTestClient()
            // set header for german-locale in JSF
            .addRequestHeader("Accept-Language", "de").withReturnCode(200)
            .withResponseAssertion("Flag-URL must be served from germany-folder", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/flag.png.xhtml?type=osgi&amp;loc=germany&amp;ln=layout"))
            .doGETandExecuteTest(pageUrl);
    // test resource serving for image
    HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrl);
    // Install override bundle
    String bundlePath = mavenBundle().groupId("org.ops4j.pax.web.samples")
            .artifactId("jsf-resourcehandler-resourcebundle-override").versionAsInProject().getURL();
    Bundle installedResourceBundle = installAndStartBundle(bundlePath);
    BundleMatchers.isBundleActive(installedResourceBundle.getSymbolicName(), bundleContext);

    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Overriden footer shall be loaded from resourcebundle-override  to test external view-resources which are overriden",
            resp -> StringUtils.contains(resp, "Overriden Footer"))
            .withResponseAssertion("Iceland-Picture shall be found in version 3.0 from resourcebunde-override",
                    resp -> StringUtils.contains(resp,
                            "javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&amp;ln=default&amp;lv=2_0&amp;rv=3_0.jpg"))
            .doGETandExecuteTest(pageUrl);

    // uninstall overriding bundle
    installedResourceBundle.stop();

    new WaitCondition2("Customized footer shall be loaded from resourcebundle", () -> {
        try {
            HttpTestClientFactory.createDefaultTestClient()
                    .withResponseAssertion("Customized footer shall be loaded from resourcebundle",
                            resp -> StringUtils.contains(resp, "Customized Footer"))
                    .doGETandExecuteTest(pageUrl);
            return true;
        } catch (AssertionError | Exception e) {
            return false;
        }
    }).waitForCondition(5000, 1000,
            () -> fail("After uninstalling 'jsf-resourcehandler-resourcebundle-override' "
                    + "the customized foot must be loaded again."));

    // Test If-Modified-Since
    ZonedDateTime now = ZonedDateTime.of(LocalDateTime.now(), ZoneId.of(ZoneId.SHORT_IDS.get("ECT")));
    // "Modified-Since should mark response with 304"
    HttpTestClientFactory.createDefaultTestClient().withReturnCode(304)
            .addRequestHeader("If-Modified-Since", now.format(DateTimeFormatter.RFC_1123_DATE_TIME))
            .doGETandExecuteTest(imageUrl);

    // Test second faces-mapping which uses a prefix (faces/*)
    final String pageUrlWithPrefixMapping = "http://127.0.0.1:8282/osgi-resourcehandler-myfaces/faces/index.xhtml";
    final String imageUrlWithPrefixMapping = "http://127.0.0.1:8282/osgi-resourcehandler-myfaces/faces/javax.faces.resource/images/iceland.jpg?type=osgi&ln=default&lv=2_0";

    HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrlWithPrefixMapping);
    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Image-URL must be created from OsgiResource. This time the second servlet-mapping (faces/*) must be used.",
            resp -> StringUtils.contains(resp,
                    "/osgi-resourcehandler-myfaces/faces/javax.faces.resource/images/iceland.jpg?type=osgi&amp;ln=default&amp;lv=2_0"))
            .doGETandExecuteTest(pageUrlWithPrefixMapping);
}

From source file:org.ops4j.pax.web.itest.undertow.WarJsfResourcehandlerIntegrationTest.java

/**
 * Does multiple assertions in one test since container-startup is slow
 * <p>/*  w  w w. j a va  2s.c  om*/
 * <pre>
 * <ul>
 *    <li>Check if pax-web-resources-jsf is started</li>
 *    <li>Check if application under test (jsf-application-myfaces) is started
 *    <li>Test actual resource-handler
 *       <ul>
 *          <li>Test for occurence of 'Hello JSF' (jsf-application-myfaces)</li>
 *          <li>Test for occurence of 'Standard Header' (jsf-resourcebundle)</li>
 *          <li>Test for occurence of 'iceland.jpg' from library 'default' in version '2_0' (jsf-resourcebundle)</li>
 *          <li>Test for occurence of 'Customized Footer' (jsf-resourcebundle)</li>
 *          <li>Access a resource (image) via HTTP which gets loaded from a other bundle (jsf-resourcebundle)</li>
 *       </ul>
 *    </li>
 *  <li>Test localized resource
 *        <ul>
 *          <li>Test for occurence of 'flag.png' from library 'layout' with default locale 'en' which resolves to 'iceland' (default in faces-config)</li>
 *            <li>Test for occurence of 'flag.png' from library 'layout' with default locale 'de' which resolves to 'germany'</li>
 *        </ul>
 *    </li>
 *    <li>Test resource-overide
 *        <ul>
 *            <li>Install another bundle (jsf-resourcebundle-override) which also serves  template/footer.xhtml</li>
 *            <li>Test for occurence of 'Overriden Footer' (jsf-resourcebundle-override)</li>
 *          <li>Test for occurence of 'iceland.jpg' from library 'default' in version '3_0' (jsf-resourcebundle-override)</li>
 *            <li>Uninstall the previously installed bundle</li>
 *            <li>Test again, this time for occurence of 'Customized Footer' (jsf-resourcebundle)</li>
 *        </ul>
 *    </li>
 *    <li>
 *        Test {@link OsgiResource#userAgentNeedsUpdate(FacesContext)}
 *        with an If-Modified-Since header
 *    </li>
 *    <li>Test servletmapping with prefix (faces/*) rather than extension for both, page and image serving</li>
 * </ul>
 * </pre>
 */
@Test
public void testJsfResourceHandler() throws Exception {
    final String pageUrl = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/index.xhtml";
    final String imageUrl = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&ln=default&lv=2_0";

    // prepare Bundle
    initWebListener();
    installAndStartBundle(mavenBundle().groupId("org.ops4j.pax.web.samples")
            .artifactId("jsf-resourcehandler-myfaces").versionAsInProject().getURL());

    waitForWebListener();
    new WaitCondition2("pax-web-resources-extender done scanning for webresources-bundles", () -> {
        try {
            HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrl);
            return true;
        } catch (AssertionError | Exception e) {
            return false;
        }
    }).waitForCondition(20000, 1000,
            () -> fail("Image not served in time. pax-web-resources-extender not finished"));

    // start testing
    BundleMatchers.isBundleActive("org.ops4j.pax.web.pax-web-resources-extender", bundleContext);
    BundleMatchers.isBundleActive("org.ops4j.pax.web.pax-web-resources-jsf", bundleContext);
    BundleMatchers.isBundleActive("jsf-resourcehandler-resourcebundle", bundleContext);
    BundleMatchers.isBundleActive("jsf-resourcehandler-myfaces", bundleContext);

    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Some Content shall be included from the jsf-application-bundle to test internal view-resources",
            resp -> StringUtils.contains(resp, "Hello Included Content"))
            .withResponseAssertion(
                    "Standard header shall be loaded from resourcebundle to test external view-resources",
                    resp -> StringUtils.contains(resp, "Standard Header"))
            .withResponseAssertion("Images shall be loaded from resourcebundle to test external resources",
                    resp -> StringUtils.contains(resp, "iceland.jpg"))
            .withResponseAssertion(
                    "Customized footer shall be loaded from resourcebundle to test external view-resources",
                    resp -> StringUtils.contains(resp, "Customized Footer"))
            .withResponseAssertion("Image-URL must be created from OsgiResource", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&amp;ln=default&amp;lv=2_0"))
            .withResponseAssertion("Flag-URL must be served from iceland-folder", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/flag.png.xhtml?type=osgi&amp;loc=iceland&amp;ln=layout"))
            .doGETandExecuteTest(pageUrl);
    // Test German image
    HttpTestClientFactory.createDefaultTestClient()
            // set header for german-locale in JSF
            .addRequestHeader("Accept-Language", "de").withReturnCode(200)
            .withResponseAssertion("Flag-URL must be served from germany-folder", resp -> StringUtils.contains(
                    resp,
                    "/osgi-resourcehandler-myfaces/javax.faces.resource/flag.png.xhtml?type=osgi&amp;loc=germany&amp;ln=layout"))
            .doGETandExecuteTest(pageUrl);
    // test resource serving for image
    HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrl);
    // Install override bundle
    String bundlePath = mavenBundle().groupId("org.ops4j.pax.web.samples")
            .artifactId("jsf-resourcehandler-resourcebundle-override").versionAsInProject().getURL();
    Bundle installedResourceBundle = installAndStartBundle(bundlePath);
    BundleMatchers.isBundleActive(installedResourceBundle.getSymbolicName(), bundleContext);

    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Overriden footer shall be loaded from resourcebundle-override  to test external view-resources which are overriden",
            resp -> StringUtils.contains(resp, "Overriden Footer"))
            .withResponseAssertion("Iceland-Picture shall be found in version 3.0 from resourcebunde-override",
                    resp -> StringUtils.contains(resp,
                            "javax.faces.resource/images/iceland.jpg.xhtml?type=osgi&amp;ln=default&amp;lv=2_0&amp;rv=3_0.jpg"))
            .doGETandExecuteTest(pageUrl);

    // uninstall overriding bundle
    installedResourceBundle.stop();

    new WaitCondition2("Customized footer shall be loaded from resourcebundle", () -> {
        try {
            HttpTestClientFactory.createDefaultTestClient()
                    .withResponseAssertion("Customized footer shall be loaded from resourcebundle",
                            resp -> StringUtils.contains(resp, "Customized Footer"))
                    .doGETandExecuteTest(pageUrl);
            return true;
        } catch (AssertionError | Exception e) {
            return false;
        }
    }).waitForCondition(5000, 1000,
            () -> fail("After uninstalling 'jsf-resourcehandler-resourcebundle-override' "
                    + "the customized foot must be loaded again."));

    // Test If-Modified-Since
    ZonedDateTime now = ZonedDateTime.of(LocalDateTime.now(), ZoneId.of(ZoneId.SHORT_IDS.get("ECT")));
    // "Modified-Since should mark response with 304"
    HttpTestClientFactory.createDefaultTestClient().withReturnCode(304)
            .addRequestHeader("If-Modified-Since", now.format(DateTimeFormatter.RFC_1123_DATE_TIME))
            .doGETandExecuteTest(imageUrl);

    // Test second faces-mapping which uses a prefix (faces/*)
    final String pageUrlWithPrefixMapping = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/faces/index.xhtml";
    final String imageUrlWithPrefixMapping = "http://127.0.0.1:8181/osgi-resourcehandler-myfaces/faces/javax.faces.resource/images/iceland.jpg?type=osgi&ln=default&lv=2_0";

    HttpTestClientFactory.createDefaultTestClient().doGETandExecuteTest(imageUrlWithPrefixMapping);
    HttpTestClientFactory.createDefaultTestClient().withResponseAssertion(
            "Image-URL must be created from OsgiResource. This time the second servlet-mapping (faces/*) must be used.",
            resp -> StringUtils.contains(resp,
                    "/osgi-resourcehandler-myfaces/faces/javax.faces.resource/images/iceland.jpg?type=osgi&amp;ln=default&amp;lv=2_0"))
            .doGETandExecuteTest(pageUrlWithPrefixMapping);
}