public static ConnectStatusHolder instance() { if (instance == null) { instance = new ConnectStatusHolder(); } return instance; }
/** * Returns the registration expiration date included in the CLID, or {@code null} if the CLID cannot be loaded or * doesn't include the expiration date (old v0 format). * * @since 10.2 */ public Calendar getRegistrationExpirationDate() { long timestamp = ConnectStatusHolder.instance().getRegistrationExpirationTimestamp(); if (timestamp > -1) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timestamp * 1000); return calendar; } else { return null; } }
/** * @since 5.6 * @return true if registration is required for download */ public boolean registrationRequired(Package pkg) { return pkg.getPackageState() == PackageState.REMOTE && pkg.getType() != PackageType.STUDIO && pkg.getVisibility() != PackageVisibility.PUBLIC && (!ConnectStatusHolder.instance().isRegistered() // || ConnectStatusHolder.instance().getStatus().status() != SubscriptionStatusType.OK); }
public boolean canDownload(Package pkg) { return pkg.getPackageState() == PackageState.REMOTE && (pkg.getType() == PackageType.STUDIO || pkg.getVisibility() == PackageVisibility.PUBLIC // || (ConnectStatusHolder.instance().isRegistred() // && ConnectStatusHolder.instance().getStatus().status() == SubscriptionStatusType.OK)); }
public void setToken(String token) throws IOException, InvalidCLID { if (token != null) { String tokenData = new String(Base64.decodeBase64(token)); String[] tokenDataLines = tokenData.split("\n"); for (String line : tokenDataLines) { String[] parts = line.split(":"); if (parts.length > 1 && "CLID".equals(parts[0])) { getService().localRegisterInstance(parts[1], " "); // force refresh of connect status info connectionStatusCache = null; flushContextCache(); ConnectStatusHolder.instance().flush(); } } } }
public SubscriptionStatusWrapper getStatus() { // get status (possibility from cache) SubscriptionStatusWrapper lastStatus = getStatus(false); // check freshness Calendar oldestStatusDate = Calendar.getInstance(); oldestStatusDate.add(Calendar.MINUTE, -REFRESH_PERIOD_MINUTES); if (lastStatus == null || lastStatus.refreshDate.before(oldestStatusDate)) { // try to refresh SubscriptionStatusWrapper refreshStatus = getStatus(true); // keep last success status in case of error if ((refreshStatus == null || refreshStatus.isError()) && lastStatus != null && !lastStatus.isError()) { instanceStatus = lastStatus; instanceStatus.refreshDate = Calendar.getInstance(); } } return instanceStatus; }
/** * @since 9.2 */ public boolean isRegistered() { // no cache needed return getService().isInstanceRegistered(); }
public SubscriptionStatusWrapper getStatus(boolean forceRefresh) { if (instanceStatus == null || forceRefresh) { if (isRegistred()) { try { instanceStatus = new SubscriptionStatusWrapper(getService().getConnector().getConnectStatus()); } catch (CanNotReachConnectServer e) { log.warn("can not reach Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper("Nuxeo Online Services is not reachable"); instanceStatus.canNotReachConnectServer = true; } catch (ConnectClientVersionMismatchError e) { log.warn( "Nuxeo Connect Client does not have the required version to communicate with Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper(e.getMessage()); instanceStatus.versionMismatch = true; } catch (ConnectSecurityError e) { log.warn("Can not authenticated against Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper(e); } catch (ConnectServerError e) { log.error("Error while calling Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper(e.getMessage()); } } else { instanceStatus = new UnresgistedSubscriptionStatusWrapper(); } } return instanceStatus; }
public SubscriptionStatusWrapper getStatus(boolean forceRefresh) { if (instanceStatus == null || forceRefresh) { if (isRegistered()) { try { instanceStatus = new SubscriptionStatusWrapper(getService().getConnector().getConnectStatus()); } catch (CanNotReachConnectServer e) { log.warn("Cannot reach Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper("Nuxeo Online Services is not reachable"); instanceStatus.canNotReachConnectServer = true; } catch (ConnectClientVersionMismatchError e) { log.warn( "Nuxeo Connect Client does not have the required version to communicate with Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper(e.getMessage()); instanceStatus.versionMismatch = true; } catch (ConnectSecurityError e) { log.warn("Cannot authenticate against Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper(e); } catch (ConnectServerError e) { log.error("Error while calling Nuxeo Online Services", e); instanceStatus = new SubscriptionStatusWrapper(e.getMessage()); } } else { instanceStatus = new UnresgistedSubscriptionStatusWrapper(); } } return instanceStatus; }
/** * @deprecated Since 9.2, use {@link #isRegistered()} instead. */ @Deprecated public boolean isRegistred() { return isRegistered(); }
public boolean canDownload(Package pkg) { return pkg.getPackageState() == PackageState.REMOTE && (pkg.getType() == PackageType.STUDIO || pkg.getVisibility() == PackageVisibility.PUBLIC // || (ConnectStatusHolder.instance().isRegistered() // && ConnectStatusHolder.instance().getStatus().status() == SubscriptionStatusType.OK)); }
/** * @since 5.6 * @return true if registration is required for download */ public boolean registrationRequired(Package pkg) { return pkg.getPackageState() == PackageState.REMOTE && pkg.getType() != PackageType.STUDIO && pkg.getVisibility() != PackageVisibility.PUBLIC && (!ConnectStatusHolder.instance().isRegistred() // || ConnectStatusHolder.instance().getStatus().status() != SubscriptionStatusType.OK); }
public void setToken(String token) throws IOException, InvalidCLID { if (token != null) { String tokenData = new String(Base64.decodeBase64(token)); String[] tokenDataLines = tokenData.split("\n"); for (String line : tokenDataLines) { String[] parts = line.split(":"); if (parts.length > 1 && "CLID".equals(parts[0])) { getService().localRegisterInstance(parts[1], " "); // force refresh of connect status info connectionStatusCache = null; flushContextCache(); ConnectStatusHolder.instance().flush(); } } } }
public SubscriptionStatusWrapper getStatus() { // get status (possibility from cache) SubscriptionStatusWrapper lastStatus = getStatus(false); // check freshness Calendar oldestStatusDate = Calendar.getInstance(); oldestStatusDate.add(Calendar.MINUTE, -REFRESH_PERIOD_MINUTES); if (lastStatus == null || lastStatus.refreshDate.before(oldestStatusDate)) { // try to refresh SubscriptionStatusWrapper refreshStatus = getStatus(true); // keep last success status in case of error if ((refreshStatus == null || refreshStatus.isError()) && lastStatus != null && !lastStatus.isError()) { instanceStatus = lastStatus; instanceStatus.refreshDate = Calendar.getInstance(); } } return instanceStatus; }
public boolean isRegistred() { // no cache needed return getService().isInstanceRegistred(); }
/** * Returns the registration expiration timestamp included in the CLID, or -1 if the CLID cannot be loaded or doesn't * include the expiration timestamp (old v0 format). * * @since 10.2 */ public long getRegistrationExpirationTimestamp() { LogicalInstanceIdentifier clid = getService().getCLID(); if (clid == null) { return -1; } String clid1 = clid.getCLID1(); if (clid1.length() == 36) { // no expiration timestamp (old v0 format) return -1; } // check format String[] split = clid1.split("\\."); if (split.length != 3) { // invalid format return -1; } // return expiration timestamp return Long.parseLong(split[1]); }
public static ConnectStatusHolder instance() { if (instance == null) { instance = new ConnectStatusHolder(); } return instance; }