Projects >> xp >>8af70a66d4267fb4cb3c241fe393f7e445e9c331

Chunk
Conflicting content
import java.util.HashSet;
import java.util.Set;

<<<<<<< HEAD
import com.google.common.collect.ImmutableList;
=======
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.net.MediaType;
>>>>>>> a14aa5e641038c322e4303a7f7a0436fe81b74fa

import com.enonic.xp.portal.PortalRequest;
import com.enonic.xp.portal.PortalRequestAccessor;
Solution content
import java.util.HashSet;
import java.util.Set;

import com.google.common.collect.ImmutableList;
import com.enonic.xp.portal.PortalRequest;
import com.enonic.xp.portal.PortalRequestAccessor;
File
ControllerScriptImpl.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
        final PortalRequestMapper requestMapper = new PortalRequestMapper( portalRequest );
        final ScriptValue result = this.scriptExports.executeMethod( runMethod, requestMapper );

<<<<<<< HEAD
        final PortalResponse response = new PortalResponseSerializer( result ).serialize();
=======
        return createResponse( result );
    }

    private PortalResponse createResponse( final ScriptValue result )
    {
        PortalResponse.Builder builder = PortalResponse.create();
        builder.status( HttpStatus.METHOD_NOT_ALLOWED );

        if ( ( result == null ) || !result.isObject() )
        {
            return builder.build();
        }

        populateStatus( builder, result.getMember( "status" ) );
        populateContentType( builder, result.getMember( "contentType" ) );
        populateBody( builder, result.getMember( "body" ) );
        populateHeaders( builder, result.getMember( "headers" ) );
        populateContributions( builder, result.getMember( "pageContributions" ) );
        populateCookies( builder, result.getMember( "cookies" ) );
        setRedirect( builder, result.getMember( "redirect" ) );

        return builder.build();
    }

    private void populateStatus( final PortalResponse.Builder builder, final ScriptValue value )
    {
        final Integer status = ( value != null ) ? value.getValue( Integer.class ) : null;
        builder.status( status != null ? HttpStatus.from( status ) : HttpStatus.OK );
    }

    private void populateContentType( final PortalResponse.Builder builder, final ScriptValue value )
    {
        final String type = ( value != null ) ? value.getValue( String.class ) : null;
        builder.contentType( type != null ? MediaType.parse( type ) : MediaType.create( "text", "html" ) );
    }

    private void setRedirect( final PortalResponse.Builder builder, final ScriptValue value )
    {
        final String redirect = ( value != null ) ? value.getValue( String.class ) : null;
        if ( redirect == null )
        {
            return;
        }

        builder.status( HttpStatus.from( Response.Status.SEE_OTHER.getStatusCode() ) );
        builder.header( "Location", redirect );
    }

    private void populateBody( final PortalResponse.Builder builder, final ScriptValue value )
    {
        if ( ( value == null ) || value.isFunction() )
        {
            return;
        }

        if ( value.isArray() )
        {
            builder.body( value.getValue( String.class ) );
            return;
        }
>>>>>>> a14aa5e641038c322e4303a7f7a0436fe81b74fa

        return applyResponseFilters( portalRequest, response );
    }
Solution content
        final PortalRequestMapper requestMapper = new PortalRequestMapper( portalRequest );
        final ScriptValue result = this.scriptExports.executeMethod( runMethod, requestMapper );

        final PortalResponse response = new PortalResponseSerializer( result ).serialize();

        return applyResponseFilters( portalRequest, response );
    }
File
ControllerScriptImpl.java
Developer's decision
Version 1
Kind of conflict
If statement
Method declaration
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
public class PortalResponseSerializerTest
{
<<<<<<< HEAD
    // TODO
=======
    private PortalResponse.Builder responseBuilder;

    private PortalResponseSerializer serializer;

    @Before
    public void setup()
    {
        this.responseBuilder = PortalResponse.create();
    }

    @Test
    public void testError()
    {
        this.responseBuilder.status( HttpStatus.METHOD_NOT_ALLOWED );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.METHOD_NOT_ALLOWED, result.getStatus() );
        assertNull( result.getBody() );
    }

    @Test
    public void testJsonResult()
    {
        this.responseBuilder.contentType( MediaType.create( "application", "json" ) ).body( ImmutableMap.of( "key", "value" ) );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.OK, result.getStatus() );
        assertTrue( JSON_UTF_8.withoutParameters().equals( MediaType.parse( result.getHeaders().get( "content-type" ) ) ) );
        assertEquals( "{\"key\":\"value\"}", result.getBody() );
    }

    @Test
    public void testStringResult()
    {
        this.responseBuilder.contentType( MediaType.create( "text", "plain" ) ).body( "Hello world!" );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.OK, result.getStatus() );
        assertTrue( PLAIN_TEXT_UTF_8.withoutParameters().equals( MediaType.parse( result.getHeaders().get( "Content-Type" ) ) ) );
        assertEquals( "Hello world!", result.getBody() );
    }

    @Test
    public void testBytesResult()
    {
        final byte[] bytes = "bytes".getBytes();
        this.responseBuilder.contentType( MediaType.create( "application", "octet-stream" ) ).body( bytes );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.OK, result.getStatus() );
        assertTrue( OCTET_STREAM.equals( MediaType.parse( result.getHeaders().get( "Content-Type" ) ) ) );
        assertSame( bytes, result.getBody() );
    }

    @Test
    public void testObjectResult()
    {
        this.responseBuilder.contentType( MediaType.create( "text", "plain" ) ).body( 11 );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.OK, result.getStatus() );
        assertTrue( PLAIN_TEXT_UTF_8.withoutParameters().equals( MediaType.parse( result.getHeaders().get( "Content-Type" ) ) ) );
        assertEquals( "11", result.getBody() );
    }

    @Test
    public void testHeadersWithResult()
    {
        this.responseBuilder.contentType( MediaType.create( "text", "plain" ) ).body( "With headers" ).header( "X-myheader", "Value" );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.OK, result.getStatus() );
        assertTrue( PLAIN_TEXT_UTF_8.withoutParameters().equals( MediaType.parse( result.getHeaders().get( "Content-Type" ) ) ) );
        assertEquals( "Value", result.getHeaders().get( "X-MyHeader" ) );
        assertEquals( "With headers", result.getBody() );
    }

    @Test
    public void testCookiesWithResult()
    {
        this.responseBuilder.contentType( MediaType.create( "text", "plain" ) ).cookie( new Cookie( "test-cookie", "cookie-value" ) );
        this.serializer = new PortalResponseSerializer( responseBuilder.build() );
        final PortalResponse result = this.serializer.serialize();

        assertNotNull( result );
        assertEquals( HttpStatus.OK, result.getStatus() );
        assertTrue( PLAIN_TEXT_UTF_8.withoutParameters().equals( MediaType.parse( result.getHeaders().get( "Content-Type" ) ) ) );
        assertNotNull( result.getCookies().get( 0 ) );
        assertEquals( "test-cookie", result.getCookies().get( 0 ).getName() );
        assertEquals( "cookie-value", result.getCookies().get( 0 ).getValue() );
    }
>>>>>>> a14aa5e641038c322e4303a7f7a0436fe81b74fa
}
Solution content
public class PortalResponseSerializerTest
{
    // TODO
}
File
PortalResponseSerializerTest.java
Developer's decision
Version 1
Kind of conflict
Annotation
Attribute
Comment
Method declaration