[arquillian-issues] [JBoss JIRA] (ARQGRA-374) Allow to setup custom URL via arquillian.xml configuration with CustmizableURLResourceProvider

Lukáš Fryč (JIRA) jira-events at lists.jboss.org
Fri Nov 8 08:06:01 EST 2013


    [ https://issues.jboss.org/browse/ARQGRA-374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12921769#comment-12921769 ] 

Lukáš Fryč edited comment on ARQGRA-374 at 11/8/13 8:04 AM:
------------------------------------------------------------

As a workaround, you can use custom URLResourceProvider that you will override original URLResourceProvider in Arquillian extension builder, e.g.:

{code:java}
public class CustomURLResourceProvider extends URLResourceProvider {

    @Override
    public boolean canProvide(Class<?> type) {
        return super.canProvide(type);
    }

    @Override
    public Object lookup(ArquillianResource resource, Annotation... qualifiers) {
        URL url = (URL) super.lookup(resource, qualifiers);

        try {
            return new URL(url.getProtocol(), "another_host", url.getPort(), url.getFile());
        } catch (MalformedURLException e) {
            throw new IllegalStateException(e);
        }
    }
}
{code}

{code:java}
public class CustomURLResourceProviderExtension implements LoadableExtension {

    @Override
    public void register(ExtensionBuilder builder) {
        builder.override(ResourceProvider.class, URLResourceProvider.class, CustomURLResourceProvider.class);
    }
}
{code}

Don't forget to register this {{LoadableExtension}} in {{META-INF/services}}.
                
      was (Author: lfryc):
    As a workaround, you can use custom URLResourceProvider that you will override original URLResourceProvider in Arquillian extension builder, e.g.:

{code:java}
public class BackChannel extends URLResourceProvider {

    @Override
    public boolean canProvide(Class<?> type) {
        return super.canProvide(type);
    }

    @Override
    public Object lookup(ArquillianResource resource, Annotation... qualifiers) {
        URL url = (URL) super.lookup(resource, qualifiers);

        try {
            return new URL(url.getProtocol(), "192.168.15.104", url.getPort(), url.getFile());
        } catch (MalformedURLException e) {
            throw new IllegalStateException(e);
        }
    }
}
{code}

{code:java}
public class BackChannelExtension implements LoadableExtension {

    @Override
    public void register(ExtensionBuilder builder) {
        builder.override(ResourceProvider.class, URLResourceProvider.class, BackChannel.class);
    }
}
{code}

Don't forget to register this {{LoadableExtension}} in {{META-INF/services}}.
                  
> Allow to setup custom URL via arquillian.xml configuration with CustmizableURLResourceProvider
> ----------------------------------------------------------------------------------------------
>
>                 Key: ARQGRA-374
>                 URL: https://issues.jboss.org/browse/ARQGRA-374
>             Project: Arquillian Graphene
>          Issue Type: Feature Request
>            Reporter: Lukáš Fryč
>             Fix For: 2.1-Tracking
>
>
> {code:xml}
> <arquillian>
>   <extension name="graphene">
>     <property name="url">http://localhost:8080/app/</property>
>   </extension>
> </arquillian>
> {code}
> The provider will obtain URL from {{URLResourceProvider}} and use it if no other URL is provided.
> Configuring this provider should also block deploying application, since its unnecessary.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the arquillian-issues mailing list