public KieContainerResourceFilter build() { return new KieContainerResourceFilter(releaseIdFilter, statusFilter); } }
public ServiceResponse<KieContainerResourceList> listContainers(KieContainerResourceFilter containerFilter) { try { List<KieContainerResource> filteredContainers = new ArrayList<KieContainerResource>(); for (KieContainerResource container : getContainersWithMessages()) { if (containerFilter.accept(container)) { filteredContainers.add(container); } } KieContainerResourceList containerList = new KieContainerResourceList(filteredContainers); return new ServiceResponse<KieContainerResourceList>(ServiceResponse.ResponseType.SUCCESS, "List of created containers", containerList); } catch (Exception e) { logger.error("Error retrieving list of containers", e); return new ServiceResponse<KieContainerResourceList>(ServiceResponse.ResponseType.FAILURE, "Error listing containers: " + e.getClass().getName() + ": " + e.getMessage()); } }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } ListContainersCommand that = (ListContainersCommand) o; return kieContainerResourceFilter != null ? kieContainerResourceFilter.equals(that.kieContainerResourceFilter) : that.kieContainerResourceFilter == null; }
@Override public ServiceResponse<KieContainerResourceList> listContainers(KieContainerResourceFilter containerFilter) { if (config.isRest()) { String queryParams = containerFilter.toURLQueryString(); String uri = loadBalancer.getUrl() + "/containers" + (queryParams.isEmpty() ? "" : "?" + queryParams); return makeHttpGetRequestAndCreateServiceResponse(uri, KieContainerResourceList.class); } else { CommandScript script = new CommandScript(Collections.singletonList((KieServerCommand) new ListContainersCommand(containerFilter))); ServiceResponse<KieContainerResourceList> response = (ServiceResponse<KieContainerResourceList>) executeJmsCommand(script).getResponses().get(0); return getResponseOrNullIfNoResponse(response); } }
@Override public int hashCode() { return kieContainerResourceFilter != null ? kieContainerResourceFilter.hashCode() : 0; } }
@Test public void toURLQueryStringMultipleStatuses() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder() .statuses(KieContainerStatus.CREATING, KieContainerStatus.STARTED, KieContainerStatus.FAILED) .build(); Assertions.assertThat(filter.toURLQueryString()).isEqualTo("status=CREATING,STARTED,FAILED"); }
@Test public void toURLQueryStringSingleStatus() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder().status(KieContainerStatus.STARTED).build(); Assertions.assertThat(filter.toURLQueryString()).isEqualTo("status=STARTED"); }
private static KieContainerResourceFilter createKieContainerResourceFilter() { return new KieContainerResourceFilter(createReleaseIdFilter(), createKieContainerStatusFilter()); }
@Test public void testAccept() { boolean result = filter.accept(containerResource); Assertions.assertThat(result).isEqualTo(expectedResult); } }
@Test public void toURLQueryStringReleaseIdOnly() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder().releaseId(RELEASE_ID).build(); Assertions.assertThat(filter.toURLQueryString()) .isEqualTo("groupId=" + GROUP_ID + "&artifactId=" + ARTIFACT_ID + "&version=" + VERSION); }
@Test public void testListContainersOverload() throws Exception { KieContainerResourceFilter filter = new KieContainerResourceFilter( ReleaseIdFilter.ACCEPT_ALL, KieContainerStatusFilter.ACCEPT_ALL ); MockEndpoint mockEndpoint = getMockEndpoint( "mock:result" ); mockEndpoint.expectedMessageCount( 1 ); Map<String, Object> headers = new HashMap<>(); headers.put(KIE_CLIENT, "kieServices"); headers.put(KIE_OPERATION, "listContainers"); headers.put(asCamelKieName("containerFilter"), filter); template.sendBodyAndHeaders("direct:start", null, headers); assertMockEndpointsSatisfied(); KieContainerResourceList result = getResultMessage( mockEndpoint.getExchanges().get( 0 ) ).getBody( KieContainerResourceList.class ); assertEquals("Number of listed containers", 2, result.getContainers().size()); }
@Test public void toURLQueryStringArtifactIdOnly() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder() .releaseId(new ReleaseId(null, ARTIFACT_ID, null)).build(); Assertions.assertThat(filter.toURLQueryString()).isEqualTo("artifactId=" + ARTIFACT_ID); }
@Test public void toURLQueryStringReleaseIdWithStatus() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder() .releaseId(RELEASE_ID) .status(KieContainerStatus.STARTED) .build(); Assertions.assertThat(filter.toURLQueryString()) .isEqualTo("groupId=" + GROUP_ID + "&artifactId=" + ARTIFACT_ID + "&version=" + VERSION + "&status=STARTED"); } }
@Test public void toURLQueryStringVersionOnly() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder() .releaseId(new ReleaseId(null, null, VERSION)).build(); Assertions.assertThat(filter.toURLQueryString()).isEqualTo("version=" + VERSION); }
@Test public void toURLQueryStringGroupIdOnly() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder() .releaseId(new ReleaseId(GROUP_ID, null, null)).build(); Assertions.assertThat(filter.toURLQueryString()).isEqualTo("groupId=" + GROUP_ID); }