Ps: forget it, if already computed we dont need the provider but wiring exclude types to our options would be nice
Le 2 juil. 2017 23:21, "Romain Manni-Bucau" <[email protected]> a écrit : > Hey Mark > > If mediatype is json then byte arrays are fine so check shouldnt use > ignored blindly but mediatype only i think for this case. > ---------- Message transféré ---------- > De : <[email protected]> > Date : 2 juil. 2017 22:48 > Objet : svn commit: r1800577 - in /openwebbeans/meecrowave/ > branches/meecrowave-1.0.x/meecrowave-core/src: main/java/org/apache/ > meecrowave/cxf/MeecrowaveBus.java test/java/org/apache/meecrowave/ > OctetStreamMediaTypeTest.java > À : <[email protected]> > Cc : > > Author: struberg >> Date: Sun Jul 2 20:48:04 2017 >> New Revision: 1800577 >> >> URL: http://svn.apache.org/viewvc?rev=1800577&view=rev >> Log: >> MEECROWAVE-49 don't use JSON-B for byte[] content. >> >> This is only a temporary fix! >> It will later properly get handled in Johnzon >> >> Added: >> openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/test/java/org/apache/meecrowave/OctetStreamMediaTypeTest.java >> (with props) >> Modified: >> openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java >> >> Modified: openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java >> URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/branche >> s/meecrowave-1.0.x/meecrowave-core/src/main/java/org/apache/ >> meecrowave/cxf/MeecrowaveBus.java?rev=1800577&r1=1800576& >> r2=1800577&view=diff >> ============================================================ >> ================== >> --- openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java >> (original) >> +++ openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java Sun >> Jul 2 20:48:04 2017 >> @@ -26,6 +26,7 @@ import javax.ws.rs.Consumes; >> import javax.ws.rs.Produces; >> import javax.ws.rs.core.MediaType; >> import javax.ws.rs.ext.Provider; >> +import java.util.Arrays; >> import java.util.Collection; >> import java.util.HashMap; >> import java.util.List; >> @@ -197,6 +198,10 @@ public class MeecrowaveBus implements Bu >> final String binaryStrategy, >> final String namingStrategy, >> final String orderStrategy) >> { >> + // ATTENTION this is only a workaround for MEECROWAVE-49 and >> shall get removed after Johnzon has a fix for it! >> + // We add byte[] to the ignored types. >> + super(Arrays.asList("[B")); >> + >> ofNullable(encoding).ifPresent(this::setEncoding); >> ofNullable(namingStrategy).ifPresent(this::setPropertyNamin >> gStrategy); >> ofNullable(orderStrategy).ifPresent(this::setPropertyOrderS >> trategy); >> >> Added: openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/test/java/org/apache/meecrowave/OctetStreamMediaTypeTest.java >> URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/branche >> s/meecrowave-1.0.x/meecrowave-core/src/test/java/org/apache/ >> meecrowave/OctetStreamMediaTypeTest.java?rev=1800577&view=auto >> ============================================================ >> ================== >> --- openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/test/java/org/apache/meecrowave/OctetStreamMediaTypeTest.java >> (added) >> +++ openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/test/java/org/apache/meecrowave/OctetStreamMediaTypeTest.java >> Sun Jul 2 20:48:04 2017 >> @@ -0,0 +1,105 @@ >> +/** >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * <p> >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * <p> >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + */ >> +package org.apache.meecrowave; >> + >> +import org.apache.tomcat.util.http.fileupload.util.Streams; >> +import org.junit.Test; >> + >> +import javax.enterprise.context.ApplicationScoped; >> +import javax.ws.rs.GET; >> +import javax.ws.rs.Path; >> +import javax.ws.rs.Produces; >> +import javax.ws.rs.core.MediaType; >> +import javax.ws.rs.core.Response; >> +import javax.ws.rs.core.StreamingOutput; >> +import java.io.IOException; >> +import java.io.InputStream; >> +import java.net.URL; >> +import java.nio.charset.StandardCharsets; >> + >> +import static org.junit.Assert.assertEquals; >> + >> +public class OctetStreamMediaTypeTest { >> + @Test >> + public void fields() throws IOException { >> + try (final Meecrowave meecrowave = new Meecrowave(new >> Meecrowave.Builder() >> + .randomHttpPort() >> + >> .includePackages(OctetStreamMediaTypeTest.class.getName())).bake()) >> { >> + try (final InputStream stream = new URL( >> + "http://localhost:" + >> meecrowave.getConfiguration().getHttpPort() >> + "/OctetStreamMediaTypeTest/response").openStream()) { >> + assertEquals("resp", Streams.asString(stream, "UTF-8")); >> + } >> + try (final InputStream stream = new URL( >> + "http://localhost:" + >> meecrowave.getConfiguration().getHttpPort() >> + "/OctetStreamMediaTypeTest/responseBytes").openStream()) { >> + assertEquals("resp", Streams.asString(stream, "UTF-8")); >> + } >> + try (final InputStream stream = new URL( >> + "http://localhost:" + >> meecrowave.getConfiguration().getHttpPort() >> + "/OctetStreamMediaTypeTest/streaming").openStream()) { >> + assertEquals("stream", Streams.asString(stream, >> "UTF-8")); >> + } >> + try (final InputStream stream = new URL( >> + "http://localhost:" + >> meecrowave.getConfiguration().getHttpPort() >> + "/OctetStreamMediaTypeTest/string").openStream()) { >> + assertEquals("string", Streams.asString(stream, >> "UTF-8")); >> + } >> + try (final InputStream stream = new URL( >> + "http://localhost:" + >> meecrowave.getConfiguration().getHttpPort() >> + "/OctetStreamMediaTypeTest/bytes").openStream()) { >> + assertEquals("bytes", Streams.asString(stream, "UTF-8")); >> + } >> + } >> + } >> + >> + @Path("OctetStreamMediaTypeTest") >> + @ApplicationScoped >> + public static class App { >> + @GET >> + @Path("response") >> + @Produces(MediaType.APPLICATION_OCTET_STREAM) >> + public Response getResponse() { >> + return Response.ok("resp").build(); >> + } >> + >> + @GET >> + @Path("responseBytes") >> + @Produces(MediaType.APPLICATION_OCTET_STREAM) >> + public Response getResponseBytes() { >> + return Response.ok("resp".getBytes()).build(); >> + } >> + >> + @GET >> + @Path("streaming") >> + @Produces(MediaType.APPLICATION_OCTET_STREAM) >> + public StreamingOutput getStreamingOutput() { >> + return output -> output.write("stream".getBytes >> (StandardCharsets.UTF_8)); >> + } >> + >> + @GET >> + @Path("string") >> + @Produces(MediaType.APPLICATION_OCTET_STREAM) >> + public String getString() { >> + return "string"; >> + } >> + >> + @GET >> + @Path("bytes") >> + @Produces(MediaType.APPLICATION_OCTET_STREAM) >> + public byte[] getBytes() { >> + return "bytes".getBytes(StandardCharsets.UTF_8); >> + } >> + } >> +} >> >> Propchange: openwebbeans/meecrowave/branches/meecrowave-1.0.x/meecrowave >> -core/src/test/java/org/apache/meecrowave/OctetStreamMediaTypeTest.java >> ------------------------------------------------------------ >> ------------------ >> svn:eol-style = native >> >> >>
