| 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 |