/** * This method is use for create,publish and subscribe given web application * * @param webAppDetail Bean object of the web application * @throws AppManagementException Throws this when failed to add an user Throws this when store * session is failed while requesting Throws this when policy id is failed while requesting * Throws this when failed to create,publish or subscribe web application */ public void createAndPublishWebApplication(WebAppDetail webAppDetail) throws AppManagementException { String currentUserName = webAppDetail.getUserName(); String creatorSession = webAppDetail.getCreatorSession(); String storeSession = webAppDetail.getStoreSession(); String java_policyId = AppMDAO.getDisplayOrderSeqNo(); webAppDetail.setContext(generateWebAppContext(webAppDetail.getContext())); if (currentUserName.equals("admin")) { adminPublisherSession = webAppDetail.getCreatorSession(); } else { try { adminPublisherSession = httpHandler.doPostHttps( httpsBackEndUrl + "/publisher/api/authenticate", "username="******"&password="******"&action=login", "", "application/x-www-form-urlencoded"); } catch (IOException e) { String errorMessage = "Error while requesting publisher session"; log.error(errorMessage, e); throw new AppManagementException(errorMessage, e); } } String policyIDResponce = null; try { policyIDResponce = httpHandler.doPostHttps( httpsBackEndUrl + "/publisher/api/entitlement/policy/partial" + "/policyGroup/save", "anonymousAccessToUrlPattern=false&policyGroupName" + "=samples&throttlingTier=Unlimited&objPartialMappings=[]&policyGroupDesc=samples" + "&userRoles=", creatorSession, "application/x-www-form-urlencoded; charset=UTF-8") .split(":")[3]; } catch (IOException e) { log.error("Error while requesting a policy id", e); throw new AppManagementException("Error while requesting a policy id", e); } String policyId = policyIDResponce.substring(1, (policyIDResponce.length() - 2)).trim(); AppCreateRequest appCreateRequest = new AppCreateRequest(); appCreateRequest.setUritemplate_policyGroupIds("[" + policyId + "]"); appCreateRequest.setUritemplate_policyGroupId4(policyId); appCreateRequest.setUritemplate_policyGroupId3(policyId); appCreateRequest.setUritemplate_policyGroupId2(policyId); appCreateRequest.setUritemplate_policyGroupId1(policyId); appCreateRequest.setUritemplate_policyGroupId0(policyId); appCreateRequest.setOverview_provider(currentUserName); appCreateRequest.setUritemplate_javaPolicyIds("[" + java_policyId + "]"); appCreateRequest.setClaimPropertyCounter(webAppDetail.getClaims().size() + ""); appCreateRequest.setOverview_name(webAppDetail.getWebAppName()); appCreateRequest.setOverview_displayName(webAppDetail.getDisplayName()); appCreateRequest.setOverview_context(webAppDetail.getContext()); appCreateRequest.setOverview_version(webAppDetail.getVersion()); appCreateRequest.setOverview_trackingCode(appCreateRequest.generateTrackingID()); appCreateRequest.setOverview_transports("http"); appCreateRequest.setOverview_webAppUrl( httpBackEndUrl + "/" + webAppDetail.getWarFileName() + "/"); appCreateRequest.setOverview_treatAsASite(webAppDetail.getTreatAsASite()); String UUID = null; String errorMessage = "Error while creating a web application" + webAppDetail.getDisplayName(); try { UUID = createWebApplication(appCreateRequest.generateRequestParameters(), webAppDetail); } catch (IOException e) { log.error(errorMessage, e); throw new AppManagementException(errorMessage, e); } catch (RegistryException e) { log.error(errorMessage, e); throw new AppManagementException(errorMessage, e); } catch (InterruptedException e) { log.error(errorMessage, e); throw new AppManagementException(errorMessage, e); } try { applicationPublisher.publishApplication("webapp", UUID, adminPublisherSession); } catch (IOException e) { String publishingErrorMessage = "Error while publishing a web application " + webAppDetail.getDisplayName(); log.error(publishingErrorMessage, e); throw new AppManagementException(publishingErrorMessage, e); } log.info(appCreateRequest.getOverview_name() + " published and UUID is " + UUID); try { applicationSubscriber.subscribeApplication(appCreateRequest, storeSession, currentUserName); } catch (IOException e) { String subscribingErrorMessage = "Error while subscribing a web application " + webAppDetail.getDisplayName(); log.error(subscribingErrorMessage, e); throw new AppManagementException(subscribingErrorMessage, e); } log.info( appCreateRequest.getOverview_name() + "application subscribed by subsciber_" + currentUserName); }