All Classes and Interfaces

Class
Description
 
 
 
Immutable data key.
Used by FutureCache to execute the ServiceContext.
 
 
Check cluster node Name and generate auto name if not configured
This listener is called when an user was enabled/disabled from the system and update his setting as active/inactive
 
 
 
 
 
 
Provides different methods which are used for comparing and making a list of differences between content.
The glue between the notification dispatcher and the digest: captures every processed notification for the digests of its recipients, apart from the notification itself.
Answers "is this user due now?" in his own local calendar, in Java and not in SQL, so that the rule is the same on every database.
Keeps NTF_DIGEST_USERS, the work list of the digest sender job, in sync with the choices of the users: the row holds only what the job needs to answer "which users are due now?".
 
A notification waiting for the digest of one recipient: one row per notification and per recipient, shared by his daily and his weekly digest, never duplicated per frequency.
Finds the wording of a digest label in the language of the recipient.
Builds one digest email from the waiting items of one occurrence: keeps the categories the user selected for this frequency (the second half of the double check), groups them in display order, asks each addon for its lines, caps every category and counts the rest, then lays everything out with the template.
The mail queue the platform sends from (EMAIL_QUEUE), reached through Spring Data so that a digest email is queued in the very transaction that claims its occurrence.
Puts a digest email in the platform mail queue, with the same row shape and the same checks as the legacy QueueMessage.put, but through the Spring EntityManager: called inside the transaction that claims the occurrence, the queue row and the watermark commit, or roll back, together.
Renders the digest email template.
One occurrence of one frequency for one user, as a single transaction: the claim of the occurrence (the guarded move of the watermark), the reading of the waiting items, the building of the email, its row in the mail queue and the deletion of the covered items commit together, or roll back together.
Writes and reads back the PARAMS column of a waiting item: a small JSON object of strings, ids only.
What the digest email needs to know about its recipient and about the platform, gathered from the existing notification helpers so that the digest emails come from the same sender and use the same links as the instant ones.
The work list of the digest sender job: who is a candidate, the claim of an occurrence, the waiting items of a user and their deletion.
One run of the digest sender job: the safety cleanup, then the selection of the users due now, then one task per due user serving his frequencies one after the other, on a small worker pool.
The one scheduled job of the digest, hourly by default.
 
Reads and writes the digest settings through SettingService, whose cache is in-memory and cluster-coherent: a change saved on one server applies immediately on every server.
The glue between the platform timezone of a user and the digest: when the platform saves a user's timezone (event social.timeZone.saved, source = the username, data = the zone id), the copy the digest sender job keeps in its work list is refreshed, so the next occurrence is computed in the new timezone.
 
The work list of the digest sender job: one row per user having at least one digest frequency enabled, nobody else.
 
 
 
 
 
 
 
 
Route class which contains path, action and argument list.
 
 
 
Resolves a host name to its addresses, for SafeAddressGuard: the JDK's resolver in production, a table in the tests.
Prevent XSS/XEE attacks by encoding user HTML inputs.
 
 
 
 
 
 
Cached data list.
 
Simple lorem ipsum text generator.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Thrown by SafeAddressGuard.resolveAllowed(java.lang.String) for a host resolving to an address the platform must not reach.
 
This REST Service deserves resource bundles in JSON format
Decides which URLs the platform may be made to read on a user's or a sender's behalf, and which addresses it may connect to.
A URL SafeHttpFetcher read nothing usable from, with the SafeFetchFailure saying why and, for an error status, the status.
Why SafeHttpFetcher read nothing usable from a URL.
What a SafeHttpFetcher may read and how far it goes: the schemes and ports a URL may use, whether internal addresses may be reached at all, the content types accepted, the most bytes read, the most redirects followed, the timeouts, and the HTTP client's own bounds.
Builds a SafeFetchPolicy, starting from the defaults and refusing what no policy may hold: a scheme the HTTP client does not speak, a port outside 1-65535, a non-positive limit or timeout, a timeout over an hour.
One read of a URL by SafeHttpFetcher: a GET, with the headers it sends and how it narrows the fetcher's SafeFetchPolicy.
What SafeHttpFetcher read from a URL: a 2xx answer with its body, or a 304 to a conditional read.
Reads a URL the platform was given over HTTP, within the bounds of a SafeFetchPolicy: the one place to fetch a user-, sender- or agent-controlled URL from the server.
Sends the queued emails, one execution at a time: two overlapping executions load the same queue rows and send each of them twice (seen when the Quartz scheduler starts in the last second of a minute and releases the missed occurrence right before the next one).
Kind of closure.
 
 
 
 
 
A class implementing this interface is executed will be started (execution of the method start()) during the startup of the platform but on one node only if running in cluster.
This service allow to running a specific service (implements StartableClusterAware interface) on one cluster node.