Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add changes from release-3.1.x and release-4.0 TCK to release-3.2 #1220

Merged
merged 9 commits into from
Feb 20, 2024
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
Expand Down Expand Up @@ -98,10 +98,7 @@ public void startDomain(@PathParam("id") final String id,
sseEventSink.close();
} catch (final InterruptedException e) {
e.printStackTrace();
} catch (IOException ioe) {
//handle I/O error
}

});
}
}
6 changes: 2 additions & 4 deletions jaxrs-api/src/main/java/jakarta/ws/rs/sse/SseEventSink.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand All @@ -16,7 +16,6 @@

package jakarta.ws.rs.sse;

import java.io.IOException;
import java.util.concurrent.CompletionStage;

/**
Expand Down Expand Up @@ -72,8 +71,7 @@ public interface SseEventSink extends AutoCloseable {
* <p>
* Subsequent calls have no effect and are ignored. Once the {@link SseEventSink} is closed, invoking any method other
* than this one and {@link #isClosed()} would result in an {@link IllegalStateException} being thrown.
* @throws IOException if an I/O error occurs.
*/
@Override
void close() throws IOException;
void close();
}
5 changes: 4 additions & 1 deletion jaxrs-tck-docs/TCK-Exclude-List.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -152,3 +152,6 @@ ee/jakarta/tck/ws/rs/jaxrs21/ee/client/rxinvoker/JAXRSClientIT.java#traceWithStr
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/rxinvoker/JAXRSClientIT.java#traceWithResponseClassTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/rxinvoker/JAXRSClientIT.java#traceWithGenericTypeStringTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/rxinvoker/JAXRSClientIT.java#traceWithGenericTypeResponseTest

# https://github.com/jakartaee/rest/issues/1138
ee/jakarta/tck/ws/rs/ee/rs/core/uriinfo/JAXRSClientIT#getNormalizedUriTest
11 changes: 9 additions & 2 deletions jaxrs-tck-docs/tckbundle.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -xe

# Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -40,6 +40,7 @@ mvn

rm -rf $WORKSPACE/bundle

mkdir -p $WORKSPACE/bundle
mkdir -p $WORKSPACE/bundle/docs
mkdir -p $WORKSPACE/bundle/docs/html-usersguide
mkdir -p $WORKSPACE/bundle/docs/pdf-usersguide
Expand All @@ -51,17 +52,23 @@ cp $WORKSPACE/jaxrs-tck-docs/*.html $WORKSPACE/bundle/docs/
cp $WORKSPACE/jaxrs-tck-docs/*.txt $WORKSPACE/bundle/docs/
cp -r $WORKSPACE/jaxrs-tck-docs/assertions $WORKSPACE/bundle/docs/

mkdir -p $WORKSPACE/bundle
cp $WORKSPACE/jaxrs-tck/target/*.jar $WORKSPACE/bundle/

cd $WORKSPACE/bundle
mkdir -p $WORKSPACE/bundle/META-INF

if [[ "$1" == "epl" || "$1" == "EPL" ]]; then
cp $WORKSPACE/LICENSE.md $WORKSPACE/bundle/LICENSE.md
cp $WORKSPACE/LICENSE.md $WORKSPACE/bundle/META-INF/LICENSE.md
cp $WORKSPACE/jaxrs-tck/pom.epl.xml $WORKSPACE/bundle/restful-ws-tck-"$VERSION".pom
jar -uvf restful-ws-tck-"$VERSION".jar META-INF/LICENSE.md
rm -rf $WORKSPACE/bundle/META-INF
zip -r restful-ws-tck-"$VERSION".zip *
else
cp $WORKSPACE/jaxrs-tck-docs/LICENSE_EFTL.md $WORKSPACE/bundle/LICENSE.md
cp $WORKSPACE/jaxrs-tck-docs/LICENSE_EFTL.md $WORKSPACE/bundle/META-INF/LICENSE.md
cp $WORKSPACE/jaxrs-tck/pom.xml $WORKSPACE/bundle/jakarta-restful-ws-tck-"$VERSION".pom
jar -uvf jakarta-restful-ws-tck-"$VERSION".jar META-INF/LICENSE.md
rm -rf $WORKSPACE/bundle/META-INF
zip -r jakarta-restful-ws-tck-"$VERSION".zip *
fi
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2007, 2021 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -715,29 +715,29 @@ protected void clearProperty(Property key) {
assertEquals(T first, T second, Object... message) {
if (first == null && second == null)
return;
assertFalse(first == null && second != null, message.toString());
assertFalse(first != null && second == null, message.toString());
assertFalse(first == null && second != null, objectsToString(message));
assertFalse(first != null && second == null, objectsToString(message));
if (first instanceof Comparable)
assertTrue(((Comparable<T>) first).compareTo(second) == 0, message.toString());
assertTrue(((Comparable<T>) first).compareTo(second) == 0, objectsToString(message));
else
assertTrue(first.equals(second), message.toString());
assertTrue(first.equals(second), objectsToString(message));
}

public static <T> void //
assertEqualsInt(int first, int second, Object... message) {
assertTrue(first == second, message.toString());
assertTrue(first == second, objectsToString(message));
}

public static <T> void //
assertEqualsLong(long first, long second, Object... message)
{
assertTrue(first == second, message.toString());
assertTrue(first == second, objectsToString(message));
}

public static <T> void //
assertEqualsBool(boolean first, boolean second, Object... message)
{
assertTrue(first == second, message.toString());
assertTrue(first == second, objectsToString(message));
}

/**
Expand All @@ -751,7 +751,7 @@ protected void clearProperty(Property key) {
*/
public static void //
assertNull(Object object, Object... message) {
assertTrue(object == null, message.toString());
assertTrue(object == null, objectsToString(message));
}

/**
Expand All @@ -765,7 +765,7 @@ protected void clearProperty(Property key) {
*/
public static void //
assertNotNull(Object object, Object... message) {
assertTrue(object != null, message.toString());
assertTrue(object != null, objectsToString(message));
}

/**
Expand Down Expand Up @@ -795,7 +795,7 @@ public static void fault(Object... objects) throws Fault {
*/
public static void assertContains(String string, String substring,
Object... message) {
assertTrue(string.contains(substring), message.toString());
assertTrue(string.contains(substring), objectsToString(message));
}

/**
Expand All @@ -812,7 +812,7 @@ public static void assertContains(String string, String substring,
*/
public static void assertContainsIgnoreCase(String string, String substring,
Object... message) {
assertTrue(string.toLowerCase().contains(substring.toLowerCase()), message.toString());
assertTrue(string.toLowerCase().contains(substring.toLowerCase()), objectsToString(message));
}

/**
Expand All @@ -828,7 +828,7 @@ public static void assertContainsIgnoreCase(String string, String substring,
*/
public static <T> void assertContains(T text, T subtext, Object... message)
{
assertContains(text.toString(), subtext.toString(), message.toString());
assertContains(text.toString(), subtext.toString(), objectsToString(message));
}

/**
Expand All @@ -845,7 +845,7 @@ public static <T> void assertContains(T text, T subtext, Object... message)
*/
public static <T> void assertContainsIgnoreCase(T text, T subtext,
Object... message) {
assertContainsIgnoreCase(text.toString(), subtext.toString(), message.toString());
assertContainsIgnoreCase(text.toString(), subtext.toString(), objectsToString(message));
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2023 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -317,6 +317,11 @@ public synchronized void write(byte[] b, int off, int len)
write(b);
}

@Override
public void close() throws IOException {
stream.close();
}

public final byte[] intToByteArray(int value) {
return new byte[] { (byte) (value & 0xff) };
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2007, 2018 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -34,6 +34,7 @@
import org.junit.jupiter.api.TestInfo;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;

/*
* @class.setup_props: webServerHost;
Expand Down Expand Up @@ -414,6 +415,7 @@ public void getMatchedURIsTest2() throws Fault {
* obtained from an injected UriInfo
*/
@Test
@Disabled
public void getNormalizedUriTest() throws Fault {
setProperty(Property.REQUEST, buildRequest(GET, URIInfoTest.DECODED));
invoke();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2021 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand All @@ -17,6 +17,7 @@
package ee.jakarta.tck.ws.rs.jaxrs21.ee.sse.ssebroadcaster;

import java.util.List;
import java.util.ArrayList;
import java.io.InputStream;
import java.io.IOException;

Expand Down Expand Up @@ -188,17 +189,20 @@ public void sseBroadcastTest() throws Fault {
}
}

for (int i = 0; i != CLIENTS; i++) {
List<String> events = clients[i].getEvents();
assertEquals(events.size(), MSG_MAX + 1,
"Received unexpected number of events", events.size());
assertTrue(events.get(0).contains("WELCOME"),
"Received unexpected message"+ events.get(0));
for (int j = 0; j != MSG_MAX; j++)
assertEquals(events.get(j + 1), SSEMessage.MESSAGE + j,
"Received unexpected message", events.get(j + 1));
List<String> expectedEvents = new ArrayList<String>();
for (int j = 0; j != MSG_MAX; j++) {
expectedEvents.add(SSEMessage.MESSAGE + j);
}

for (int i = 0; i != CLIENTS; i++) {
List<String> events = clients[i].getEvents();
assertEquals(events.size(), MSG_MAX + 1,
"Received unexpected number of events", events.size());
assertTrue(events.get(0).contains("WELCOME"),
"Received unexpected message"+ events.get(0));
assertTrue(events.containsAll(expectedEvents), "An expected message was not received");
}

setProperty(Property.REQUEST, buildRequest(Request.GET, "broadcast/check"));
invoke();
String response = getResponseBody();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand All @@ -25,9 +25,6 @@
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.sse.Sse;
import jakarta.ws.rs.sse.SseEventSink;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

@Path("close")
public class CloseResource {
Expand All @@ -36,8 +33,6 @@ public class CloseResource {

private static volatile boolean isClosed = false;

private static final Logger LOG = Logger.getLogger(CloseResource.class.getName());

@GET
@Path("reset")
@Produces(MediaType.SERVER_SENT_EVENTS)
Expand All @@ -46,8 +41,6 @@ public void reset(@Context SseEventSink sink, @Context Sse sse) {
isClosed = false;
try (SseEventSink s = sink) {
s.send(sse.newEvent("RESET"));
} catch (IOException e) {
throw new RuntimeException(e);
}
}

Expand All @@ -59,19 +52,15 @@ public void send(@Context SseEventSink sink, @Context Sse sse) {
public void run() {
SseEventSink s = sink;
s.send(sse.newEvent(SSEMessage.MESSAGE));
try {
s.close();
isClosed = s.isClosed();
if (!isClosed)
return;
s.close();
isClosed = s.isClosed();
if (!isClosed)
return;
s.close();
} catch (IOException e) {
//ignore this exception and isClosed will be checked later.
}
s.close();
isClosed = s.isClosed();
if (!isClosed)
return;
s.close();
isClosed = s.isClosed();
if (!isClosed)
return;
s.close();
isClosed = s.isClosed();
if (!isClosed)
return;
Expand Down Expand Up @@ -99,8 +88,6 @@ public void check(@Context SseEventSink sink, @Context Sse sse) {
return;
}
s.send(sse.newEvent("CHECK"));
} catch (IOException e) {
LOG.log(Level.WARNING, "Failed to close SseEventSink", e);
}
}

Expand Down
Loading