private static OseeServerInfoMutable createOseeServerInfo( Log logger, ApplicationServerDataStore dataStore, Set<String> defaultVersions) { String serverAddress = "127.0.0.1"; try { serverAddress = InetAddress.getLocalHost().getCanonicalHostName(); } catch (UnknownHostException ex) { // } int port = OseeServerProperties.getOseeApplicationServerPort(); String checkSum = "-1"; try { String address = String.format("%s:%s", serverAddress, port); ByteArrayInputStream inputStream = new ByteArrayInputStream(address.getBytes("UTF-8")); checkSum = ChecksumUtil.createChecksumAsString(inputStream, ChecksumUtil.MD5); } catch (Exception ex) { logger.error(ex, "Error generating application server id"); } OseeServerInfoMutable toReturn = new OseeServerInfoMutable( checkSum, serverAddress, port, new String[0], GlobalTime.GreenwichMeanTimestamp(), false); toReturn.setVersions(defaultVersions); return toReturn; }
@Override public void addSupportedVersion(String version) throws OseeCoreException { Conditions.checkNotNull(version, "Osee Version"); OseeServerInfoMutable info = getApplicationServerInfo(); refreshData(info); info.addVersion(version); dataStore.update(Collections.singleton(info)); }
private void refreshData(OseeServerInfoMutable info) { dataStore.refresh(info); Set<String> supportedVersions = info.getVersionSet(); if (!supportedVersions.containsAll(defaultVersions)) { supportedVersions.addAll(defaultVersions); info.setVersions(supportedVersions); } }
@Override public boolean executeLookupRegistration() { OseeServerInfoMutable info = getApplicationServerInfo(); refreshData(info); deregisterWithDb(info); boolean isRegistered = registerWithDb(info); if (isRegistered) { getLogger().info("Application Server: [%s] registered.", info.getServerId()); } return isRegistered; }
private synchronized void setServletRequestsAllowed(final boolean value, PersistType persistType) throws OseeCoreException { OseeServerInfoMutable info = getApplicationServerInfo(); info.setAcceptingRequests(value); if (PersistType.ALLOW_DB_PERSIST == persistType) { dataStore.update(Collections.singleton(info)); } for (String contexts : oseeHttpServlets.keySet()) { InternalOseeHttpServlet servlets = oseeHttpServlets.get(contexts); servlets.setRequestsAllowed(value); } }
@Override public void removeSupportedVersion(String version) throws OseeCoreException { Conditions.checkNotNull(version, "Osee Version"); Conditions.checkExpressionFailOnTrue( defaultVersions.contains(version), "Unable to remove default Osee version [%s]", version); OseeServerInfoMutable info = getApplicationServerInfo(); refreshData(info); Set<String> versions = info.getVersionSet(); boolean wasRemoved = versions.remove(version); if (wasRemoved) { info.setVersions(versions); dataStore.update(Collections.singleton(info)); } else { throw new OseeStateException("Not part of the supported version [%s]", version); } }