Search in sources :

Example 1 with RemoteTomEEContainer

use of org.apache.tomee.arquillian.remote.RemoteTomEEContainer in project tomee by apache.

the class TimeoutConfigTest method timeout.

@Test
public void timeout() {
    new RemoteTomEEContainer() {

        {
            setup(new RemoteTomEEConfiguration() {

                {
                    setProviderUrlPattern("%s?readTimeout=30000&connectTimeout=30000");
                }
            });
            assertEquals("http://localhost:8080/tomee/ejb?readTimeout=30000&connectTimeout=30000", providerUrl());
        }
    };
}
Also used : RemoteTomEEConfiguration(org.apache.tomee.arquillian.remote.RemoteTomEEConfiguration) RemoteTomEEContainer(org.apache.tomee.arquillian.remote.RemoteTomEEContainer) Test(org.junit.Test)

Example 2 with RemoteTomEEContainer

use of org.apache.tomee.arquillian.remote.RemoteTomEEContainer in project tomee by apache.

the class MicroProfileJWTTCKArchiveProcessor method process.

@Override
public void process(final Archive<?> applicationArchive, final TestClass testClass) {
    if (!(applicationArchive instanceof WebArchive)) {
        return;
    }
    final WebArchive war = WebArchive.class.cast(applicationArchive);
    // Add Required Libraries
    war.addAsLibrary(JarLocation.jarLocation(TokenUtils.class)).addAsLibrary(JarLocation.jarLocation(JWSSigner.class)).addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
    // Provide keys required for tests (vendor specific way)
    war.addClass(JWTAuthContextInfoProvider.class);
    // Spec says that vendor specific ways to load the keys take precedence, so we need to remove it in test
    // cases that use the Config approach.
    Stream.of(PublicKeyAsPEMTest.class, PublicKeyAsPEMLocationTest.class, PublicKeyAsFileLocationURLTest.class, PublicKeyAsJWKTest.class, PublicKeyAsBase64JWKTest.class, PublicKeyAsJWKLocationTest.class, PublicKeyAsJWKLocationURLTest.class, PublicKeyAsJWKSTest.class, PublicKeyAsJWKSLocationTest.class, IssValidationTest.class, ExpClaimValidationTest.class, ExpClaimAllowMissingExpValidationTest.class, org.apache.tomee.microprofile.tck.jwt.config.PublicKeyAsPEMLocationTest.class, org.apache.tomee.microprofile.tck.jwt.config.PublicKeyAsJWKLocationURLTest.class).filter(c -> c.equals(testClass.getJavaClass())).findAny().ifPresent(c -> war.deleteClass(JWTAuthContextInfoProvider.class));
    // MP Config in wrong place - See https://github.com/eclipse/microprofile/issues/46.
    final Map<ArchivePath, Node> content = war.getContent(object -> object.get().matches(".*META-INF/.*"));
    content.forEach((archivePath, node) -> war.addAsResource(node.getAsset(), node.getPath()));
    // Rewrite the correct server port in configuration
    final Container container = containerRegistry.get().getContainer(TargetDescription.DEFAULT);
    if (container.getDeployableContainer() instanceof RemoteTomEEContainer) {
        final RemoteTomEEContainer remoteTomEEContainer = (RemoteTomEEContainer) container.getDeployableContainer();
        final RemoteTomEEConfiguration configuration = remoteTomEEContainer.getConfiguration();
        final String httpPort = configuration.getHttpPort() + "";
        final Map<ArchivePath, Node> microprofileProperties = war.getContent(object -> object.get().matches(".*META-INF/microprofile-config\\.properties"));
        microprofileProperties.forEach((archivePath, node) -> {
            try {
                final Properties properties = new Properties();
                properties.load(node.getAsset().openStream());
                properties.replaceAll((key, value) -> ((String) value).replaceAll("8080", httpPort + "/" + "KeyEndpoint.war".replaceAll("\\.war", "")));
                final StringWriter stringWriter = new StringWriter();
                properties.store(stringWriter, null);
                war.delete(archivePath);
                war.add(new StringAsset(stringWriter.toString()), node.getPath());
            } catch (final IOException e) {
                e.printStackTrace();
            }
        });
    }
    System.out.println(war.toString(true));
}
Also used : StringAsset(org.jboss.shrinkwrap.api.asset.StringAsset) ExpClaimAllowMissingExpValidationTest(org.apache.tomee.microprofile.tck.jwt.validation.ExpClaimAllowMissingExpValidationTest) Node(org.jboss.shrinkwrap.api.Node) TokenUtils(org.eclipse.microprofile.jwt.tck.util.TokenUtils) Properties(java.util.Properties) ArchivePath(org.jboss.shrinkwrap.api.ArchivePath) RemoteTomEEContainer(org.apache.tomee.arquillian.remote.RemoteTomEEContainer) Container(org.jboss.arquillian.container.spi.Container) StringWriter(java.io.StringWriter) WebArchive(org.jboss.shrinkwrap.api.spec.WebArchive) RemoteTomEEConfiguration(org.apache.tomee.arquillian.remote.RemoteTomEEConfiguration) IOException(java.io.IOException) RemoteTomEEContainer(org.apache.tomee.arquillian.remote.RemoteTomEEContainer) ExpClaimValidationTest(org.apache.tomee.microprofile.tck.jwt.validation.ExpClaimValidationTest)

Example 3 with RemoteTomEEContainer

use of org.apache.tomee.arquillian.remote.RemoteTomEEContainer in project tomee by apache.

the class DeployInWebAppsDirectoryTest method test.

@Test
public void test() throws Exception {
    final RemoteTomEEConfiguration configuration = new RemoteTomEEConfiguration();
    configuration.setGroupId("org.apache.tomee");
    configuration.setArtifactId("apache-tomee");
    configuration.setClassifier("plus");
    configuration.setVersion(System.getProperty("tomee.version"));
    configuration.setHttpPort(-1);
    final RemoteTomEEContainer container = new RemoteTomEEContainer();
    container.setup(configuration);
    try {
        container.start();
        final File webapps = new File(configuration.getDir(), "apache-tomee-" + configuration.getClassifier() + "-" + configuration.getVersion() + "/webapps");
        webapps.mkdirs();
        final File enterpriseArchive = Maven.resolver().resolve("org.superbiz:moviefun-ear:ear:1.1.0-SNAPSHOT").withoutTransitivity().asSingleFile();
        IO.copy(enterpriseArchive, new File(webapps, "moviefun-ear.ear"));
        final String appUrl = "http://localhost:" + configuration.getHttpPort() + "/moviefun";
        runTests(appUrl);
        container.stop();
        // restart the container, make sure all is still well
        container.start();
    } finally {
        container.stop();
    }
}
Also used : RemoteTomEEConfiguration(org.apache.tomee.arquillian.remote.RemoteTomEEConfiguration) RemoteTomEEContainer(org.apache.tomee.arquillian.remote.RemoteTomEEContainer) File(java.io.File) Test(org.junit.Test)

Aggregations

RemoteTomEEConfiguration (org.apache.tomee.arquillian.remote.RemoteTomEEConfiguration)3 RemoteTomEEContainer (org.apache.tomee.arquillian.remote.RemoteTomEEContainer)3 Test (org.junit.Test)2 File (java.io.File)1 IOException (java.io.IOException)1 StringWriter (java.io.StringWriter)1 Properties (java.util.Properties)1 ExpClaimAllowMissingExpValidationTest (org.apache.tomee.microprofile.tck.jwt.validation.ExpClaimAllowMissingExpValidationTest)1 ExpClaimValidationTest (org.apache.tomee.microprofile.tck.jwt.validation.ExpClaimValidationTest)1 TokenUtils (org.eclipse.microprofile.jwt.tck.util.TokenUtils)1 Container (org.jboss.arquillian.container.spi.Container)1 ArchivePath (org.jboss.shrinkwrap.api.ArchivePath)1 Node (org.jboss.shrinkwrap.api.Node)1 StringAsset (org.jboss.shrinkwrap.api.asset.StringAsset)1 WebArchive (org.jboss.shrinkwrap.api.spec.WebArchive)1