public static ConversationId fromString(String conversationIdString) { try { String conversationId = URLDecoder.decode(conversationIdString, "UTF-8"); String[] conversationIdElements = conversationId.split(SPLIT_PATTERN); if (conversationIdElements.length != 4) { throw new IllegalArgumentException("Non-parsable conversationId '" + conversationIdString + "'"); } String kieServerId = conversationIdElements[0].replaceAll("'", ""); String containerId = conversationIdElements[1]; String[] releaseIdElements = conversationIdElements[2].split(":"); ReleaseId releaseId = new ReleaseId(releaseIdElements[0], releaseIdElements[1], releaseIdElements[2]); String uniqueString = conversationIdElements[3].replaceAll("'", "");; return new ConversationId(kieServerId, containerId, releaseId, uniqueString); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }
private ContainerSpec copy(final ContainerSpec origin, final String newServerTemplateId, final String newServerTemplateName) { final Map<Capability, ContainerConfig> configMap = origin.getConfigs(); for (Map.Entry<Capability, ContainerConfig> entry : origin.getConfigs().entrySet()) { configMap.put(entry.getKey(), copy(entry.getValue())); } return new ContainerSpec(origin.getId(), origin.getContainerName(), new ServerTemplateKey(newServerTemplateId, newServerTemplateName), new ReleaseId(origin.getReleasedId()), origin.getStatus(), configMap); }
private ReleaseId makeReleaseId() { final GAV gav = projectGAV(); return new ReleaseId(gav.getGroupId(), gav.getArtifactId(), gav.getVersion()); }
public ContainerSpec buildContainerSpec(final String serverTemplateId, final Map<Capability, ContainerConfig> configs) { return new ContainerSpec(view.getContainerName(), view.getContainerAlias(), new ServerTemplateKey(serverTemplateId, null), new ReleaseId(view.getGroupId(), view.getArtifactId(), view.getVersion()), view.isStartContainer() ? KieContainerStatus.STARTED : KieContainerStatus.STOPPED, configs); }
protected boolean updateReleaseId() { ReleaseId oldReleaseId = this.resource.getReleaseId(); ReleaseId oldResolvedReleaseId = this.resource.getResolvedReleaseId(); if ( kieContainer != null ) { this.resource.setReleaseId( new ReleaseId( kieContainer.getContainerReleaseId() ) ); this.resource.setResolvedReleaseId( new ReleaseId( kieContainer.getReleaseId() ) ); } if (releaseIdUpdated(oldReleaseId, this.resource.getReleaseId()) || releaseIdUpdated(oldResolvedReleaseId, this.resource.getResolvedReleaseId())) { disposeMarshallers(); return true; } return false; }
@Before public void init() { releaseId = new ReleaseId(); releaseId.setVersion("0.1"); doNothing().when(notification).fire(any(NotificationEvent.class)); ruleCapabilitiesServiceCaller = new CallerMock<RuleCapabilitiesService>(ruleCapabilitiesService); when(containerSpec.getReleasedId()).thenReturn(releaseId); when(view.getUpgradeSuccessMessage()).thenReturn(SUCCESS_UPGRADE); presenter = new ContainerRulesConfigPresenter(logger, view, ruleCapabilitiesServiceCaller, notification); doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { releaseId.setVersion(invocation.getArgumentAt(1, ReleaseId.class).getVersion()); return null; } }).when(ruleCapabilitiesService).upgradeContainer(any(ContainerSpecKey.class), any(ReleaseId.class)); }
@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 toURLQueryStringArtifactIdOnly() { KieContainerResourceFilter filter = new KieContainerResourceFilter.Builder() .releaseId(new ReleaseId(null, ARTIFACT_ID, null)).build(); Assertions.assertThat(filter.toURLQueryString()).isEqualTo("artifactId=" + ARTIFACT_ID); }
public void onServerTemplateUpdated(@Observes ServerTemplateUpdated serverTemplateUpdated) { if (deployToServerTemplate.compareAndSet(true, false)) { final GAV gav = newProject.getMainModule().getPom().getGav(); final String containerId = gav.getArtifactId() + "_" + gav.getVersion(); final ReleaseId releaseId = new ReleaseId(gav.getGroupId(), gav.getArtifactId(), gav.getVersion()); final ContainerSpec containerSpec = new ContainerSpec(containerId, gav.getArtifactId(), serverTemplateUpdated.getServerTemplate(), releaseId, KieContainerStatus.STARTED, new HashMap<>()); LOGGER.info("Creating Kie Server container with id: {} for Server Template: {}", containerId, serverTemplateUpdated.getServerTemplate().getId()); specManagementService.saveContainerSpec(serverTemplateUpdated.getServerTemplate().getId(), containerSpec); } } }
@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); }
public void onServerTemplateUpdated(@Observes ServerTemplateUpdated serverTemplateUpdated) { if (deployToServerTemplate.compareAndSet(true, false)) { final GAV gav = newProject.getMainModule().getPom().getGav(); final String containerId = gav.getArtifactId() + "_" + gav.getVersion(); final ReleaseId releaseId = new ReleaseId(gav.getGroupId(), gav.getArtifactId(), gav.getVersion()); final ContainerSpec containerSpec = new ContainerSpec(containerId, gav.getArtifactId(), serverTemplateUpdated.getServerTemplate(), releaseId, KieContainerStatus.STARTED, new HashMap<>()); LOGGER.info("Creating Kie Server container with id: {} for Server Template: {}", containerId, serverTemplateUpdated.getServerTemplate().getId()); specManagementService.saveContainerSpec(serverTemplateUpdated.getServerTemplate().getId(), containerSpec); } } }
@Test public void testSetup() { final ReleaseId releaseId = new ReleaseId( "com.company", "artifact-id", "1.0.0" ); presenter.setup( releaseId ); verify( view ).setup( releaseId.getGroupId(), releaseId.getArtifactId() ); }
@Test public void testDifferentGAVsWithAlias() throws Exception { Long oldPid = processClient.startProcess(CONTAINER_ALIAS, PROCESS_ID_EVALUATION); assertThat(oldPid).isNotNull().isGreaterThan(0); ProcessInstance processInstance = processClient.getProcessInstance(CONTAINER_ALIAS, oldPid); assertThat(processInstance).isNotNull(); assertThat(processInstance.getContainerId()).isEqualTo(CONTAINER_ID); // Create a container with completely different GAV ReleaseId differentReleaseId101 = new ReleaseId("org.kie.server.different", "different-gav-definition-project", "1.0.1.Final"); KieContainerResource containerResource = new KieContainerResource(CONTAINER_ID_101, differentReleaseId101); containerResource.setContainerAlias(CONTAINER_ALIAS); client.createContainer(CONTAINER_ID_101, containerResource); Long pid = processClient.startProcess(CONTAINER_ALIAS, PROCESS_ID_EVALUATION_2); assertThat(pid).isNotNull().isGreaterThan(0); processInstance = processClient.getProcessInstance(CONTAINER_ALIAS, pid); assertThat(processInstance).isNotNull(); assertThat(processInstance.getContainerId()).isEqualTo(CONTAINER_ID_101); }
@Test public void testRefreshOnContainerUpdateEventWithDifferentContainerSpec() { final ContainerSpec containerSpecEvent = new ContainerSpec(); containerSpecEvent.setReleasedId(new ReleaseId("org", "kie", "1.0")); final ContainerUpdateEvent updateEvent = new ContainerUpdateEvent(null, containerSpecEvent, null, null, ContainerRuntimeOperation.START_CONTAINER); presenter.refreshOnContainerUpdateEvent(updateEvent); verify(presenter, never()).refresh(); }
@Test public void testNewContainerStarted() { final String path = "org:kie:1.0"; final GAV gav = new GAV(path); when(m2RepoService.loadGAVFromJar(path)).thenReturn(gav); when(view.getContainerName()).thenReturn("containerName"); when(view.getContainerAlias()).thenReturn("containerAlias"); when(view.getGroupId()).thenReturn(gav.getGroupId()); when(view.getArtifactId()).thenReturn(gav.getArtifactId()); when(view.getVersion()).thenReturn(gav.getVersion()); when(view.isStartContainer()).thenReturn(true); presenter.asWidget(); final ContainerSpec containerSpec = presenter.buildContainerSpec("templateId", Collections.<Capability, ContainerConfig>emptyMap()); assertEquals(new ReleaseId(gav.getGroupId(), gav.getArtifactId(), gav.getVersion()), containerSpec.getReleasedId()); assertEquals(KieContainerStatus.STARTED, containerSpec.getStatus()); assertEquals("containerAlias", containerSpec.getContainerName()); assertEquals("containerName", containerSpec.getId()); } }
public static ContainerSpec newContainerSpec() { final ContainerSpec spec = new ContainerSpec(); spec.setId("id"); spec.setContainerName("name"); spec.setStatus(KieContainerStatus.STARTED); spec.setReleasedId(new ReleaseId("groupId", "artifactId", "1.0")); return spec; }
public static ContainerSpec newContainerSpec() { final ContainerSpec spec = new ContainerSpec(); spec.setId("id"); spec.setContainerName("name"); spec.setStatus(KieContainerStatus.STARTED); spec.setReleasedId(new ReleaseId("groupId", "artifactId", "1.0")); return spec; }
@Test public void testUpgradeContainerWhenContainerSpecStatusIsStarted() { final List<Container> fakeResult = new ArrayList<Container>() {{ add(container); }}; doReturn(fakeResult).when(kieServerInstanceManager).upgradeContainer(any(ServerTemplate.class), any(ContainerSpec.class)); containerSpec.setStatus(KieContainerStatus.STARTED); final ReleaseId initial = containerSpec.getReleasedId(); final ReleaseId upgradeTo = new ReleaseId("org.kie", "kie-server-kjar", "2.0"); ruleCapabilitiesService.upgradeContainer(containerSpec, upgradeTo); verify(kieServerInstanceManager).upgradeContainer(any(ServerTemplate.class), any(ContainerSpec.class)); final ServerTemplate updated = specManagementService.getServerTemplate(serverTemplate.getId()); final Collection<ContainerSpec> containerSpecs = updated.getContainersSpec(); assertNotNull(containerSpecs); assertEquals(1, containerSpecs.size()); ContainerSpec updatedContainer = containerSpecs.iterator().next(); assertNotNull(updatedContainer); assertNotNull(updatedContainer.getReleasedId()); assertNotEquals(initial, updatedContainer.getReleasedId()); assertEquals(upgradeTo, updatedContainer.getReleasedId()); assertEquals(updatedContainer.getStatus(), KieContainerStatus.STARTED); }
@Test public void buildConversationIdHeaderRunningContainer() { String kieServerId = "KieServerId"; KieServerEnvironment.setServerId(kieServerId); String groupId = "org.kie"; String artifactId = "testArtifact"; String version = "1.0"; ReleaseId releaseId = new ReleaseId(groupId, artifactId, version); KieContainerInstanceImpl containerInstanceImpl = new KieContainerInstanceImpl(CONTAINER_ID, KieContainerStatus.STARTED); containerInstanceImpl.getResource().setReleaseId(releaseId); when(registry.getContainer(CONTAINER_ID)).thenReturn(containerInstanceImpl); Header conversationIdHeader = RestUtils.buildConversationIdHeader(CONTAINER_ID, registry, headers); assertEquals(KieServerConstants.KIE_CONVERSATION_ID_TYPE_HEADER, conversationIdHeader.getName()); assertNotNull(conversationIdHeader.getValue()); assertTrue(conversationIdHeader.getValue().contains(groupId)); assertTrue(conversationIdHeader.getValue().contains(artifactId)); assertTrue(conversationIdHeader.getValue().contains(version)); assertTrue(conversationIdHeader.getValue().contains(CONTAINER_ID)); assertTrue(conversationIdHeader.getValue().contains(kieServerId)); }