1
0
mirror of https://github.com/google/nomulus synced 2026-01-29 09:02:20 +00:00

Compare commits

...

73 Commits

Author SHA1 Message Date
Lai Jiang
199d02a4cc Fix EPP update NS delete bug (#1665) 2022-06-10 12:42:31 -04:00
Lai Jiang
48cc12e016 Add logging for nameserver deletion (#1663)
The main purpose of this PR is to help debug b/234189023, where a
registrar reported that in sandbox they observed seemingly successful EPP
update responses to delete NS records, which are not actually deleted after
the commands executed.

To actually load the persisted domain resource after an update would
require us to execute another transaction immediately after the update
transaction and that can only be achieved outside the flow (i. e. in
FlowRunner or EppController) and we need to test for the type of flows
before logging, which seems unnecessarily complex.

For now we are just adding logs inside the update transaction itself to
validate that:

1. The NS records to delete are as expected.
2. The Current NS records are as expected.
3. The new NS records to persist are as expected.

The EPP success reply is the default reply when no errors are thrown in
a transaction. If we see a success reply (which means that the
transaction finished successfully) and expected logs from the transaction, the
only explanation could be that somewhere in the ORM layer the java
representation of what the entity is is different from what is being
presented to the database. I think that signals a much bigger and
fundamental problem, which is quite unlikely given how isolated the
issue under consideration is.

In any case we would like to add the logging functionality in sandbox and ask
the registrar to report again when they see similar issues.

Also made some typo and linting fixes.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/google/nomulus/1663)
<!-- Reviewable:end -->
2022-06-09 16:56:58 -04:00
gbrodman
e30b3f9e0b Fix some small transactional issues in SQL mode (#1662)
* Fix some small transactional issues in SQL mode

These weren't caught until I switched the default database type in tests
to be SQL (separate PR). Fortunately these don't seem to be catastrophic
2022-06-09 15:01:34 -04:00
gbrodman
623356b1e8 Remove functional SQL<->DS replay code (#1659)
This includes:
- removing the actions that do the replay
- removing the tests for the replay
- removing the ReplayExtension and adjusting the various tests that used
  it appropriately
- removing functionality relating to "things that happen during replay",
  e.g. beforeSqlSaveOnReplay

This does not include:
- removing the InitSqlPipeline or similar tasks
- removing e.g. SqlEntity (it's used in other places)
- removing Transforms/RegistryJpaIO and other SQL-pipeline-creation code
2022-06-09 07:44:01 -04:00
Weimin Yu
4f69e1e0a6 Remove bracket in Cloud Build script (#1658)
* Remove bracket around varname in CloudBuild script

Due to spinnaker restriction: it cannot handle variable references where the var name has brackets around it.

Added spinnaker error message to the comments
2022-06-08 13:58:56 -04:00
gbrodman
9912e35ea2 Remove Ofy code from various flow-related classes (#1653)
This included removing ofy-specific code from various tests. Also, some
of the other tests (e.g. RdapDomainActionTest) had to be configured to
use only SQL -- otherwise, as it currently stands, they were trying to
use ofy.

We also delete the CreateSyntheticHistoryEntriesAction and pipeline
because they're no longer relevant, and impossible to test (the goal of
the actions were to create objects in ofy which doesn't happen any
more).
2022-06-07 11:43:33 -04:00
gbrodman
413fd1dc94 Update bigdataoss:util dependency (#1654)
We're running into issues pulling 2.1.3 from maven, possibly due to
vulnerabilities in dependencies, so this updates it to the most recent
version of 2.2.6.
2022-06-06 13:28:49 -04:00
Ben McIlwain
2377774bf9 Add a new recurrenceLastExpansion column to the BillingRecurrence table (#1650)
* Add a new recurrenceLastExpansion column to the BillingRecurrence table

This will be used to determine which recurrences are in scope for
expansion. Anything that has already been expanded within the past year is
automatically out of scope.

Note that the default value is set to just over a year ago, so that, initially,
everything is in scope for expansion, and then will gradually be winnowed down
over time so that most recurrences at any given point are out of scope. Newly
created recurrings (after the subsequent code change goes in) will have their
last expansion time set to the same as the event time of when the recurring is
written, such that they'll first be considered in-scope precisely one year
later.
2022-06-01 14:23:56 -04:00
Weimin Yu
857cb833a5 Summarize schema related tests (#1647)
* Summarize schema related tests

Document existing schema-related tests including presubmit tests and
the schema-verify predeployment test newly added to Spinnaker.
2022-05-31 11:03:58 -04:00
Ben McIlwain
82a50862c4 Inject a DomainPricingLogic into ExpandRecurringBillingEventsAction (#1648)
* Inject a DomainPricingLogic into ExpandRecurringBillingEventsAction

This will be used in other PRs to set the renewal price correctly based on the
renewal price behavior of the BillingRecurrence event.

Note that, in order for this to work, a not-null constraint has been lifted on
the EPP flow state when the DomainPricingCustomLogic is being constructed, as
the pricing here will occur in a backend action outside the context of any EPP
flow.
2022-05-27 11:46:36 -04:00
sarahcaseybot
56d1ea71fe Remove BillingId from schema (#1641)
* Remove BillingId from schema

* Add back java changes

* Add transient tag

* Remove java

* Remove flyway files
2022-05-26 15:28:58 -04:00
Ben McIlwain
fd3cec2a0f Slightly improve performance of ExpandRecurringBillingEventsAction (#1642)
* Slightly improve performance of ExpandRecurringBillingEventsAction

We don't need to log every single no-op batch of 50 Recurrences that are
processed (considering we have 1.5M total in our system), and we also don't need
to process Recurrences that already ended prior to the Cursor time (this gets us
down to 420k from 1.5M).
2022-05-25 17:27:21 -04:00
Michael Muller
b9c40dd68d Disable Ofy tests. (#1644)
* Disable Ofy tests.

This change just turns off the Ofy tests at the root, by removing processing
for dual tests and disassociating the TestOfyOnly annotation from test
annotations.

This is far less comprehensive than #1631, but it's probably worth entering as
a stopgap solution just because it should speed up our test runs and unblock a
lot of other cleanup work.

* Fix DualDatabaseTestInvocationContextProviderTest
2022-05-25 09:47:05 -04:00
Lai Jiang
754958ef3a Remove an unnecessary pair of parentheses. (#1645) 2022-05-24 17:37:10 -04:00
Michael Muller
1bf7c925bc Fix style warning (#1643)
THe build is giving a style warning over the extra parens.
2022-05-24 17:22:08 -04:00
Weimin Yu
eeca51667e Optimize RDAP entity event query (#1635)
* Optimize RDAP entity event query

For each EPP entity, directly load the latest HistoryEntry per event type
instead of loading all events through the HistoryEntryDao.

Although most entities have a small number of history entries, there are
a few entities with many entries, enough to cause OutOfMemory error.
2022-05-19 23:35:55 -04:00
sarahcaseybot
123d6359dc Change shouldPublish in GenerateInvoicesAction to default to false (#1640) 2022-05-19 17:51:21 -04:00
Rachel Guan
64fba55f06 Add renewal cost logic to DomainPricingLogic (#1610)
* Add renew cost calculation to DomainPricingLogic

* Fix typos and change assertions
2022-05-19 16:05:21 -04:00
gbrodman
3a7ac669f5 Set up jpaTm before loading data in the test server (#1633) 2022-05-19 12:13:43 -04:00
Michael Muller
fc029b5ad2 Added info on problematic max-instances param (#1639)
We have backend max-instances set to 100, which apparently exceeds the default
quota for GAE.  Add info on updating the quota or changing this parameter to
the configuration doc.
2022-05-19 11:51:27 -04:00
Ben McIlwain
ec5c2cdb68 Add batching to ExpandRecurringBillingEventsAction (#1636)
* Add batching to ExpandRecurringBillingEventsAction

It's OOMing on trying to load every single BillingRecurrence that needs to be
expanded simultaneously (which is to be expected). So this processes them in
transactional batches of 50.
2022-05-19 09:13:37 -04:00
Lai Jiang
c4cf128844 Make Caffeine cache loading work in non-GAE thread (#1634) 2022-05-18 22:01:44 -04:00
sarahcaseybot
c262ef82c9 Remove all uses of the billingIdentifier field (#1608)
* Remove all uses of the billingIdentifier field

* Add @ignore flag

* Add tag
2022-05-18 17:15:45 -04:00
Lai Jiang
03ca6cecc7 Add the ability to nullify the entire billing account map (#1630) 2022-05-17 10:33:42 -04:00
Weimin Yu
bee5e0a5a9 Verify schema using Cloud Build (#1627)
* Add tool to compare  golden and actual schema
2022-05-16 16:10:09 -04:00
Michael Muller
9f0138aeb2 Cleanup gpg-agent instances and home directories (#1629)
* Cleanup gpg-agent instances and home directories

The GpgSystemCommandException leaks home directories, but more importantly it
leaks gpg-agent instances.  This can cause problems with inotify limits, since
the agent seems to make use of inotify.  Do a proper cleanup in afterEach().

* Don't fail if we can't kill the agent
2022-05-16 14:06:26 -04:00
Rachel Guan
eca2b61d8b Add renewal support for AT and internal registrations in DomainCreateFlow (#1591)
* Add renewal info to create flow

* Improve PR
2022-05-13 10:04:15 -04:00
Michael Muller
d12897062b Fix new checkstyle violations (#1626)
* Fix new checkstyle violations

* Restore naming in javadocs
2022-05-11 14:23:21 -04:00
Ben McIlwain
cc46447f25 Remove cron entries for Datastore-specific jobs (#1615)
We'll delete the associated code soon enough too, but it's safer to delete the
cron jobs first and run in that state for a week, so we can still run them
manually if need be.
2022-05-09 17:52:34 -04:00
Lai Jiang
e3016bb7d8 Remove to-be-deprecated OOB OAuth flow in nomulus login (#1625) 2022-05-09 17:17:05 -04:00
Rachel Guan
cc62530345 Add renewal logic in allocation token related commands (#1596)
* Add renewal price behavior to allocation token related command

* Add details to renewal price behavior
2022-05-05 15:48:45 -04:00
Weimin Yu
dd9c576146 Update Postgres docker tag in tests (#1624)
* Update Postgres docker tag in tests
2022-05-05 14:59:19 -04:00
Weimin Yu
d361f7cf18 Tag nomulus-tool in schema deployment script (#1621)
* Tag nomulus-tool in schema deployment script
2022-05-05 12:46:32 -04:00
gbrodman
a9b0988c8f Fix compilation errors caused by Caffeine changes (#1623) 2022-05-05 11:21:10 -04:00
Ben McIlwain
08a9e2b64e Finish conversion from Guava Cache to Caffeine (#1616)
* Finish conversion from Guava Cache to Caffeine
2022-05-04 17:43:47 -04:00
Ben McIlwain
205b16fe8a Reduce the number of manually scaled instances for default/pubapi (#1620)
* Reduce the number of manually scaled instances for default/pubapi

This is in the spirit of "not always running significantly over-provisioned",
which helps to save costs and also expose potential scaling issues when they are
still small rather than all at once when they're a big problem.

This can always be reverted if necessary, and can be instantaneously adjusted by
running the `nomulus set_num_instances` command.
2022-05-04 17:43:27 -04:00
Ben McIlwain
95dfd5b76a Don't enforce billing account map check on TEST TLDs (#1622)
* Don't enforce billing account map check on TEST TLDs

This was affecting monitoring (i.e. prober TLDs). Note that test TLDs are
already excluded from the billing account map check in the Registrar builder()
method (see PR #1601), but we forgot to make that same test TLD exclusion in the
EPP flows check (see PR #1605).
2022-05-04 16:59:25 -04:00
Weimin Yu
ac3c8b7520 Add test for Java 8 Compatibility of third party jars (#1618)
* Add test for Java 8 Compatibility

Add a test to check for Java 8 compatibility of jars deployed to
AppEngine.

It is not enough to run existing tests with Java 8 VM, since many API
jars are not exercised by tests. For example, those for GCP services
like the SecretManager.

We take the conservative approach and verify that every class in every
jar are compiled for Java 8.
2022-05-04 15:44:17 -04:00
Lai Jiang
f4436b54cf Do not delete build cache when building release candidates (#1619)
We would like to re-use the build cache when building RCs for different
environments. There's not much practical use in doing a "clean" for
every build when Gradle should be able to figure out which artifacts
need to be rebuilt. It also does not make sense to build each
environment in a separate step, which also introduces redunency because
not all artifacts are cached across steps. The build cache is enabled by
default.

Lastly, the cache needs to be inside the /workspace folder, which is the
default persisted storage location.

TESTED=tried to build the RCs on alpha and saved about 10 min.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/google/nomulus/1619)
<!-- Reviewable:end -->
2022-05-04 12:08:10 -04:00
Michael Muller
05fcf73452 Add missing transaction for whois lookups (#1614)
* Add missing transaction for whois lookups

Nameserver whois lookups are failing under SQL for hosts with superordinate
domains because the query in this case is not done in a transaction.  We
missed this during testing because a) we didn't have a test for lookups of
hosts with superordinate domains and b) we missed converting
NameserverWhoisResponseTest to a DualDatabaseTest.

This PR fixes the problem and adds the requisite testing.

* Use a single transaction to get host registrars

* Replace streaming with Maps.toMap()
2022-05-04 07:29:45 -04:00
Weimin Yu
e24dba7d2b Downgrade dependencies that no longer support Java8 (#1617)
* Downgrade dependencies that no longer support Java8

Downgrade two dependencies whose latest versions no longer support
java8.

A follow up PR will add java8 compatibility to presubmit tests.
2022-05-04 02:03:34 -04:00
Lai Jiang
4ec8b71f42 Increase Nomulus build timeout (#1613)
We have recently started to routinely breach the 1h timeout. Increasing
this value to 2h. We should also look into reusing the artifacts when
building RCs for different environments.
2022-05-02 16:11:11 -04:00
Weimin Yu
8e8911870c Use Gradle dependency dynamic versioning (#1612)
* Use Gradle dependency dynamic versioning

Use dynamic versioning for Gradle dependencies when possible.
Please refer to go/dr-dependency-upgrade for more information about the
automation plan.

This PR calls out all dependencies that must be pinned to specific
versions for various reasons. The remaining ones are converted to
open-ended version ranges ("[version_str,)").
2022-05-02 14:10:52 -04:00
Ben McIlwain
fa135dcd85 Re-enable prober data deletion cron jobs in prod & sandbox (#1611)
This reverts commit 52c759d1db.
2022-05-02 13:46:02 -04:00
sarahcaseybot
5d82893478 Check PAK is present on billing domain flows (#1605)
* Check PAK on domain create

* Add unit test

* update docs

* Remove unneccesary setup

* Fix blank line

* Add check and test to all relevant flows

* Change error message
2022-04-29 14:30:24 -04:00
Rachel Guan
d0af81ecdf Change from assertThat(assertThrow()) to thrown = assertThrows() then assertThat(thrown) (#1606) 2022-04-28 16:09:36 -04:00
Michael Muller
f273783894 Ignore version UIDs during txn deserialization (#1607)
* Ignore version UIDs during txn deserialization

When deserializing transactions for replay to datastore, ignore class version
UIDs that don't match those of the local classes and just use the local class
descriptors instead.  This is a simple solution for the problem of persisted
VKeys containing references to classes where the class has been updated and
the serial version UID has changed.

Also add a "replay_txns" command that replays the transactions from a given
start point so we can verify all transactions are deserializable.

TESTED:
    Ran replay_txns against all transactions on sandbox beginning with
    transaction id 1828385, which includes Recurring billing events containing
    both the old and the new serial version UIDs.
2022-04-27 15:40:27 -04:00
Ben McIlwain
0dfabe1c64 Convert more Guava caches to Caffeine (#1603)
* Convert more Guava caches to Caffeine
2022-04-26 11:26:51 -04:00
Weimin Yu
60a011c593 Remove stray file that slipped in the repo (#1604)
* Remove stray file that slipped in the repo
2022-04-25 17:08:58 -04:00
Michael Muller
7716eebfff Change check for root directory during rollback (#1602)
* Change check for root directory during rollback

`rollback_tool` tries to infer the root of the nomulus tree by checking for a
directory named "nomulus".  This is potentially problematic (and, indeed, was
for me) since there is no guarantee what that directory will be named.

There are a number of features that characterize the root directory.  Check
for the presence of the `rollback_tool` wrapper script, as this is both at
root level and tightly coupled to the python code, so hopefully we won't
move it without testing that the script still works.
2022-04-25 12:39:16 -04:00
Ben McIlwain
1e76eeed37 Validate that a registrar has billing accounts for all its allowed TLDs (#1601)
This will require edits to a substantial number of registrars on sandbox (nearly
all of them) because almost all of them have access to at least one TLD, but
almost none of them have any billing accounts set. Until this is set, any updates
to the existing registrars that aren't adding the billing accounts will cause
failures.

Unfortunately, there wasn't any less invasive foolproof way to implement this
change, and we already had one attempt to implement it on create registrar
command that wasn't working (because allowed TLDs tend not to be added on
initial registrar creation, but rather, afterwards as an update).
2022-04-22 16:33:18 -04:00
sarahcaseybot
147d133aef Don't fail invoicing on missing PAK (#1595)
* Don't fail invoicing on missing PAK

* Skip line if missing PAK

* Add log check in test
2022-04-22 13:00:50 -04:00
Ben McIlwain
c2e1f2e640 Downgrade Caffeine to 2.9.3 (#1600)
* Downgrade Caffeine to 2.9.3

Apparently Caffeine >=3.* requires Java 11, and we're still stuck on Java 8
because of App Engine Standard.  Fortunately this doesn't affect the exposed
interface we're using, so we can simply go back to the newest Caffeine version
once Registry 3.0 Phase 3 (GKE migration) is completed.
2022-04-20 14:05:37 -04:00
Lai Jiang
5d2639834a Remove the BEAM RDE pipeline side job (#1599)
Now that SQL is the default, we do not need this side job to run
alongside the main one. Its purpose was to validate the BEAM pipeline
while Datastore was primary.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/google/nomulus/1599)
<!-- Reviewable:end -->
2022-04-20 12:12:23 -04:00
Rachel Guan
7912576e3d Add rachelguan@ to CONTRIBUTORS (#1598) 2022-04-19 19:18:44 -04:00
Rachel Guan
8424c85258 Fix build warning for unused variable (#1594) 2022-04-19 14:11:23 -04:00
Lai Jiang
e72dd73ed8 Fix build (#1597) 2022-04-19 08:27:06 -04:00
Rachel Guan
508d221b94 Replace .get()).isEqualTo() with hasValue() (#1589)
* Replace .get()).isEqualTo() with hasValue()

* Use containsExactly for list comparison

* Fix spacing
2022-04-18 18:35:46 -04:00
gbrodman
073d0a416a Create a Dataflow pipeline to resave EPP resources (#1553)
* Create a Dataflow pipeline to resave EPP resources

This has two modes.

If `fast` is false, then we will just load all EPP resources, project them to the current time, and save them.

If `fast` is true, we will attempt to intelligently load and save only resources that we expect to have changes applied when we project them to the current time. This means resources with pending transfers that have expired, domains with expired grace periods, and non-deleted domains that have expired (we expect that they autorenewed).
2022-04-15 15:46:35 -04:00
Rachel Guan
f2ead5a0e3 Make code change for AllocationToken schema change (#1581)
* Make code change for AllocationToken schema change
2022-04-15 15:28:39 -04:00
Lai Jiang
212dbbe520 Fix a in issue with RDE (#1593)
For some inexplicable reason, the RDE beam pipeline in both sandbox and
production has been broken for the past week or so. Our investigations
revealed that during the CoGropuByKey stage, some repo ID -> revision ID
pairs were duplicated. This may be a problem with the Dataflow runtime
which somehow introduced the duplicate during reshuffling.

This PR attempts to fix the symptom only by deduping the revision IDs. We
will do some more investigation and possibly follow up with the Dataflow
team if we determine it is an upstream issue.

TESTED=deployed the pipeline and successfully run sandbox RDE with it.
2022-04-15 10:32:44 -04:00
Ben McIlwain
8594a61fd4 Begin migration from Guava Cache to Caffeine (#1590)
* Begin migration from Guava Cache to Caffeine

Caffeine is apparently strictly superior to the older Guava Cache (and is even
recommended in lieu of Guava Cache on Guava Cache's own documentation).

This adds the relevant dependencies and switch over just a single call site to
use the new Caffeine cache. It also implements a new pattern, asynchronously
refreshing the cache value starting from half of our configuration time. For
frequently accessed entities this will allow us to NEVER block on a load, as it
will be asynchronously refreshed in the background long before it ever expires
synchronously during a read operation.
2022-04-14 13:38:53 -04:00
Rachel Guan
36837eb3e6 Change to hasSize() for assertions (#1588)
* Change to hasSize() for assertions
2022-04-13 18:20:34 -04:00
Rachel Guan
3a9a8c6557 Add new columns to BillingEvent (#1573)
* Add new columns to BillingEvent.java

* Improve PR and modifyJodaMoneyType to handle null currency in override

* Add test cases for edge cases of nullSafeGet in JodaMoneyType

* Improve assertions
2022-04-11 20:09:26 -04:00
Weimin Yu
65c2570b8f Remove dos.xml from the configs (#1587)
* Remove dos.xml from the configs

We don't have dos config right now, and applying dos from "gcloud app
deploy" is deprecated and has started causing problems.

If we add dos configs, it should be using "gcloud app firewall-rules".
2022-04-11 15:22:42 -04:00
Weimin Yu
86acaa1b31 Build Java8-compatible release (#1586)
* Build Java8-compatible release

Use the new options.release Gradle property to make sure builds are
compatible with Java 8, which is the runtime on Appengine.

This new property replaces sourceCompatibility, targetCompatibility, and
bootclasspath (wasn't previously set, which is the reason why we
couldn't detect Java9 api usage when building).
2022-04-11 11:00:00 -04:00
Weimin Yu
436cc03be9 Remove Optional.isEmpty() in code (#1585)
* Remove Optional.isEmpty() in code
2022-04-08 21:30:22 +00:00
Ben McIlwain
e110ddd412 Canonicalize domain/host names in nomulus tool commands (#1583)
* Canonicalize domain/host names in nomulus tool commands

This helps prevent some common user errors.
2022-04-06 18:35:38 -04:00
Michael Muller
214b23e99c Ignore read-only when saving commit logs (#1584)
* Ignore read-only when saving commit logs

Ignore read-only when saving commit logs and commit log mutations so that we
can safely replicate in read-only mode.  This should be safe, as we only ever
to the situation of saving commit logs and mutations when something has
already actually been modified in a transaction, meaning that we should have hit
the "read only" sentinel already.

This also introduces the ability to set the Clock in the
TransactionManagerFactory so that we can test this functionality.

* Changes per review

* Fix issues affecting tests

- Restore clobbered async phase in testNoInMigrationState_doesNothing
- Restore system clock to TransactionManagerFactory to avoid affecting other
  tests.
2022-04-06 13:06:08 -04:00
Rachel Guan
743dea9ca2 Add renewal price behavior to AllocationToken (#1580) 2022-04-04 18:51:49 -04:00
sarahcaseybot
41f9f1ef7d Change use of BillingIdentifier to BillingAccountMap in invoicing pipeline (#1577)
* Change billingIdentifier to BillingAccountMap in invoicing pipeline

* Add a default for billing account map

* Throw error on missing PAK

* Add unit test
2022-04-04 16:16:43 -04:00
Michael Muller
44ede2b022 Check for error suggesting another nomulus running (#1582)
Check for a PSQLException referencing a failed connection to "google:5433",
which likely indicates that there is another nomulus tool instance running.

It's worth giving this hint because in cases like this it's not at all obvious
that the other instance of nomulus is problematic.
2022-04-04 11:14:43 -04:00
Ben McIlwain
e4312322dc Add a no-async actions DB migration phase (#1579)
* Add a no-async actions DB migration phase

This needs to be set several hours prior to entering the READONLY stage. This is
not a read-only stage; all synchronous actions under Datastore (such as domain
creates) will continue to succeed. The only thing that will fail is host
deletes, host renames, and contact deletes, as these three actions require a
mapreduce to run before they are complete, and we don't want mapreduces hanging
around and executing during what is supposed to be a short duration READONLY
period.
2022-04-01 16:55:51 -04:00
458 changed files with 24929 additions and 28482 deletions

View File

@@ -36,3 +36,4 @@ Shicong Huang <shicong@google.com>
Gustav Brodman <gbrodman@google.com>
Sarah Botwinick <sarahbot@google.com>
Legina Chen <legina@google.com>
Rachel Guan <rachelguan@google.com>

View File

@@ -292,7 +292,8 @@ subprojects {
afterEvaluate {
if (rootProject.enableDependencyLocking.toBoolean()
&& project.name != 'integration') {
&& project.name != 'integration'
&& project.name != 'java8compatibility') {
// The ':integration' project runs server/schema integration tests using
// dynamically specified jars with no transitive dependency. Therefore
// dependency-locking does not make sense. Furthermore, during
@@ -300,6 +301,9 @@ subprojects {
// immutable. Locking activation would trigger an invalid operation
// exception.
//
// The ':java8compatibility' project is test-only. Its source does not go
// into production.
//
// For all other projects, due to problem with the gradle-license-report
// plugin, the dependencyLicenseReport configuration must opt out of
// dependency-locking. See dependency_lic.gradle for the reason why.
@@ -331,6 +335,13 @@ subprojects {
apply from: "${rootDir.path}/java_common.gradle"
if (project.name != 'docs') {
compileJava {
// TODO: Remove this once we migrate off AppEngine.
options.release = 8
}
}
if (project.name == 'third_party') return
project.tasks.test.dependsOn runPresubmits

View File

@@ -3,7 +3,7 @@
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.7.0
com.github.kevinstern:software-and-algorithms:1.0
com.google.auto.value:auto-value:1.7.4
com.google.auto.value:auto-value:1.9
com.google.auto:auto-common:0.10
com.google.code.findbugs:jFormatString:3.0.0
com.google.code.findbugs:jsr305:3.0.2

View File

@@ -3,61 +3,60 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.json:json:20160212
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:7.0
org.threeten:threetenbp:1.5.0
org.threeten:threetenbp:1.6.0

View File

@@ -3,61 +3,60 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.json:json:20160212
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:7.0
org.threeten:threetenbp:1.5.0
org.threeten:threetenbp:1.6.0

View File

@@ -3,61 +3,60 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.json:json:20160212
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:7.0
org.threeten:threetenbp:1.5.0
org.threeten:threetenbp:1.6.0

View File

@@ -3,61 +3,60 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.json:json:20160212
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:7.0
org.threeten:threetenbp:1.5.0
org.threeten:threetenbp:1.6.0

View File

@@ -3,61 +3,60 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.json:json:20160212
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:7.0
org.threeten:threetenbp:1.5.0
org.threeten:threetenbp:1.6.0

View File

@@ -3,76 +3,74 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
junit:junit:4.13.1
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
junit:junit:4.13.2
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apiguardian:apiguardian-api:1.1.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.hamcrest:hamcrest-core:1.3
org.json:json:20160212
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.mockito:mockito-core:3.7.7
org.objenesis:objenesis:3.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.mockito:mockito-core:4.6.1
org.objenesis:objenesis:3.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:9.0
org.threeten:threetenbp:1.5.0
org.ow2.asm:asm:9.1
org.threeten:threetenbp:1.6.0

View File

@@ -3,76 +3,74 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
junit:junit:4.13.1
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
junit:junit:4.13.2
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apiguardian:apiguardian-api:1.1.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.apache.httpcomponents:httpcore:4.4.15
org.apiguardian:apiguardian-api:1.1.2
org.checkerframework:checker-qual:3.22.0
org.hamcrest:hamcrest-core:1.3
org.json:json:20160212
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.mockito:mockito-core:3.7.7
org.objenesis:objenesis:3.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.mockito:mockito-core:4.6.1
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:9.0
org.threeten:threetenbp:1.5.0
org.ow2.asm:asm:9.1
org.threeten:threetenbp:1.6.0

View File

@@ -3,76 +3,74 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
junit:junit:4.13.1
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
junit:junit:4.13.2
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apiguardian:apiguardian-api:1.1.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.hamcrest:hamcrest-core:1.3
org.json:json:20160212
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.mockito:mockito-core:3.7.7
org.objenesis:objenesis:3.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.mockito:mockito-core:4.6.1
org.objenesis:objenesis:3.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:9.0
org.threeten:threetenbp:1.5.0
org.ow2.asm:asm:9.1
org.threeten:threetenbp:1.6.0

View File

@@ -3,76 +3,74 @@
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0
args4j:args4j:2.0.23
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.google.api-client:google-api-client:1.31.2
com.google.api.grpc:proto-google-common-protos:2.1.0
com.google.api.grpc:proto-google-iam-v1:1.0.10
com.google.api:api-common:1.10.1
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.62.0
com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0
com.google.auth:google-auth-library-credentials:0.24.1
com.google.auth:google-auth-library-oauth2-http:0.24.1
com.google.auto.value:auto-value-annotations:1.7.4
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-storage:1.113.12
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.google.api-client:google-api-client:1.34.1
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.value:auto-value-annotations:1.9
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-storage:2.7.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.6
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-apache-v2:1.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.0
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client:1.39.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.oauth-client:google-oauth-client:1.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.protobuf:protobuf-java:3.15.3
com.google.oauth-client:google-oauth-client:1.33.3
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.ibm.icu:icu4j:57.1
commons-codec:commons-codec:1.11
commons-logging:commons-logging:1.2
io.grpc:grpc-context:1.36.0
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-context:1.46.0
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-http-util:0.31.1
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
junit:junit:4.13.1
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
junit:junit:4.13.2
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apiguardian:apiguardian-api:1.1.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.apache.httpcomponents:httpcore:4.4.15
org.checkerframework:checker-qual:3.22.0
org.hamcrest:hamcrest-core:1.3
org.json:json:20160212
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.mockito:mockito-core:3.7.7
org.objenesis:objenesis:3.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.mockito:mockito-core:4.6.1
org.objenesis:objenesis:3.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:7.0
org.ow2.asm:asm-commons:7.0
org.ow2.asm:asm-tree:7.0
org.ow2.asm:asm-util:7.0
org.ow2.asm:asm:9.0
org.threeten:threetenbp:1.5.0
org.ow2.asm:asm:9.1
org.threeten:threetenbp:1.6.0

View File

@@ -51,6 +51,7 @@ artifacts {
dependencies {
def deps = rootProject.dependencyMap
compile deps['com.github.ben-manes.caffeine:caffeine']
compile deps['com.google.code.findbugs:jsr305']
compile deps['com.google.guava:guava']
compile deps['javax.inject:javax.inject']

View File

@@ -1,12 +1,13 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
org.checkerframework:checker-qual:3.8.0
joda-time:joda-time:2.10.14
org.checkerframework:checker-qual:3.19.0

View File

@@ -1,12 +1,13 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
org.checkerframework:checker-qual:3.8.0
joda-time:joda-time:2.10.14
org.checkerframework:checker-qual:3.19.0

View File

@@ -1,12 +1,13 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
org.checkerframework:checker-qual:3.8.0
joda-time:joda-time:2.10.14
org.checkerframework:checker-qual:3.19.0

View File

@@ -1,12 +1,13 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
org.checkerframework:checker-qual:3.8.0
joda-time:joda-time:2.10.14
org.checkerframework:checker-qual:3.19.0

View File

@@ -1,12 +1,13 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
org.checkerframework:checker-qual:3.8.0
joda-time:joda-time:2.10.14
org.checkerframework:checker-qual:3.19.0

View File

@@ -1,12 +1,13 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
org.checkerframework:checker-qual:3.8.0
joda-time:joda-time:2.10.14
org.checkerframework:checker-qual:3.19.0

View File

@@ -1,27 +1,27 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
org.apiguardian:apiguardian-api:1.1.0
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,27 +1,28 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
org.apiguardian:apiguardian-api:1.1.0
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.apiguardian:apiguardian-api:1.1.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,28 +1,28 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
org.apiguardian:apiguardian-api:1.1.0
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,28 +1,28 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
org.apiguardian:apiguardian-api:1.1.0
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.junit.jupiter:junit-jupiter-api:5.6.2
org.junit.jupiter:junit-jupiter-engine:5.6.2
org.junit.platform:junit-platform-commons:1.6.2
org.junit.platform:junit-platform-engine:1.6.2
org.junit:junit-bom:5.6.2
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,20 +1,21 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,20 +1,21 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,21 +1,22 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -1,21 +1,22 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.google.auto.value:auto-value-annotations:1.7.4
com.github.ben-manes.caffeine:caffeine:2.9.3
com.google.auto.value:auto-value-annotations:1.8.1
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.11.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.truth:truth:1.1.2
com.google.truth:truth:1.1.3
io.github.java-diff-utils:java-diff-utils:4.9
javax.inject:javax.inject:1
joda-time:joda-time:2.9.2
junit:junit:4.13.1
joda-time:joda-time:2.10.14
junit:junit:4.13.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.19.0
org.hamcrest:hamcrest-core:1.3
org.ow2.asm:asm:9.0
org.ow2.asm:asm:9.1

View File

@@ -14,9 +14,9 @@
package google.registry.testing;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.github.benmanes.caffeine.cache.CacheLoader;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import com.google.common.flogger.FluentLogger;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
@@ -29,7 +29,7 @@ public final class SystemInfo {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private static final LoadingCache<String, Boolean> hasCommandCache =
CacheBuilder.newBuilder()
Caffeine.newBuilder()
.build(
new CacheLoader<String, Boolean>() {
@Override

View File

@@ -69,6 +69,12 @@
{
"moduleLicense": "BSD 3-clause New License"
},
{
"moduleLicense": "BSD-3-Clause"
},
{
"moduleLicense": "BSD-3-Clause;link=\"https://raw.githubusercontent.com/dnsjava/dnsjava/master/LICENSE\""
},
{
"moduleLicense": "3-Clause BSD License"
},
@@ -111,6 +117,9 @@
{
"moduleLicense": "The PostgreSQL License"
},
{
"moduleLicense": "CC0"
},
{
"moduleLicense": "CC0 1.0 Universal License"
},
@@ -265,6 +274,13 @@
"moduleLicense": null,
"moduleName": "com.fasterxml.jackson:jackson-bom"
},
{
// "Apache License, Version 2.0". The plugin is able to parse up to
// 2.0.33.Final but not this verson.
"moduleLicense": null,
"moduleVersion": "2.0.46.Final",
"moduleName": "io.netty:netty-tcnative-classes"
},
{
// Actually Eclipse Public License v2.0
"moduleLicense": null,

View File

@@ -57,6 +57,7 @@ PROPERTIES_HEADER = """\
#
# DO NOT EDIT THIS FILE BY HAND
org.gradle.jvmargs=-Xmx1024m
org.gradle.caching=true
"""
# Help text to be displayed (in addition to the synopsis and flag help, which

View File

@@ -37,7 +37,6 @@ def jsDir = "${project.projectDir}/src/main/javascript"
// TODO(weiminyu): identify cause and fix offending tests.
def outcastTestPatterns = [
// Problem seems to lie with AppEngine TaskQueue for test.
"google/registry/batch/DeleteContactsAndHostsActionTest.*",
"google/registry/batch/RefreshDnsOnHostRenameActionTest.*",
"google/registry/flows/CheckApiActionTest.*",
"google/registry/flows/EppLifecycleHostTest.*",
@@ -172,6 +171,7 @@ dependencies {
testRuntime files(sourceSets.test.resources.srcDirs)
compile deps['com.beust:jcommander']
compile deps['com.github.ben-manes.caffeine:caffeine']
compile deps['com.google.api:gax']
compile deps['com.google.api.grpc:proto-google-cloud-datastore-v1']
compile deps['com.google.api.grpc:proto-google-common-protos']
@@ -713,10 +713,6 @@ createToolTask(
createToolTask(
'jpaDemoPipeline', 'google.registry.beam.common.JpaDemoPipeline')
createToolTask(
'createSyntheticHistoryEntries',
'google.registry.tools.javascrap.CreateSyntheticHistoryEntriesPipeline')
// Caller must provide projectId, GCP region, runner, and the kinds to delete
// (comma-separated kind names or '*' for all). E.g.:
// nom_build :core:bulkDeleteDatastore --args="--project=domain-registry-crash \
@@ -794,10 +790,10 @@ if (environment == 'alpha') {
mainClass: 'google.registry.beam.rde.RdePipeline',
metaData : 'google/registry/beam/rde_pipeline_metadata.json'
],
validateDatabase :
resaveAllEppResources:
[
mainClass: 'google.registry.beam.comparedb.ValidateDatabasePipeline',
metaData: 'google/registry/beam/validate_database_pipeline_metadata.json'
mainClass: 'google.registry.beam.resave.ResaveAllEppResourcesPipeline',
metaData: 'google/registry/beam/resave_all_epp_resources_pipeline_metadata.json'
],
]
project.tasks.create("stageBeamPipelines") {

View File

@@ -3,41 +3,43 @@
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.7.0
com.github.kevinstern:software-and-algorithms:1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.service:auto-service:1.0-rc7
com.google.auto.value:auto-value:1.7.4
com.google.auto:auto-common:0.10
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.service:auto-service:1.0.1
com.google.auto.value:auto-value:1.9
com.google.auto:auto-common:1.2
com.google.code.findbugs:jFormatString:3.0.0
com.google.code.findbugs:jsr305:3.0.2
com.google.dagger:dagger-compiler:2.33
com.google.dagger:dagger-producers:2.33
com.google.dagger:dagger-spi:2.33
com.google.dagger:dagger:2.33
com.google.dagger:dagger-compiler:2.42
com.google.dagger:dagger-producers:2.42
com.google.dagger:dagger-spi:2.42
com.google.dagger:dagger:2.42
com.google.devtools.ksp:symbol-processing-api:1.5.30-1.0.0
com.google.errorprone:error_prone_annotation:2.3.4
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_check_api:2.3.4
com.google.errorprone:error_prone_core:2.3.4
com.google.errorprone:error_prone_type_annotations:2.3.4
com.google.errorprone:javac-shaded:9-dev-r4023-3
com.google.googlejavaformat:google-java-format:1.5
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.0.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.protobuf:protobuf-java:3.4.0
com.googlecode.java-diff-utils:diffutils:1.3.0
com.squareup:javapoet:1.13.0
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.persistence:javax.persistence-api:2.2
net.ltgt.gradle.incap:incap:0.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.12.0
org.checkerframework:dataflow:3.0.0
org.checkerframework:javacutil:3.0.0
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20
org.jetbrains.kotlin:kotlin-stdlib:1.4.20
org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.1.0
org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.32
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.32
org.jetbrains.kotlin:kotlin-stdlib:1.6.10
org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2
org.jetbrains:annotations:13.0
org.pcollections:pcollections:2.1.2
org.plumelib:plume-util:1.0.6

View File

@@ -7,286 +7,300 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
junit:junit:4.13.2
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,276 +7,292 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-stub:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.44.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.44.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.44.1
io.grpc:grpc-grpclb:1.44.0
io.grpc:grpc-netty-shaded:1.44.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.44.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.44.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,300 +7,314 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud.sql:postgres-socket-factory:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud.sql:postgres-socket-factory:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
junit:junit:4.13.2
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.slf4j:slf4j-jdk14:1.7.28
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:2.0.0-alpha7
org.slf4j:slf4j-jdk14:2.0.0-alpha7
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,298 +7,312 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud.sql:postgres-socket-factory:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud.sql:postgres-socket-factory:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.slf4j:slf4j-jdk14:1.7.28
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:2.0.0-alpha7
org.slf4j:slf4j-jdk14:2.0.0-alpha7
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -4,7 +4,9 @@
com.sun.activation:jakarta.activation:1.2.2
com.sun.activation:javax.activation:1.2.0
com.sun.xml.bind:jaxb-impl:2.3.3
com.sun.xml.bind:jaxb-osgi:2.3.3
com.sun.xml.bind:jaxb-osgi:4.0.0-M4
com.sun.xml.bind:jaxb-xjc:2.3.3
jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
javax.xml.bind:jaxb-api:2.3.0
jakarta.activation:jakarta.activation-api:2.1.0
jakarta.xml.bind:jakarta.xml.bind-api:4.0.0
javax.activation:javax.activation-api:1.2.0
javax.xml.bind:jaxb-api:2.4.0-b180830.0359

View File

@@ -7,286 +7,300 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
junit:junit:4.13.2
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,278 +7,294 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-stub:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.44.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.44.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.44.1
io.grpc:grpc-grpclb:1.44.0
io.grpc:grpc-netty-shaded:1.44.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.44.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.44.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
junit:junit:4.13.2
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,298 +7,312 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
junit:junit:4.13.2
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,298 +7,312 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
junit:junit:4.13.2
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,298 +7,312 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.1
junit:junit:4.13.2
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:1.3
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,298 +7,312 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud.sql:postgres-socket-factory:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud.sql:postgres-socket-factory:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:31.0.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.sun.istack:istack-commons-runtime:3.0.7
com.sun.xml.fastinfoset:FastInfoset:1.2.15
com.thoughtworks.paranamer:paranamer:2.7
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy:1.12.9
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-lang3:3.12.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest:2.1
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.jsoup:jsoup:1.15.1
org.jvnet.staxex:stax-ex:1.8
org.objenesis:objenesis:1.2
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.slf4j:slf4j-jdk14:1.7.28
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:2.0.0-alpha7
org.slf4j:slf4j-jdk14:2.0.0-alpha7
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -12,10 +12,10 @@ com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:5.0.1
com.google.inject:guice:5.1.0
com.google.j2objc:j2objc-annotations:1.3
com.google.jsinterop:jsinterop-annotations:1.0.1
com.google.protobuf:protobuf-java:3.13.0
com.google.protobuf:protobuf-java:4.0.0-rc-2
com.google.template:soy:2021-02-01
com.ibm.icu:icu4j:57.1
javax.annotation:jsr250-api:1.0

View File

@@ -3,39 +3,41 @@
# This file is expected to be part of source control.
com.github.ben-manes.caffeine:caffeine:2.7.0
com.github.kevinstern:software-and-algorithms:1.0
com.google.auto.value:auto-value:1.7.4
com.google.auto.value:auto-value:1.9
com.google.auto:auto-common:0.10
com.google.code.findbugs:jFormatString:3.0.0
com.google.code.findbugs:jsr305:3.0.2
com.google.dagger:dagger-compiler:2.33
com.google.dagger:dagger-producers:2.33
com.google.dagger:dagger-spi:2.33
com.google.dagger:dagger:2.33
com.google.dagger:dagger-compiler:2.42
com.google.dagger:dagger-producers:2.42
com.google.dagger:dagger-spi:2.42
com.google.dagger:dagger:2.42
com.google.devtools.ksp:symbol-processing-api:1.5.30-1.0.0
com.google.errorprone:error_prone_annotation:2.3.4
com.google.errorprone:error_prone_annotations:2.5.1
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_check_api:2.3.4
com.google.errorprone:error_prone_core:2.3.4
com.google.errorprone:error_prone_type_annotations:2.3.4
com.google.errorprone:javac-shaded:9-dev-r4023-3
com.google.googlejavaformat:google-java-format:1.5
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:guava:31.0.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.j2objc:j2objc-annotations:1.3
com.google.protobuf:protobuf-java:3.4.0
com.googlecode.java-diff-utils:diffutils:1.3.0
com.squareup:javapoet:1.13.0
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.persistence:javax.persistence-api:2.2
net.ltgt.gradle.incap:incap:0.2
org.checkerframework:checker-compat-qual:2.5.3
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.12.0
org.checkerframework:dataflow:3.0.0
org.checkerframework:javacutil:3.0.0
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20
org.jetbrains.kotlin:kotlin-stdlib:1.4.20
org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.1.0
org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.32
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.32
org.jetbrains.kotlin:kotlin-stdlib:1.6.10
org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2
org.jetbrains:annotations:13.0
org.pcollections:pcollections:2.1.2
org.plumelib:plume-util:1.0.6

View File

@@ -7,136 +7,141 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-api-stubs:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-api-stubs:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-nio:0.124.2
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:31.0.1-jre
com.google.guava:guava-testlib:31.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -144,21 +149,22 @@ com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:contrib:1.0.7
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.squareup.okhttp3:okhttp:3.11.0
com.squareup.okio:okio:1.14.0
com.sun.istack:istack-commons-runtime:3.0.7
@@ -168,151 +174,158 @@ com.thoughtworks.qdox:qdox:1.12.1
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.2
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-direct-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-direct-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.ftpserver:ftplet-api:1.2.0
org.apache.ftpserver:ftpserver-core:1.2.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.apache.mina:mina-core:2.0.4
org.apache.mina:mina-core:2.1.6
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
org.apache.sshd:sshd-sftp:2.0.0
org.apache.tomcat:tomcat-annotations-api:8.0.5
org.apiguardian:apiguardian-api:1.1.0
org.apache.tomcat:tomcat-annotations-api:10.1.0-M15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:2.2
org.hamcrest:hamcrest-library:2.2
org.hamcrest:hamcrest:2.2
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.junit-pioneer:junit-pioneer:0.7.0
org.junit.jupiter:junit-jupiter-api:5.7.0
org.junit.jupiter:junit-jupiter-engine:5.7.0
org.junit.jupiter:junit-jupiter-migrationsupport:5.7.0
org.junit.jupiter:junit-jupiter-params:5.7.0
org.junit.platform:junit-platform-commons:1.7.0
org.junit.platform:junit-platform-engine:1.7.0
org.junit.platform:junit-platform-launcher:1.7.0
org.junit.platform:junit-platform-runner:1.7.0
org.junit.platform:junit-platform-suite-api:1.7.0
org.junit:junit-bom:5.7.0
org.jsoup:jsoup:1.15.1
org.junit-pioneer:junit-pioneer:1.7.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.jupiter:junit-jupiter-migrationsupport:5.9.0-M1
org.junit.jupiter:junit-jupiter-params:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit.platform:junit-platform-launcher:1.9.0-M1
org.junit.platform:junit-platform-runner:1.9.0-M1
org.junit.platform:junit-platform-suite-api:1.9.0-M1
org.junit.platform:junit-platform-suite-commons:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.jvnet.staxex:stax-ex:1.8
org.mockito:mockito-core:3.7.7
org.mockito:mockito-junit-jupiter:3.7.7
org.mockito:mockito-core:4.6.1
org.mockito:mockito-junit-jupiter:4.6.1
org.mortbay.jetty:jetty-util:6.1.26
org.mortbay.jetty:jetty:6.1.26
org.objenesis:objenesis:3.1
org.objenesis:objenesis:3.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.seleniumhq.selenium:selenium-api:3.141.59
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
@@ -323,20 +336,21 @@ org.seleniumhq.selenium:selenium-opera-driver:3.141.59
org.seleniumhq.selenium:selenium-remote-driver:3.141.59
org.seleniumhq.selenium:selenium-safari-driver:3.141.59
org.seleniumhq.selenium:selenium-support:3.141.59
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:junit-jupiter:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:selenium:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:junit-jupiter:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:selenium:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,135 +7,140 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-api-stubs:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-api-stubs:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-nio:0.124.2
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:31.0.1-jre
com.google.guava:guava-testlib:31.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -143,21 +148,22 @@ com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:contrib:1.0.7
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.squareup.okhttp3:okhttp:3.11.0
com.squareup.okio:okio:1.14.0
com.sun.istack:istack-commons-runtime:3.0.7
@@ -167,144 +173,153 @@ com.thoughtworks.qdox:qdox:1.12.1
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-stub:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.44.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.44.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.44.1
io.grpc:grpc-grpclb:1.44.0
io.grpc:grpc-netty-shaded:1.44.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.44.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.44.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.2
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-direct-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-direct-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.ftpserver:ftplet-api:1.2.0
org.apache.ftpserver:ftpserver-core:1.2.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.apache.mina:mina-core:2.0.4
org.apache.mina:mina-core:2.1.6
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
org.apache.sshd:sshd-sftp:2.0.0
org.apache.tomcat:tomcat-annotations-api:8.0.5
org.apiguardian:apiguardian-api:1.1.0
org.apache.tomcat:tomcat-annotations-api:10.1.0-M15
org.apiguardian:apiguardian-api:1.1.2
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:2.2
org.hamcrest:hamcrest-library:2.2
org.hamcrest:hamcrest:2.2
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.junit-pioneer:junit-pioneer:0.7.0
org.junit.jupiter:junit-jupiter-api:5.7.0
org.junit.jupiter:junit-jupiter-engine:5.7.0
org.junit.jupiter:junit-jupiter-migrationsupport:5.7.0
org.junit.jupiter:junit-jupiter-params:5.7.0
org.junit.platform:junit-platform-commons:1.7.0
org.junit.platform:junit-platform-engine:1.7.0
org.junit.platform:junit-platform-launcher:1.7.0
org.junit.platform:junit-platform-runner:1.7.0
org.junit.platform:junit-platform-suite-api:1.7.0
org.junit:junit-bom:5.7.0
org.jsoup:jsoup:1.15.1
org.junit-pioneer:junit-pioneer:1.7.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.jupiter:junit-jupiter-migrationsupport:5.9.0-M1
org.junit.jupiter:junit-jupiter-params:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit.platform:junit-platform-launcher:1.9.0-M1
org.junit.platform:junit-platform-runner:1.9.0-M1
org.junit.platform:junit-platform-suite-api:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.jvnet.staxex:stax-ex:1.8
org.mockito:mockito-core:3.7.7
org.mockito:mockito-junit-jupiter:3.7.7
org.mockito:mockito-core:4.6.1
org.mockito:mockito-junit-jupiter:4.6.1
org.mortbay.jetty:jetty-util:6.1.26
org.mortbay.jetty:jetty:6.1.26
org.objenesis:objenesis:3.1
org.objenesis:objenesis:1.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.seleniumhq.selenium:selenium-api:3.141.59
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
@@ -315,20 +330,21 @@ org.seleniumhq.selenium:selenium-opera-driver:3.141.59
org.seleniumhq.selenium:selenium-remote-driver:3.141.59
org.seleniumhq.selenium:selenium-safari-driver:3.141.59
org.seleniumhq.selenium:selenium-support:3.141.59
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:junit-jupiter:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:selenium:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:junit-jupiter:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:selenium:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,141 +7,142 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-api-stubs:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-api-stubs:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud.sql:postgres-socket-factory:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud.sql:postgres-socket-factory:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-nio:0.124.2
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:31.0.1-jre
com.google.guava:guava-testlib:31.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -149,21 +150,22 @@ com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:contrib:1.0.7
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.squareup.okhttp3:okhttp:3.11.0
com.squareup.okio:okio:1.14.0
com.sun.istack:istack-commons-runtime:3.0.7
@@ -173,10 +175,14 @@ com.thoughtworks.qdox:qdox:1.12.1
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
@@ -184,145 +190,152 @@ io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.github.java-diff-utils:java-diff-utils:4.9
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.2
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-direct-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-direct-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.ftpserver:ftplet-api:1.2.0
org.apache.ftpserver:ftpserver-core:1.2.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.apache.mina:mina-core:2.0.4
org.apache.mina:mina-core:2.1.6
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
org.apache.sshd:sshd-sftp:2.0.0
org.apache.tomcat:tomcat-annotations-api:8.0.5
org.apiguardian:apiguardian-api:1.1.0
org.apache.tomcat:tomcat-annotations-api:10.1.0-M15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:2.2
org.hamcrest:hamcrest-library:2.2
org.hamcrest:hamcrest:2.2
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.junit-pioneer:junit-pioneer:0.7.0
org.junit.jupiter:junit-jupiter-api:5.7.0
org.junit.jupiter:junit-jupiter-engine:5.7.0
org.junit.jupiter:junit-jupiter-migrationsupport:5.7.0
org.junit.jupiter:junit-jupiter-params:5.7.0
org.junit.platform:junit-platform-commons:1.7.0
org.junit.platform:junit-platform-engine:1.7.0
org.junit.platform:junit-platform-launcher:1.7.0
org.junit.platform:junit-platform-runner:1.7.0
org.junit.platform:junit-platform-suite-api:1.7.0
org.junit:junit-bom:5.7.0
org.jsoup:jsoup:1.15.1
org.junit-pioneer:junit-pioneer:1.7.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.jupiter:junit-jupiter-migrationsupport:5.9.0-M1
org.junit.jupiter:junit-jupiter-params:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit.platform:junit-platform-launcher:1.9.0-M1
org.junit.platform:junit-platform-runner:1.9.0-M1
org.junit.platform:junit-platform-suite-api:1.9.0-M1
org.junit.platform:junit-platform-suite-commons:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.jvnet.staxex:stax-ex:1.8
org.mockito:mockito-core:3.7.7
org.mockito:mockito-junit-jupiter:3.7.7
org.mockito:mockito-core:4.6.1
org.mockito:mockito-junit-jupiter:4.6.1
org.mortbay.jetty:jetty-util:6.1.26
org.mortbay.jetty:jetty:6.1.26
org.objenesis:objenesis:3.1
org.objenesis:objenesis:3.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.seleniumhq.selenium:selenium-api:3.141.59
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
@@ -335,21 +348,22 @@ org.seleniumhq.selenium:selenium-safari-driver:3.141.59
org.seleniumhq.selenium:selenium-support:3.141.59
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:junit-jupiter:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:selenium:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:1.7.36
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:junit-jupiter:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:selenium:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -7,141 +7,142 @@ args4j:args4j:2.0.23
cglib:cglib-nodep:2.2
com.101tec:zkclient:0.10
com.beust:jcommander:1.60
com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
com.fasterxml.jackson.core:jackson-annotations:2.13.0
com.fasterxml.jackson.core:jackson-core:2.13.0
com.fasterxml.jackson.core:jackson-databind:2.13.0
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0
com.fasterxml.jackson:jackson-bom:2.13.0
com.fasterxml.jackson.core:jackson-annotations:2.13.3
com.fasterxml.jackson.core:jackson-core:2.13.3
com.fasterxml.jackson.core:jackson-databind:2.13.3
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.3
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3
com.fasterxml.jackson:jackson-bom:2.13.3
com.fasterxml:classmate:1.5.1
com.github.docker-java:docker-java-api:3.2.7
com.github.docker-java:docker-java-transport-zerodep:3.2.7
com.github.docker-java:docker-java-transport:3.2.7
com.github.jnr:jffi:1.3.1
com.github.ben-manes.caffeine:caffeine:2.9.3
com.github.docker-java:docker-java-api:3.2.13
com.github.docker-java:docker-java-transport-zerodep:3.2.13
com.github.docker-java:docker-java-transport:3.2.13
com.github.jnr:jffi:1.3.9
com.github.jnr:jnr-a64asm:1.0.0
com.github.jnr:jnr-constants:0.10.1
com.github.jnr:jnr-enxio:0.32.3
com.github.jnr:jnr-ffi:2.2.1
com.github.jnr:jnr-posix:3.1.4
com.github.jnr:jnr-unixsocket:0.38.5
com.github.jnr:jnr-constants:0.10.3
com.github.jnr:jnr-enxio:0.32.13
com.github.jnr:jnr-ffi:2.2.11
com.github.jnr:jnr-posix:3.1.15
com.github.jnr:jnr-unixsocket:0.38.17
com.github.jnr:jnr-x86asm:1.0.2
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-appengine:1.35.0
com.google.api-client:google-api-client-jackson2:1.32.2
com.google.api-client:google-api-client-java6:1.31.3
com.google.api-client:google-api-client-servlet:1.31.3
com.google.api-client:google-api-client:1.32.2
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api-client:google-api-client-java6:1.35.0
com.google.api-client:google-api-client-servlet:1.35.0
com.google.api-client:google-api-client:1.35.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.27.1
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:grpc-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.8.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.132.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.132.1
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.1
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.2
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.10
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.97.1
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.4.8
com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:1.4.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.4
com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.4
com.google.api.grpc:proto-google-cloud-storage-v2:2.0.1-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.89.2
com.google.api.grpc:proto-google-common-protos:2.7.1
com.google.api.grpc:proto-google-iam-v1:1.2.0
com.google.api:api-common:2.1.2
com.google.api:gax-grpc:2.8.1
com.google.api:gax-httpjson:0.93.1
com.google.api:gax:2.8.1
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.97.5
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:grpc-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:grpc-google-common-protos:2.7.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.10.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.134.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.134.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.5.3
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.5.3
com.google.api.grpc:proto-google-cloud-datastore-v1:0.93.4
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.14
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.98.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.5.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.2.0
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.2.0
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.20.0
com.google.api.grpc:proto-google-cloud-spanner-v1:6.20.0
com.google.api.grpc:proto-google-cloud-storage-v2:2.2.2-alpha
com.google.api.grpc:proto-google-cloud-tasks-v2:2.2.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.92.0
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.92.0
com.google.api.grpc:proto-google-common-protos:2.8.3
com.google.api.grpc:proto-google-iam-v1:1.3.4
com.google.api:api-common:2.2.0
com.google.api:gax-grpc:2.18.1
com.google.api:gax-httpjson:0.103.1
com.google.api:gax:2.18.1
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0
com.google.apis:google-api-services-appengine:v1-rev130-1.25.0
com.google.apis:google-api-services-appengine:v1-rev20220509-1.32.1
com.google.apis:google-api-services-bigquery:v2-rev20211129-1.32.1
com.google.apis:google-api-services-clouddebugger:v2-rev20210813-1.32.1
com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0
com.google.apis:google-api-services-cloudkms:v1-rev20220513-1.32.1
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20211017-1.32.1
com.google.apis:google-api-services-dataflow:v1b3-rev20210818-1.32.1
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0
com.google.apis:google-api-services-drive:v2-rev393-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0
com.google.apis:google-api-services-groupssettings:v1-rev20210624-1.32.1
com.google.apis:google-api-services-healthcare:v1-rev20211016-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-monitoring:v3-rev20220525-1.32.1
com.google.apis:google-api-services-pubsub:v1-rev20211130-1.32.1
com.google.apis:google-api-services-sheets:v4-rev612-1.25.0
com.google.apis:google-api-services-sqladmin:v1beta4-rev20210119-1.31.0
com.google.apis:google-api-services-storage:v1-rev20211201-1.32.1
com.google.apis:google-api-services-sheets:v4-rev20220411-1.32.1
com.google.apis:google-api-services-sqladmin:v1beta4-rev20220323-1.32.1
com.google.apis:google-api-services-storage:v1-rev20220509-1.32.1
com.google.appengine.tools:appengine-gcs-client:0.8.1
com.google.appengine.tools:appengine-mapreduce:0.9
com.google.appengine.tools:appengine-pipeline:0.2.13
com.google.appengine:appengine-api-1.0-sdk:1.9.86
com.google.appengine:appengine-api-stubs:1.9.86
com.google.appengine:appengine-remote-api:1.9.86
com.google.appengine:appengine-api-1.0-sdk:2.0.5
com.google.appengine:appengine-api-stubs:2.0.5
com.google.appengine:appengine-remote-api:2.0.5
com.google.appengine:appengine-testing:1.9.86
com.google.auth:google-auth-library-credentials:1.3.0
com.google.auth:google-auth-library-oauth2-http:1.3.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auth:google-auth-library-credentials:1.7.0
com.google.auth:google-auth-library-oauth2-http:1.7.0
com.google.auto.service:auto-service-annotations:1.0.1
com.google.auto.value:auto-value-annotations:1.9
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.2.4
com.google.cloud.bigdataoss:util:2.2.4
com.google.cloud.bigtable:bigtable-client-core:1.25.1
com.google.cloud.bigtable:bigtable-metrics-api:1.25.1
com.google.auto.value:auto-value:1.9
com.google.cloud.bigdataoss:gcsio:2.2.6
com.google.cloud.bigdataoss:util:2.2.6
com.google.cloud.bigtable:bigtable-client-core:1.26.3
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3
com.google.cloud.datastore:datastore-v1-proto-client:2.1.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud.sql:postgres-socket-factory:1.2.1
com.google.cloud:google-cloud-bigquerystorage:2.8.1
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.3.5
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:2.3.5
com.google.cloud:google-cloud-firestore:3.0.10
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.115.1
com.google.cloud:google-cloud-pubsublite:1.4.8
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:6.17.4
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud.sql:jdbc-socket-factory-core:1.6.0
com.google.cloud.sql:postgres-socket-factory:1.6.0
com.google.cloud:google-cloud-bigquerystorage:2.10.0
com.google.cloud:google-cloud-bigtable:2.5.3
com.google.cloud:google-cloud-core-grpc:2.4.0
com.google.cloud:google-cloud-core-http:2.7.1
com.google.cloud:google-cloud-core:2.7.1
com.google.cloud:google-cloud-firestore:3.0.14
com.google.cloud:google-cloud-monitoring:1.82.0
com.google.cloud:google-cloud-nio:0.124.2
com.google.cloud:google-cloud-pubsub:1.116.0
com.google.cloud:google-cloud-pubsublite:1.5.0
com.google.cloud:google-cloud-secretmanager:2.2.0
com.google.cloud:google-cloud-spanner:6.20.0
com.google.cloud:google-cloud-storage:2.7.2
com.google.cloud:google-cloud-tasks:2.2.0
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.10
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.14
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.9
com.google.code.gson:gson:2.9.0
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.10.0
com.google.dagger:dagger:2.42
com.google.errorprone:error_prone_annotations:2.13.1
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.4
com.google.flogger:flogger:0.7.4
com.google.flogger:google-extensions:0.7.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:31.0.1-jre
com.google.guava:guava-testlib:31.1-jre
com.google.guava:guava:31.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.gwt:gwt-user:2.9.0
com.google.http-client:google-http-client-apache-v2:1.40.1
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.41.0
com.google.http-client:google-http-client-jackson2:1.41.0
com.google.http-client:google-http-client-apache-v2:1.41.8
com.google.http-client:google-http-client-appengine:1.41.8
com.google.http-client:google-http-client-gson:1.41.8
com.google.http-client:google-http-client-jackson2:1.41.8
com.google.http-client:google-http-client-protobuf:1.40.1
com.google.http-client:google-http-client:1.41.0
com.google.http-client:google-http-client:1.41.8
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -149,21 +150,22 @@ com.google.jsinterop:jsinterop-annotations:2.0.0
com.google.monitoring-client:contrib:1.0.7
com.google.monitoring-client:metrics:1.0.7
com.google.monitoring-client:stackdriver:1.0.7
com.google.oauth-client:google-oauth-client-appengine:1.31.4
com.google.oauth-client:google-oauth-client-java6:1.31.4
com.google.oauth-client:google-oauth-client-jetty:1.31.4
com.google.oauth-client:google-oauth-client-servlet:1.31.4
com.google.oauth-client:google-oauth-client:1.32.1
com.google.protobuf:protobuf-java-util:3.19.2
com.google.protobuf:protobuf-java:3.19.2
com.google.oauth-client:google-oauth-client-appengine:1.34.0
com.google.oauth-client:google-oauth-client-java6:1.34.0
com.google.oauth-client:google-oauth-client-jetty:1.34.0
com.google.oauth-client:google-oauth-client-servlet:1.34.0
com.google.oauth-client:google-oauth-client:1.34.0
com.google.protobuf:protobuf-java-util:3.20.1
com.google.protobuf:protobuf-java:3.20.1
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
com.google.truth.extensions:truth-java8-extension:1.1.2
com.google.truth:truth:1.1.2
com.google.truth.extensions:truth-java8-extension:1.1.3
com.google.truth:truth:1.1.3
com.googlecode.charts4j:charts4j:1.3
com.googlecode.json-simple:json-simple:1.1.1
com.ibm.icu:icu4j:68.2
com.ibm.icu:icu4j:71.1
com.jcraft:jsch:0.1.55
com.lmax:disruptor:3.4.2
com.squareup.okhttp3:okhttp:3.11.0
com.squareup.okio:okio:1.14.0
com.sun.istack:istack-commons-runtime:3.0.7
@@ -173,10 +175,14 @@ com.thoughtworks.qdox:qdox:1.12.1
com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
dnsjava:dnsjava:3.5.1
guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
guru.nidi.com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
guru.nidi:graphviz-java-all-j2v8:0.18.1
guru.nidi:graphviz-java:0.18.1
io.confluent:common-config:5.3.2
io.confluent:common-utils:5.3.2
io.confluent:kafka-avro-serializer:5.3.2
@@ -184,145 +190,152 @@ io.confluent:kafka-schema-registry-client:5.3.2
io.dropwizard.metrics:metrics-core:3.1.2
io.github.classgraph:classgraph:4.8.104
io.github.java-diff-utils:java-diff-utils:4.9
io.grpc:grpc-alts:1.43.2
io.grpc:grpc-api:1.43.2
io.grpc:grpc-auth:1.43.2
io.grpc:grpc-context:1.43.2
io.grpc:grpc-core:1.43.2
io.grpc:grpc-grpclb:1.43.2
io.grpc:grpc-netty-shaded:1.43.2
io.grpc:grpc-netty:1.43.2
io.grpc:grpc-protobuf-lite:1.43.2
io.grpc:grpc-protobuf:1.43.2
io.grpc:grpc-services:1.43.2
io.grpc:grpc-stub:1.43.2
io.grpc:grpc-xds:1.43.2
io.netty:netty-buffer:4.1.63.Final
io.netty:netty-codec-http2:4.1.63.Final
io.netty:netty-codec-http:4.1.63.Final
io.netty:netty-codec-socks:4.1.63.Final
io.netty:netty-codec:4.1.63.Final
io.netty:netty-common:4.1.63.Final
io.netty:netty-handler-proxy:4.1.63.Final
io.netty:netty-handler:4.1.63.Final
io.netty:netty-resolver:4.1.63.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.63.Final
io.opencensus:opencensus-api:0.30.0
io.opencensus:opencensus-contrib-grpc-util:0.30.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.grpc:grpc-alts:1.46.0
io.grpc:grpc-api:1.46.0
io.grpc:grpc-auth:1.46.0
io.grpc:grpc-census:1.44.0
io.grpc:grpc-context:1.46.0
io.grpc:grpc-core:1.46.0
io.grpc:grpc-googleapis:1.46.0
io.grpc:grpc-grpclb:1.46.0
io.grpc:grpc-netty-shaded:1.46.0
io.grpc:grpc-netty:1.44.0
io.grpc:grpc-protobuf-lite:1.46.0
io.grpc:grpc-protobuf:1.46.0
io.grpc:grpc-services:1.46.0
io.grpc:grpc-stub:1.46.0
io.grpc:grpc-xds:1.46.0
io.netty:netty-buffer:4.1.72.Final
io.netty:netty-codec-http2:4.1.72.Final
io.netty:netty-codec-http:4.1.72.Final
io.netty:netty-codec-socks:4.1.72.Final
io.netty:netty-codec:4.1.72.Final
io.netty:netty-common:4.1.72.Final
io.netty:netty-handler-proxy:4.1.72.Final
io.netty:netty-handler:4.1.72.Final
io.netty:netty-resolver:4.1.72.Final
io.netty:netty-tcnative-boringssl-static:2.0.46.Final
io.netty:netty-tcnative-classes:2.0.46.Final
io.netty:netty-transport:4.1.72.Final
io.opencensus:opencensus-api:0.31.1
io.opencensus:opencensus-contrib-exemplar-util:0.31.0
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0
io.opencensus:opencensus-contrib-grpc-util:0.31.0
io.opencensus:opencensus-contrib-http-util:0.31.1
io.opencensus:opencensus-contrib-resource-util:0.31.0
io.opencensus:opencensus-exporter-metrics-util:0.31.0
io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0
io.opencensus:opencensus-impl-core:0.31.0
io.opencensus:opencensus-impl:0.31.0
io.opencensus:opencensus-proto:0.2.0
io.perfmark:perfmark-api:0.23.0
io.perfmark:perfmark-api:0.25.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.3.2
javax.annotation:jsr250-api:1.0
javax.inject:javax.inject:1
javax.jdo:jdo2-api:2.3-eb
javax.mail:mail:1.4
javax.jdo:jdo2-api:2.3-20090302111651
javax.mail:mail:1.5.0-b01
javax.persistence:javax.persistence-api:2.2
javax.servlet:servlet-api:2.5
javax.transaction:transaction-api:1.1
javax.validation:validation-api:1.0.0.GA
javax.xml.bind:jaxb-api:2.3.1
jline:jline:1.0
joda-time:joda-time:2.10.10
junit:junit:4.13.2
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy-agent:1.10.19
net.bytebuddy:byte-buddy:1.10.19
net.java.dev.jna:jna:5.5.0
net.bytebuddy:byte-buddy-agent:1.12.10
net.bytebuddy:byte-buddy:1.12.10
net.java.dev.jna:jna:5.8.0
org.apache.arrow:arrow-format:5.0.0
org.apache.arrow:arrow-memory-core:5.0.0
org.apache.arrow:arrow-vector:5.0.0
org.apache.avro:avro:1.8.2
org.apache.beam:beam-model-fn-execution:2.37.0
org.apache.beam:beam-model-job-management:2.37.0
org.apache.beam:beam-model-pipeline:2.37.0
org.apache.beam:beam-runners-core-construction-java:2.37.0
org.apache.beam:beam-runners-core-java:2.37.0
org.apache.beam:beam-runners-direct-java:2.37.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0
org.apache.beam:beam-runners-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-core:2.37.0
org.apache.beam:beam-sdks-java-expansion-service:2.37.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.37.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.37.0
org.apache.beam:beam-sdks-java-fn-execution:2.37.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0
org.apache.beam:beam-sdks-java-io-kafka:2.37.0
org.apache.beam:beam-model-fn-execution:2.39.0
org.apache.beam:beam-model-job-management:2.39.0
org.apache.beam:beam-model-pipeline:2.39.0
org.apache.beam:beam-runners-core-construction-java:2.39.0
org.apache.beam:beam-runners-core-java:2.39.0
org.apache.beam:beam-runners-direct-java:2.39.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.39.0
org.apache.beam:beam-runners-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-core:2.39.0
org.apache.beam:beam-sdks-java-expansion-service:2.39.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.39.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.39.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.39.0
org.apache.beam:beam-sdks-java-fn-execution:2.39.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.39.0
org.apache.beam:beam-sdks-java-io-kafka:2.39.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_43_2:0.1
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
org.apache.commons:commons-text:1.6
org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-text:1.9
org.apache.ftpserver:ftplet-api:1.2.0
org.apache.ftpserver:ftpserver-core:1.2.0
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.15
org.apache.mina:mina-core:2.0.4
org.apache.mina:mina-core:2.1.6
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
org.apache.sshd:sshd-sftp:2.0.0
org.apache.tomcat:tomcat-annotations-api:8.0.5
org.apiguardian:apiguardian-api:1.1.0
org.apache.tomcat:tomcat-annotations-api:10.1.0-M15
org.bouncycastle:bcpg-jdk15on:1.67
org.bouncycastle:bcpkix-jdk15on:1.67
org.bouncycastle:bcprov-jdk15on:1.67
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.21.0
org.checkerframework:checker-qual:3.22.0
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.codehaus.mojo:animal-sniffer-annotations:1.20
org.codehaus.mojo:animal-sniffer-annotations:1.21
org.conscrypt:conscrypt-openjdk-uber:2.5.1
org.dom4j:dom4j:2.1.3
org.easymock:easymock:3.0
org.flywaydb:flyway-core:5.2.4
org.flywaydb:flyway-core:8.5.12
org.glassfish.jaxb:jaxb-runtime:2.3.1
org.glassfish.jaxb:txw2:2.3.1
org.hamcrest:hamcrest-core:2.2
org.hamcrest:hamcrest-library:2.2
org.hamcrest:hamcrest:2.2
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
org.hibernate:hibernate-core:5.4.23.Final
org.hibernate:hibernate-hikaricp:5.4.23.Final
org.javassist:javassist:3.24.0-GA
org.jboss.logging:jboss-logging:3.4.1.Final
org.hibernate:hibernate-core:5.6.9.Final
org.hibernate:hibernate-hikaricp:5.6.9.Final
org.jboss.logging:jboss-logging:3.4.3.Final
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final
org.jboss:jandex:2.1.3.Final
org.jboss:jandex:2.4.2.Final
org.jetbrains:annotations:17.0.0
org.joda:joda-money:1.0.1
org.json:json:20200518
org.jsoup:jsoup:1.13.1
org.junit-pioneer:junit-pioneer:0.7.0
org.junit.jupiter:junit-jupiter-api:5.7.0
org.junit.jupiter:junit-jupiter-engine:5.7.0
org.junit.jupiter:junit-jupiter-migrationsupport:5.7.0
org.junit.jupiter:junit-jupiter-params:5.7.0
org.junit.platform:junit-platform-commons:1.7.0
org.junit.platform:junit-platform-engine:1.7.0
org.junit.platform:junit-platform-launcher:1.7.0
org.junit.platform:junit-platform-runner:1.7.0
org.junit.platform:junit-platform-suite-api:1.7.0
org.junit:junit-bom:5.7.0
org.jsoup:jsoup:1.15.1
org.junit-pioneer:junit-pioneer:1.7.1
org.junit.jupiter:junit-jupiter-api:5.9.0-M1
org.junit.jupiter:junit-jupiter-engine:5.9.0-M1
org.junit.jupiter:junit-jupiter-migrationsupport:5.9.0-M1
org.junit.jupiter:junit-jupiter-params:5.9.0-M1
org.junit.platform:junit-platform-commons:1.9.0-M1
org.junit.platform:junit-platform-engine:1.9.0-M1
org.junit.platform:junit-platform-launcher:1.9.0-M1
org.junit.platform:junit-platform-runner:1.9.0-M1
org.junit.platform:junit-platform-suite-api:1.9.0-M1
org.junit.platform:junit-platform-suite-commons:1.9.0-M1
org.junit:junit-bom:5.9.0-M1
org.jvnet.staxex:stax-ex:1.8
org.mockito:mockito-core:3.7.7
org.mockito:mockito-junit-jupiter:3.7.7
org.mockito:mockito-core:4.6.1
org.mockito:mockito-junit-jupiter:4.6.1
org.mortbay.jetty:jetty-util:6.1.26
org.mortbay.jetty:jetty:6.1.26
org.objenesis:objenesis:3.1
org.objenesis:objenesis:3.2
org.opentest4j:opentest4j:1.2.0
org.ow2.asm:asm-analysis:9.1
org.ow2.asm:asm-commons:9.0
org.ow2.asm:asm-tree:9.1
org.ow2.asm:asm-util:9.1
org.ow2.asm:asm:9.1
org.postgresql:postgresql:42.2.18
org.ow2.asm:asm-analysis:9.3
org.ow2.asm:asm-commons:9.2
org.ow2.asm:asm-tree:9.3
org.ow2.asm:asm-util:9.3
org.ow2.asm:asm:9.3
org.postgresql:postgresql:42.3.6
org.rnorth.duct-tape:duct-tape:1.0.8
org.rnorth.visible-assertions:visible-assertions:2.1.2
org.seleniumhq.selenium:selenium-api:3.141.59
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
@@ -335,22 +348,23 @@ org.seleniumhq.selenium:selenium-safari-driver:3.141.59
org.seleniumhq.selenium:selenium-support:3.141.59
org.slf4j:jcl-over-slf4j:1.7.30
org.slf4j:jul-to-slf4j:1.7.30
org.slf4j:slf4j-api:1.7.30
org.slf4j:slf4j-jdk14:1.7.28
org.springframework:spring-core:4.3.18.RELEASE
org.springframework:spring-expression:4.3.18.RELEASE
org.testcontainers:database-commons:1.15.2
org.testcontainers:jdbc:1.15.2
org.testcontainers:junit-jupiter:1.15.2
org.testcontainers:postgresql:1.15.2
org.testcontainers:selenium:1.15.2
org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.2
org.slf4j:slf4j-api:2.0.0-alpha7
org.slf4j:slf4j-jdk14:2.0.0-alpha7
org.springframework:spring-core:5.3.18
org.springframework:spring-expression:5.3.18
org.springframework:spring-jcl:5.3.18
org.testcontainers:database-commons:1.17.2
org.testcontainers:jdbc:1.17.2
org.testcontainers:junit-jupiter:1.17.2
org.testcontainers:postgresql:1.17.2
org.testcontainers:selenium:1.17.2
org.testcontainers:testcontainers:1.17.2
org.threeten:threetenbp:1.6.0
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.webjars.npm:viz.js-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.28
org.yaml:snakeyaml:1.30
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -21,7 +21,6 @@ import static google.registry.backup.ExportCommitLogDiffAction.UPPER_CHECKPOINT_
import static google.registry.backup.RestoreCommitLogsAction.BUCKET_OVERRIDE_PARAM;
import static google.registry.backup.RestoreCommitLogsAction.FROM_TIME_PARAM;
import static google.registry.backup.RestoreCommitLogsAction.TO_TIME_PARAM;
import static google.registry.backup.SyncDatastoreToSqlSnapshotAction.SQL_SNAPSHOT_ID_PARAM;
import static google.registry.request.RequestParameters.extractOptionalParameter;
import static google.registry.request.RequestParameters.extractRequiredDatetimeParameter;
import static google.registry.request.RequestParameters.extractRequiredParameter;
@@ -99,12 +98,6 @@ public final class BackupModule {
return extractRequiredDatetimeParameter(req, TO_TIME_PARAM);
}
@Provides
@Parameter(SQL_SNAPSHOT_ID_PARAM)
static String provideSqlSnapshotId(HttpServletRequest req) {
return extractRequiredParameter(req, SQL_SNAPSHOT_ID_PARAM);
}
@Provides
@Backups
static ListeningExecutorService provideListeningExecutorService() {

View File

@@ -21,7 +21,6 @@ import com.google.storage.onestore.v3.OnestoreEntity.Path;
import com.google.storage.onestore.v3.OnestoreEntity.Property.Meaning;
import com.google.storage.onestore.v3.OnestoreEntity.PropertyValue.ReferenceValue;
import google.registry.model.annotations.DeleteAfterMigration;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
/** Utilities for handling imported Datastore entities. */
@@ -68,9 +67,7 @@ public class EntityImports {
if (path.elementSize() == 0) {
return false;
}
return Objects.equals(
path.getElement(path.elementSize() - 1).getType(StandardCharsets.UTF_8),
"CommitLogMutation");
return Objects.equals(path.getElement(path.elementSize() - 1).getType(), "CommitLogMutation");
}
private static void fixMutationEntityProtoBytes(EntityProto entityProto, String appId) {

View File

@@ -1,321 +0,0 @@
// Copyright 2020 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.backup;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static google.registry.backup.ExportCommitLogDiffAction.DIFF_FILE_PREFIX;
import static google.registry.backup.RestoreCommitLogsAction.DRY_RUN_PARAM;
import static google.registry.model.ofy.EntityWritePriorities.getEntityPriority;
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import static google.registry.util.DateTimeUtils.isAtOrAfter;
import static google.registry.util.DateTimeUtils.isBeforeOrAt;
import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
import static javax.servlet.http.HttpServletResponse.SC_OK;
import static org.joda.time.Duration.standardHours;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.cloud.storage.BlobInfo;
import com.google.common.collect.ImmutableList;
import com.google.common.flogger.FluentLogger;
import google.registry.config.RegistryConfig.Config;
import google.registry.gcs.GcsUtils;
import google.registry.model.UpdateAutoTimestamp;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.DatabaseMigrationStateSchedule;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState;
import google.registry.model.common.DatabaseMigrationStateSchedule.ReplayDirection;
import google.registry.model.replay.DatastoreEntity;
import google.registry.model.replay.DatastoreOnlyEntity;
import google.registry.model.replay.NonReplicatedEntity;
import google.registry.model.replay.ReplaySpecializer;
import google.registry.model.replay.SqlReplayCheckpoint;
import google.registry.model.server.Lock;
import google.registry.model.translators.VKeyTranslatorFactory;
import google.registry.persistence.VKey;
import google.registry.request.Action;
import google.registry.request.Action.Method;
import google.registry.request.Parameter;
import google.registry.request.Response;
import google.registry.request.auth.Auth;
import google.registry.util.Clock;
import google.registry.util.RequestStatusChecker;
import java.io.IOException;
import java.io.InputStream;
import java.util.Optional;
import javax.inject.Inject;
import javax.servlet.http.HttpServletResponse;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Seconds;
/** Action that replays commit logs to Cloud SQL to keep it up to date. */
@Action(
service = Action.Service.BACKEND,
path = ReplayCommitLogsToSqlAction.PATH,
method = Method.POST,
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class ReplayCommitLogsToSqlAction implements Runnable {
static final String PATH = "/_dr/task/replayCommitLogsToSql";
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
public static final String REPLAY_TO_SQL_LOCK_NAME =
ReplayCommitLogsToSqlAction.class.getSimpleName();
public static final Duration REPLAY_TO_SQL_LOCK_LEASE_LENGTH = standardHours(1);
// Stop / pause where we are if we've been replaying for more than five minutes to avoid GAE
// request timeouts
private static final Duration REPLAY_TIMEOUT_DURATION = Duration.standardMinutes(5);
@Inject GcsUtils gcsUtils;
@Inject Response response;
@Inject RequestStatusChecker requestStatusChecker;
@Inject GcsDiffFileLister diffLister;
@Inject Clock clock;
@Inject
@Config("commitLogGcsBucket")
String gcsBucket;
/** If true, will exit after logging the commit log files that would otherwise be replayed. */
@Inject
@Parameter(DRY_RUN_PARAM)
boolean dryRun;
@Inject
ReplayCommitLogsToSqlAction() {}
@Override
public void run() {
DateTime startTime = clock.nowUtc();
MigrationState state = DatabaseMigrationStateSchedule.getValueAtTime(startTime);
if (!state.getReplayDirection().equals(ReplayDirection.DATASTORE_TO_SQL)) {
String message =
String.format(
"Skipping ReplayCommitLogsToSqlAction because we are in migration phase %s.", state);
logger.atInfo().log(message);
// App Engine will retry on any non-2xx status code, which we don't want in this case.
response.setStatus(SC_NO_CONTENT);
response.setPayload(message);
return;
}
Optional<Lock> lock =
Lock.acquireSql(
REPLAY_TO_SQL_LOCK_NAME,
null,
REPLAY_TO_SQL_LOCK_LEASE_LENGTH,
requestStatusChecker,
false);
if (!lock.isPresent()) {
String message = "Can't acquire SQL commit log replay lock, aborting.";
logger.atSevere().log(message);
// App Engine will retry on any non-2xx status code, which we don't want in this case.
// Let the next run after the next export happen naturally.
response.setStatus(SC_NO_CONTENT);
response.setPayload(message);
return;
}
try {
logger.atInfo().log("Beginning replay of commit logs.");
String resultMessage;
if (dryRun) {
resultMessage = executeDryRun();
} else {
resultMessage = replayFiles(startTime);
}
response.setStatus(SC_OK);
response.setPayload(resultMessage);
logger.atInfo().log(resultMessage);
} catch (Throwable t) {
String message = "Errored out replaying files.";
logger.atSevere().withCause(t).log(message);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.setPayload(message);
} finally {
lock.ifPresent(Lock::releaseSql);
}
}
private String executeDryRun() {
// Start at the first millisecond we haven't seen yet
DateTime searchStartTime = jpaTm().transact(() -> SqlReplayCheckpoint.get().plusMillis(1));
// Search through the end of the hour
DateTime searchEndTime =
searchStartTime.withMinuteOfHour(59).withSecondOfMinute(59).withMillisOfSecond(999);
ImmutableList<String> fileBatch =
diffLister.listDiffFiles(gcsBucket, searchStartTime, searchEndTime).stream()
.map(BlobInfo::getName)
.collect(toImmutableList());
return String.format(
"Running in dry-run mode, the first set of commit log files processed would be from "
+ "searching from %s to %s and would contain %d file(s). They are (limit 10): \n%s",
searchStartTime,
searchEndTime,
fileBatch.size(),
fileBatch.stream().limit(10).collect(toImmutableList()));
}
private String replayFiles(DateTime startTime) {
DateTime replayTimeoutTime = startTime.plus(REPLAY_TIMEOUT_DURATION);
DateTime searchStartTime = jpaTm().transact(() -> SqlReplayCheckpoint.get().plusMillis(1));
int filesProcessed = 0;
int transactionsProcessed = 0;
// Starting from one millisecond after the last file we processed, search for and import files
// one hour at a time until we catch up to the current time or we hit the replay timeout (in
// which case the next run will pick up from where we leave off).
//
// We use hour-long batches because GCS supports filename prefix-based searches.
while (true) {
if (isAtOrAfter(clock.nowUtc(), replayTimeoutTime)) {
return createResponseString(
"Reached max execution time", startTime, filesProcessed, transactionsProcessed);
}
if (isBeforeOrAt(clock.nowUtc(), searchStartTime)) {
return createResponseString(
"Caught up to current time", startTime, filesProcessed, transactionsProcessed);
}
// Search through the end of the hour
DateTime searchEndTime =
searchStartTime.withMinuteOfHour(59).withSecondOfMinute(59).withMillisOfSecond(999);
ImmutableList<BlobInfo> fileBatch =
diffLister.listDiffFiles(gcsBucket, searchStartTime, searchEndTime);
if (fileBatch.isEmpty()) {
logger.atInfo().log(
"No remaining files found in hour %s, continuing search in the next hour.",
searchStartTime.toString("yyyy-MM-dd HH"));
}
for (BlobInfo file : fileBatch) {
transactionsProcessed += processFile(file);
filesProcessed++;
if (clock.nowUtc().isAfter(replayTimeoutTime)) {
return createResponseString(
"Reached max execution time", startTime, filesProcessed, transactionsProcessed);
}
}
searchStartTime = searchEndTime.plusMillis(1);
}
}
private String createResponseString(
String msg, DateTime startTime, int filesProcessed, int transactionsProcessed) {
double tps =
(double) transactionsProcessed
/ (double) Seconds.secondsBetween(startTime, clock.nowUtc()).getSeconds();
return String.format(
"%s after replaying %d file(s) containing %d total transaction(s) (%.2f tx/s).",
msg, filesProcessed, transactionsProcessed, tps);
}
/**
* Replays the commit logs in the given commit log file and returns the number of transactions
* committed.
*/
private int processFile(BlobInfo metadata) {
try (InputStream input = gcsUtils.openInputStream(metadata.getBlobId())) {
// Load and process the Datastore transactions one at a time
ImmutableList<ImmutableList<VersionedEntity>> allTransactions =
CommitLogImports.loadEntitiesByTransaction(input);
try (UpdateAutoTimestamp.DisableAutoUpdateResource disabler =
UpdateAutoTimestamp.disableAutoUpdate()) {
allTransactions.forEach(
transaction -> jpaTm().transact(() -> replayTransaction(transaction)));
}
// if we succeeded, set the last-seen time
DateTime checkpoint = DateTime.parse(metadata.getName().substring(DIFF_FILE_PREFIX.length()));
jpaTm().transact(() -> SqlReplayCheckpoint.set(checkpoint));
logger.atInfo().log(
"Replayed %d transactions from commit log file %s with size %d B.",
allTransactions.size(), metadata.getName(), metadata.getSize());
return allTransactions.size();
} catch (IOException e) {
throw new RuntimeException(
"Errored out while replaying commit log file " + metadata.getName(), e);
}
}
private void replayTransaction(ImmutableList<VersionedEntity> transaction) {
transaction.stream()
.sorted(ReplayCommitLogsToSqlAction::compareByWeight)
.forEach(
versionedEntity -> {
if (versionedEntity.getEntity().isPresent()) {
handleEntityPut(versionedEntity.getEntity().get());
} else {
handleEntityDelete(versionedEntity);
}
});
}
private void handleEntityPut(Entity entity) {
Object ofyPojo = auditedOfy().toPojo(entity);
try {
if (ofyPojo instanceof DatastoreEntity) {
DatastoreEntity datastoreEntity = (DatastoreEntity) ofyPojo;
datastoreEntity
.toSqlEntity()
.ifPresent(
sqlEntity -> {
sqlEntity.beforeSqlSaveOnReplay();
jpaTm().putIgnoringReadOnlyWithoutBackup(sqlEntity);
});
} else {
// this should never happen, but we shouldn't fail on it
logger.atSevere().log(
"%s does not implement DatastoreEntity, which is necessary for SQL replay.",
ofyPojo.getClass());
}
} catch (Throwable t) {
logger.atSevere().log("Error when replaying object %s.", ofyPojo);
throw t;
}
}
private void handleEntityDelete(VersionedEntity entityToDelete) {
Key key = entityToDelete.key();
VKey<?> entityVKey;
try {
entityVKey = VKeyTranslatorFactory.createVKey(key);
} catch (RuntimeException e) {
// This means that the key wasn't convertible to VKey through the standard methods or via
// a createVKey method. This means that the object isn't persisted in SQL so we ignore it.
logger.atInfo().log(
"Skipping SQL delete for kind %s since it is not convertible.", key.getKind());
return;
}
try {
Class<?> entityClass = entityVKey.getKind();
// Delete the key iff the class represents a JPA entity that is replicated
if (!NonReplicatedEntity.class.isAssignableFrom(entityClass)
&& !DatastoreOnlyEntity.class.isAssignableFrom(entityClass)
&& entityClass.getAnnotation(javax.persistence.Entity.class) != null) {
ReplaySpecializer.beforeSqlDelete(entityVKey);
jpaTm().deleteIgnoringReadOnlyWithoutBackup(entityVKey);
}
} catch (Throwable t) {
logger.atSevere().log("Error when deleting key %s.", entityVKey);
throw t;
}
}
private static int compareByWeight(VersionedEntity a, VersionedEntity b) {
return getEntityPriority(a.key().getKind(), !a.getEntity().isPresent())
- getEntityPriority(b.key().getKind(), !b.getEntity().isPresent());
}
}

View File

@@ -1,187 +0,0 @@
// Copyright 2022 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.backup;
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
import static javax.servlet.http.HttpServletResponse.SC_OK;
import com.google.common.flogger.FluentLogger;
import google.registry.beam.comparedb.LatestDatastoreSnapshotFinder;
import google.registry.config.RegistryConfig.Config;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogCheckpoint;
import google.registry.model.replay.ReplicateToDatastoreAction;
import google.registry.request.Action;
import google.registry.request.Action.Service;
import google.registry.request.Parameter;
import google.registry.request.Response;
import google.registry.request.auth.Auth;
import google.registry.util.Sleeper;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.Optional;
import javax.inject.Inject;
import org.joda.time.DateTime;
import org.joda.time.Duration;
/**
* Synchronizes Datastore to a given SQL snapshot when SQL is the primary database.
*
* <p>The caller takes the responsibility for:
*
* <ul>
* <li>verifying the current migration stage
* <li>acquiring the {@link ReplicateToDatastoreAction#REPLICATE_TO_DATASTORE_LOCK_NAME
* replication lock}, and
* <li>while holding the lock, creating an SQL snapshot and invoking this action with the snapshot
* id
* </ul>
*
* The caller may release the replication lock upon receiving the response from this action. Please
* refer to {@link google.registry.tools.ValidateDatastoreCommand} for more information on usage.
*
* <p>This action plays SQL transactions up to the user-specified snapshot, creates a new CommitLog
* checkpoint, and exports all CommitLogs to GCS up to this checkpoint. The timestamp of this
* checkpoint can be used to recreate a Datastore snapshot that is equivalent to the given SQL
* snapshot. If this action succeeds, the checkpoint timestamp is included in the response (the
* format of which is defined by {@link #SUCCESS_RESPONSE_TEMPLATE}).
*/
@Action(
service = Service.BACKEND,
path = SyncDatastoreToSqlSnapshotAction.PATH,
method = Action.Method.POST,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class SyncDatastoreToSqlSnapshotAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
public static final String PATH = "/_dr/task/syncDatastoreToSqlSnapshot";
public static final String SUCCESS_RESPONSE_TEMPLATE =
"Datastore is up-to-date with provided SQL snapshot (%s). CommitLog timestamp is (%s).";
static final String SQL_SNAPSHOT_ID_PARAM = "sqlSnapshotId";
private static final int COMMITLOGS_PRESENCE_CHECK_ATTEMPTS = 10;
private static final Duration COMMITLOGS_PRESENCE_CHECK_DELAY = Duration.standardSeconds(6);
private final Response response;
private final Sleeper sleeper;
@Config("commitLogGcsBucket")
private final String gcsBucket;
private final GcsDiffFileLister gcsDiffFileLister;
private final LatestDatastoreSnapshotFinder datastoreSnapshotFinder;
private final CommitLogCheckpointAction commitLogCheckpointAction;
private final String sqlSnapshotId;
@Inject
SyncDatastoreToSqlSnapshotAction(
Response response,
Sleeper sleeper,
@Config("commitLogGcsBucket") String gcsBucket,
GcsDiffFileLister gcsDiffFileLister,
LatestDatastoreSnapshotFinder datastoreSnapshotFinder,
CommitLogCheckpointAction commitLogCheckpointAction,
@Parameter(SQL_SNAPSHOT_ID_PARAM) String sqlSnapshotId) {
this.response = response;
this.sleeper = sleeper;
this.gcsBucket = gcsBucket;
this.gcsDiffFileLister = gcsDiffFileLister;
this.datastoreSnapshotFinder = datastoreSnapshotFinder;
this.commitLogCheckpointAction = commitLogCheckpointAction;
this.sqlSnapshotId = sqlSnapshotId;
}
@Override
public void run() {
logger.atInfo().log("Datastore validation invoked. SqlSnapshotId is %s.", sqlSnapshotId);
try {
CommitLogCheckpoint checkpoint = ensureDatabasesComparable(sqlSnapshotId);
response.setStatus(SC_OK);
response.setPayload(
String.format(SUCCESS_RESPONSE_TEMPLATE, sqlSnapshotId, checkpoint.getCheckpointTime()));
return;
} catch (Throwable e) {
logger.atSevere().withCause(e).log("Failed to sync Datastore to SQL.");
response.setStatus(SC_INTERNAL_SERVER_ERROR);
response.setPayload(getStackTrace(e));
}
}
private static String getStackTrace(Throwable e) {
try {
ByteArrayOutputStream bis = new ByteArrayOutputStream();
PrintStream printStream = new PrintStream(bis);
e.printStackTrace(printStream);
printStream.close();
return bis.toString();
} catch (RuntimeException re) {
return re.getMessage();
}
}
private CommitLogCheckpoint ensureDatabasesComparable(String sqlSnapshotId) {
// Replicate SQL transaction to Datastore, up to when this snapshot is taken.
int playbacks = ReplicateToDatastoreAction.replayAllTransactions(Optional.of(sqlSnapshotId));
logger.atInfo().log("Played %s SQL transactions.", playbacks);
Optional<CommitLogCheckpoint> checkpoint = exportCommitLogs();
if (!checkpoint.isPresent()) {
throw new RuntimeException("Cannot create CommitLog checkpoint");
}
logger.atInfo().log(
"CommitLog checkpoint created at %s.", checkpoint.get().getCheckpointTime());
verifyCommitLogsPersisted(checkpoint.get());
return checkpoint.get();
}
private Optional<CommitLogCheckpoint> exportCommitLogs() {
// Trigger an async CommitLog export to GCS. Will check file availability later.
// Although we can add support to synchronous execution, it can disrupt the export cadence
// when the system is busy
Optional<CommitLogCheckpoint> checkpoint =
commitLogCheckpointAction.createCheckPointAndStartAsyncExport();
// Failure to create checkpoint most likely caused by race with cron-triggered checkpointing.
// Retry once.
if (!checkpoint.isPresent()) {
commitLogCheckpointAction.createCheckPointAndStartAsyncExport();
}
return checkpoint;
}
private void verifyCommitLogsPersisted(CommitLogCheckpoint checkpoint) {
DateTime exportStartTime =
datastoreSnapshotFinder
.getSnapshotInfo(checkpoint.getCheckpointTime().toInstant())
.exportInterval()
.getStart();
logger.atInfo().log("Found Datastore export at %s", exportStartTime);
for (int attempts = 0; attempts < COMMITLOGS_PRESENCE_CHECK_ATTEMPTS; attempts++) {
try {
gcsDiffFileLister.listDiffFiles(gcsBucket, exportStartTime, checkpoint.getCheckpointTime());
return;
} catch (IllegalStateException e) {
// Gap in commitlog files. Fall through to sleep and retry.
logger.atInfo().log("Commitlog files not yet found on GCS.");
}
sleeper.sleepInterruptibly(COMMITLOGS_PRESENCE_CHECK_DELAY);
}
throw new RuntimeException("Cannot find all commitlog files.");
}
}

View File

@@ -112,6 +112,12 @@ public class BatchModule {
req, ExpandRecurringBillingEventsAction.PARAM_CURSOR_TIME);
}
@Provides
@Parameter(ResaveAllEppResourcesPipelineAction.PARAM_FAST)
static Optional<Boolean> provideIsFast(HttpServletRequest req) {
return extractOptionalBooleanParameter(req, ResaveAllEppResourcesPipelineAction.PARAM_FAST);
}
@Provides
@Named(QUEUE_ASYNC_ACTIONS)
static Queue provideAsyncActionsPushQueue() {

View File

@@ -1,621 +0,0 @@
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.batch;
import static com.google.appengine.api.taskqueue.QueueConstants.maxLeaseCount;
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.math.IntMath.divide;
import static com.googlecode.objectify.Key.getKind;
import static google.registry.batch.AsyncTaskEnqueuer.PARAM_CLIENT_TRANSACTION_ID;
import static google.registry.batch.AsyncTaskEnqueuer.PARAM_IS_SUPERUSER;
import static google.registry.batch.AsyncTaskEnqueuer.PARAM_REQUESTED_TIME;
import static google.registry.batch.AsyncTaskEnqueuer.PARAM_REQUESTING_CLIENT_ID;
import static google.registry.batch.AsyncTaskEnqueuer.PARAM_RESOURCE_KEY;
import static google.registry.batch.AsyncTaskEnqueuer.PARAM_SERVER_TRANSACTION_ID;
import static google.registry.batch.AsyncTaskEnqueuer.QUEUE_ASYNC_DELETE;
import static google.registry.model.EppResourceUtils.isActive;
import static google.registry.model.EppResourceUtils.isDeleted;
import static google.registry.model.ResourceTransferUtils.denyPendingTransfer;
import static google.registry.model.ResourceTransferUtils.handlePendingTransferOnDelete;
import static google.registry.model.ResourceTransferUtils.updateForeignKeyIndexDeletionTime;
import static google.registry.model.eppcommon.StatusValue.PENDING_DELETE;
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import static google.registry.model.reporting.HistoryEntry.Type.CONTACT_DELETE;
import static google.registry.model.reporting.HistoryEntry.Type.CONTACT_DELETE_FAILURE;
import static google.registry.model.reporting.HistoryEntry.Type.HOST_DELETE;
import static google.registry.model.reporting.HistoryEntry.Type.HOST_DELETE_FAILURE;
import static google.registry.model.transfer.TransferStatus.SERVER_CANCELLED;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
import static java.math.RoundingMode.CEILING;
import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.concurrent.TimeUnit.SECONDS;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.SEVERE;
import static org.joda.time.Duration.standardHours;
import com.google.appengine.api.taskqueue.LeaseOptions;
import com.google.appengine.api.taskqueue.Queue;
import com.google.appengine.api.taskqueue.TaskHandle;
import com.google.appengine.api.taskqueue.TransientFailureException;
import com.google.appengine.tools.mapreduce.Mapper;
import com.google.appengine.tools.mapreduce.Reducer;
import com.google.appengine.tools.mapreduce.ReducerInput;
import com.google.auto.value.AutoValue;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterators;
import com.google.common.collect.Multiset;
import com.google.common.flogger.FluentLogger;
import com.googlecode.objectify.Key;
import google.registry.batch.AsyncTaskMetrics.OperationResult;
import google.registry.batch.AsyncTaskMetrics.OperationType;
import google.registry.batch.DeleteContactsAndHostsAction.DeletionResult.Type;
import google.registry.dns.DnsQueue;
import google.registry.mapreduce.MapreduceRunner;
import google.registry.mapreduce.UnlockerOutput;
import google.registry.mapreduce.inputs.EppResourceInputs;
import google.registry.mapreduce.inputs.NullInput;
import google.registry.model.EppResource;
import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.ExternalMessagingName;
import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase;
import google.registry.model.eppcommon.StatusValue;
import google.registry.model.eppcommon.Trid;
import google.registry.model.eppoutput.EppResponse.ResponseData;
import google.registry.model.host.HostResource;
import google.registry.model.poll.PendingActionNotificationResponse.ContactPendingActionNotificationResponse;
import google.registry.model.poll.PendingActionNotificationResponse.HostPendingActionNotificationResponse;
import google.registry.model.poll.PollMessage;
import google.registry.model.reporting.HistoryEntry;
import google.registry.model.server.Lock;
import google.registry.persistence.VKey;
import google.registry.request.Action;
import google.registry.request.Response;
import google.registry.request.auth.Auth;
import google.registry.util.Clock;
import google.registry.util.NonFinalForTesting;
import google.registry.util.RequestStatusChecker;
import google.registry.util.Retrier;
import google.registry.util.SystemClock;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Named;
import org.joda.time.DateTime;
import org.joda.time.Duration;
/**
* A mapreduce that processes batch asynchronous deletions of contact and host resources by mapping
* over all domains and checking for any references to the contacts/hosts in pending deletion.
*/
@Deprecated
@Action(
service = Action.Service.BACKEND,
path = "/_dr/task/deleteContactsAndHosts",
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class DeleteContactsAndHostsAction implements Runnable {
static final String KIND_CONTACT = getKind(ContactResource.class);
static final String KIND_HOST = getKind(HostResource.class);
private static final Duration LEASE_LENGTH = standardHours(4);
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private static final int MAX_REDUCE_SHARDS = 50;
private static final int DELETES_PER_SHARD = 5;
@Inject AsyncTaskMetrics asyncTaskMetrics;
@Inject Clock clock;
@Inject MapreduceRunner mrRunner;
@Inject @Named(QUEUE_ASYNC_DELETE) Queue queue;
@Inject RequestStatusChecker requestStatusChecker;
@Inject Response response;
@Inject Retrier retrier;
@Inject DeleteContactsAndHostsAction() {}
@Override
public void run() {
// Check if the lock can be acquired, and if not, a previous run of this mapreduce is still
// executing, so return early.
Optional<Lock> lock =
Lock.acquire(
DeleteContactsAndHostsAction.class.getSimpleName(),
null,
LEASE_LENGTH,
requestStatusChecker,
false);
if (!lock.isPresent()) {
logRespondAndUnlock(INFO, "Can't acquire lock; aborting.", lock);
return;
}
// Lease the async tasks to process.
LeaseOptions options =
LeaseOptions.Builder.withCountLimit(maxLeaseCount())
.leasePeriod(LEASE_LENGTH.getStandardSeconds(), SECONDS);
List<TaskHandle> tasks = queue.leaseTasks(options);
asyncTaskMetrics.recordContactHostDeletionBatchSize(tasks.size());
// Check if there are no tasks to process, and if so, return early.
if (tasks.isEmpty()) {
logRespondAndUnlock(INFO, "No contact/host deletion tasks in pull queue; finishing.", lock);
return;
}
Multiset<String> kindCounts = HashMultiset.create(2);
ImmutableList.Builder<DeletionRequest> builder = new ImmutableList.Builder<>();
ImmutableList.Builder<Key<? extends EppResource>> resourceKeys = new ImmutableList.Builder<>();
final List<DeletionRequest> requestsToDelete = new ArrayList<>();
for (TaskHandle task : tasks) {
try {
DeletionRequest deletionRequest = DeletionRequest.createFromTask(task, clock.nowUtc());
if (deletionRequest.isDeletionAllowed()) {
builder.add(deletionRequest);
resourceKeys.add(deletionRequest.key());
kindCounts.add(deletionRequest.key().getKind());
} else {
requestsToDelete.add(deletionRequest);
}
} catch (Exception e) {
logger.atSevere().withCause(e).log(
"Could not parse async deletion request, delaying task for a day: %s", task);
// Grab the lease for a whole day, so that it won't continue throwing errors every five
// minutes.
queue.modifyTaskLease(task, 1L, DAYS);
}
}
deleteStaleTasksWithRetry(requestsToDelete);
ImmutableList<DeletionRequest> deletionRequests = builder.build();
if (deletionRequests.isEmpty()) {
logRespondAndUnlock(
INFO, "No async deletions to process because all were already handled.", lock);
} else {
logger.atInfo().log(
"Processing asynchronous deletion of %d contacts and %d hosts: %s",
kindCounts.count(KIND_CONTACT), kindCounts.count(KIND_HOST), resourceKeys.build());
runMapreduce(deletionRequests, lock);
}
}
/**
* Deletes a list of tasks associated with deletion requests from the async delete queue using a
* retrier.
*/
private void deleteStaleTasksWithRetry(final List<DeletionRequest> deletionRequests) {
if (deletionRequests.isEmpty()) {
return;
}
final List<TaskHandle> tasks =
deletionRequests.stream().map(DeletionRequest::task).collect(toImmutableList());
retrier.callWithRetry(() -> queue.deleteTask(tasks), TransientFailureException.class);
deletionRequests.forEach(
deletionRequest ->
asyncTaskMetrics.recordAsyncFlowResult(
deletionRequest.getMetricOperationType(),
OperationResult.STALE,
deletionRequest.requestedTime()));
}
private void runMapreduce(ImmutableList<DeletionRequest> deletionRequests, Optional<Lock> lock) {
try {
int numReducers =
Math.min(MAX_REDUCE_SHARDS, divide(deletionRequests.size(), DELETES_PER_SHARD, CEILING));
mrRunner
.setJobName("Check for EPP resource references and then delete")
.setModuleName("backend")
.setDefaultReduceShards(numReducers)
.runMapreduce(
new DeleteContactsAndHostsMapper(deletionRequests),
new DeleteEppResourceReducer(),
ImmutableList.of(
// Add an extra shard that maps over a null domain. See the mapper code for why.
new NullInput<>(), EppResourceInputs.createEntityInput(DomainBase.class)),
new UnlockerOutput<Void>(lock.get()))
.sendLinkToMapreduceConsole(response);
} catch (Throwable t) {
logRespondAndUnlock(SEVERE, "Error starting mapreduce to delete contacts/hosts.", lock);
}
}
private void logRespondAndUnlock(Level level, String message, Optional<Lock> lock) {
logger.at(level).log(message);
response.setPayload(message);
lock.ifPresent(Lock::release);
}
/**
* A mapper that iterates over all {@link DomainBase} entities.
*
* <p>It emits the target key and {@code true} for domains referencing the target resource. For
* the special input of {@code null} it emits the target key and {@code false}.
*/
public static class DeleteContactsAndHostsMapper
extends Mapper<DomainBase, DeletionRequest, Boolean> {
private static final long serialVersionUID = -253652818502690537L;
private final ImmutableList<DeletionRequest> deletionRequests;
DeleteContactsAndHostsMapper(ImmutableList<DeletionRequest> resourcesToDelete) {
this.deletionRequests = resourcesToDelete;
}
@Override
public void map(DomainBase domain) {
for (DeletionRequest deletionRequest : deletionRequests) {
if (domain == null) {
// The reducer only runs if at least one value is emitted. We add a null input to the
// mapreduce and emit one 'false' for each deletion request so that the reducer always
// runs for each requested deletion (so that it can finish up tasks if nothing else).
emit(deletionRequest, false);
} else if (isActive(domain, deletionRequest.lastUpdateTime())
&& isLinked(domain, deletionRequest.key())) {
emit(deletionRequest, true);
getContext()
.incrementCounter(
String.format("active Domain-%s links found", deletionRequest.key().getKind()));
}
}
if (domain != null) {
getContext().incrementCounter("domains processed");
}
}
/** Determine whether the target resource is a linked resource on the domain. */
private boolean isLinked(DomainBase domain, Key<? extends EppResource> resourceKey) {
if (resourceKey.getKind().equals(KIND_CONTACT)) {
return domain
.getReferencedContacts()
.contains(VKey.from((Key<ContactResource>) resourceKey));
} else if (resourceKey.getKind().equals(KIND_HOST)) {
return domain.getNameservers().contains(VKey.from((Key<HostResource>) resourceKey));
} else {
throw new IllegalStateException("EPP resource key of unknown type: " + resourceKey);
}
}
}
/**
* A reducer that checks if the EPP resource to be deleted is referenced anywhere, and then
* deletes it if not and unmarks it for deletion if so.
*/
public static class DeleteEppResourceReducer
extends Reducer<DeletionRequest, Boolean, Void> {
private static final long serialVersionUID = 6569363449285506326L;
private static final DnsQueue dnsQueue = DnsQueue.create();
@NonFinalForTesting
private static AsyncTaskMetrics asyncTaskMetrics = new AsyncTaskMetrics(new SystemClock());
@Override
public void reduce(final DeletionRequest deletionRequest, ReducerInput<Boolean> values) {
final boolean hasNoActiveReferences = !Iterators.contains(values, true);
logger.atInfo().log("Processing async deletion request for %s.", deletionRequest.key());
DeletionResult result =
tm()
.transactNew(
() -> {
DeletionResult deletionResult =
attemptToDeleteResource(deletionRequest, hasNoActiveReferences);
getQueue(QUEUE_ASYNC_DELETE).deleteTask(deletionRequest.task());
return deletionResult;
});
asyncTaskMetrics.recordAsyncFlowResult(
deletionRequest.getMetricOperationType(),
result.getMetricOperationResult(),
deletionRequest.requestedTime());
String resourceNamePlural = deletionRequest.key().getKind() + "s";
getContext().incrementCounter(result.type().renderCounterText(resourceNamePlural));
logger.atInfo().log(
"Result of async deletion for resource %s: %s",
deletionRequest.key(), result.pollMessageText());
}
private DeletionResult attemptToDeleteResource(
DeletionRequest deletionRequest, boolean hasNoActiveReferences) {
DateTime now = tm().getTransactionTime();
EppResource resource =
auditedOfy().load().key(deletionRequest.key()).now().cloneProjectedAtTime(now);
// Double-check transactionally that the resource is still active and in PENDING_DELETE.
if (!doesResourceStateAllowDeletion(resource, now)) {
return DeletionResult.create(Type.ERRORED, "");
}
// Contacts and external hosts have a direct client id. For subordinate hosts it needs to be
// read off of the superordinate domain.
String resourceRegistrarId = resource.getPersistedCurrentSponsorRegistrarId();
if (resource instanceof HostResource && ((HostResource) resource).isSubordinate()) {
resourceRegistrarId =
tm().loadByKey(((HostResource) resource).getSuperordinateDomain())
.cloneProjectedAtTime(now)
.getCurrentSponsorRegistrarId();
}
boolean requestedByCurrentOwner =
resourceRegistrarId.equals(deletionRequest.requestingClientId());
boolean deleteAllowed =
hasNoActiveReferences && (requestedByCurrentOwner || deletionRequest.isSuperuser());
String resourceTypeName =
resource.getClass().getAnnotation(ExternalMessagingName.class).value();
String pollMessageText =
deleteAllowed
? String.format("Deleted %s %s.", resourceTypeName, resource.getForeignKey())
: String.format(
"Can't delete %s %s because %s.",
resourceTypeName,
resource.getForeignKey(),
requestedByCurrentOwner
? "it is referenced by a domain"
: "it was transferred prior to deletion");
HistoryEntry historyEntry =
HistoryEntry.createBuilderForResource(resource)
.setRegistrarId(deletionRequest.requestingClientId())
.setModificationTime(now)
.setType(getHistoryEntryType(resource, deleteAllowed))
.build();
PollMessage.OneTime pollMessage =
new PollMessage.OneTime.Builder()
.setRegistrarId(deletionRequest.requestingClientId())
.setMsg(pollMessageText)
.setParent(historyEntry)
.setEventTime(now)
.setResponseData(
getPollMessageResponseData(deletionRequest, resource, deleteAllowed, now))
.build();
EppResource resourceToSave;
if (deleteAllowed) {
EppResource.Builder<?, ?> resourceToSaveBuilder;
if (resource instanceof ContactResource) {
ContactResource contact = (ContactResource) resource;
// Handle pending transfers on contact deletion.
if (contact.getStatusValues().contains(StatusValue.PENDING_TRANSFER)) {
contact =
denyPendingTransfer(
contact, SERVER_CANCELLED, now, deletionRequest.requestingClientId());
}
// Wipe out PII on contact deletion.
resourceToSaveBuilder = contact.asBuilder().wipeOut();
} else {
resourceToSaveBuilder = resource.asBuilder();
}
resourceToSave = resourceToSaveBuilder.setDeletionTime(now).setStatusValues(null).build();
performDeleteTasks(resource, resourceToSave, now, historyEntry);
updateForeignKeyIndexDeletionTime(resourceToSave);
} else {
resourceToSave = resource.asBuilder().removeStatusValue(PENDING_DELETE).build();
}
auditedOfy()
.save()
.<ImmutableObject>entities(resourceToSave, historyEntry.asHistoryEntry(), pollMessage);
return DeletionResult.create(
deleteAllowed ? Type.DELETED : Type.NOT_DELETED, pollMessageText);
}
private static ImmutableList<? extends ResponseData> getPollMessageResponseData(
DeletionRequest deletionRequest,
EppResource resource,
boolean deleteAllowed,
DateTime now) {
@Nullable String clientTransactionId = deletionRequest.clientTransactionId();
String serverTransactionId = deletionRequest.serverTransactionId();
Trid trid = Trid.create(clientTransactionId, serverTransactionId);
if (resource instanceof HostResource) {
return ImmutableList.of(
HostPendingActionNotificationResponse.create(
((HostResource) resource).getHostName(), deleteAllowed, trid, now));
} else if (resource instanceof ContactResource) {
return ImmutableList.of(
ContactPendingActionNotificationResponse.create(
((ContactResource) resource).getContactId(), deleteAllowed, trid, now));
} else {
throw new IllegalStateException("EPP resource of unknown type " + Key.create(resource));
}
}
/**
* Determine the proper history entry type for the delete operation, as a function of
* whether or not the delete was successful.
*/
private HistoryEntry.Type getHistoryEntryType(EppResource resource, boolean successfulDelete) {
if (resource instanceof ContactResource) {
return successfulDelete ? CONTACT_DELETE : CONTACT_DELETE_FAILURE;
} else if (resource instanceof HostResource) {
return successfulDelete ? HOST_DELETE : HOST_DELETE_FAILURE;
} else {
throw new IllegalStateException("EPP resource of unknown type: " + Key.create(resource));
}
}
/** Perform any type-specific tasks on the resource to be deleted (and/or its dependencies). */
private void performDeleteTasks(
EppResource existingResource,
EppResource deletedResource,
DateTime deletionTime,
HistoryEntry historyEntryForDelete) {
if (existingResource instanceof ContactResource) {
handlePendingTransferOnDelete(
(ContactResource) existingResource,
(ContactResource) deletedResource,
deletionTime,
historyEntryForDelete);
} else if (existingResource instanceof HostResource) {
HostResource host = (HostResource) existingResource;
if (host.isSubordinate()) {
dnsQueue.addHostRefreshTask(host.getHostName());
tm().put(
tm().loadByKey(host.getSuperordinateDomain())
.asBuilder()
.removeSubordinateHost(host.getHostName())
.build());
}
} else {
throw new IllegalStateException(
"EPP resource of unknown type: " + Key.create(existingResource));
}
}
}
/** A class that encapsulates the values of a request to delete a contact or host. */
@AutoValue
abstract static class DeletionRequest implements Serializable {
private static final long serialVersionUID = -4612618525760839240L;
abstract Key<? extends EppResource> key();
abstract DateTime lastUpdateTime();
/**
* The client id of the registrar that requested this deletion (which might NOT be the same as
* the actual current owner of the resource).
*/
abstract String requestingClientId();
/** First half of TRID for the original request, split for serializability. */
@Nullable
abstract String clientTransactionId();
/** Second half of TRID for the original request, split for serializability. */
abstract String serverTransactionId();
abstract boolean isSuperuser();
abstract DateTime requestedTime();
abstract boolean isDeletionAllowed();
abstract TaskHandle task();
@AutoValue.Builder
abstract static class Builder {
abstract Builder setKey(Key<? extends EppResource> key);
abstract Builder setLastUpdateTime(DateTime lastUpdateTime);
abstract Builder setRequestingClientId(String requestingClientId);
abstract Builder setClientTransactionId(@Nullable String clientTransactionId);
abstract Builder setServerTransactionId(String serverTransactionId);
abstract Builder setIsSuperuser(boolean isSuperuser);
abstract Builder setRequestedTime(DateTime requestedTime);
abstract Builder setIsDeletionAllowed(boolean isDeletionAllowed);
abstract Builder setTask(TaskHandle task);
abstract DeletionRequest build();
}
static DeletionRequest createFromTask(TaskHandle task, DateTime now)
throws Exception {
ImmutableMap<String, String> params = ImmutableMap.copyOf(task.extractParams());
VKey<EppResource> resourceKey =
VKey.create(
checkNotNull(params.get(PARAM_RESOURCE_KEY), "Resource to delete not specified"));
EppResource resource =
checkNotNull(
auditedOfy().load().key(resourceKey.getOfyKey()).now(),
"Resource to delete doesn't exist");
checkState(
resource instanceof ContactResource || resource instanceof HostResource,
"Cannot delete a %s via this action",
resource.getClass().getSimpleName());
return new AutoValue_DeleteContactsAndHostsAction_DeletionRequest.Builder()
.setKey(resourceKey.getOfyKey())
.setLastUpdateTime(resource.getUpdateTimestamp().getTimestamp())
.setRequestingClientId(
checkNotNull(
params.get(PARAM_REQUESTING_CLIENT_ID), "Requesting client id not specified"))
// Note that client transaction ID is optional, in which case this sets it to null.
.setClientTransactionId(params.get(PARAM_CLIENT_TRANSACTION_ID))
.setServerTransactionId(
checkNotNull(
params.get(PARAM_SERVER_TRANSACTION_ID), "Server transaction id not specified"))
.setIsSuperuser(
Boolean.parseBoolean(
checkNotNull(params.get(PARAM_IS_SUPERUSER), "Is superuser not specified")))
.setRequestedTime(
DateTime.parse(
checkNotNull(params.get(PARAM_REQUESTED_TIME), "Requested time not specified")))
.setIsDeletionAllowed(doesResourceStateAllowDeletion(resource, now))
.setTask(task)
.build();
}
OperationType getMetricOperationType() {
if (key().getKind().equals(KIND_CONTACT)) {
return OperationType.CONTACT_DELETE;
} else if (key().getKind().equals(KIND_HOST)) {
return OperationType.HOST_DELETE;
} else {
throw new IllegalStateException(
String.format(
"Cannot determine async operation type for metric for resource %s", key()));
}
}
}
/** A class that encapsulates the values resulting from attempted contact/host deletion. */
@AutoValue
abstract static class DeletionResult {
enum Type {
DELETED("%s deleted", OperationResult.SUCCESS),
NOT_DELETED("%s not deleted", OperationResult.FAILURE),
ERRORED("%s errored out during deletion", OperationResult.ERROR);
private final String counterFormat;
private final OperationResult operationResult;
Type(String counterFormat, OperationResult operationResult) {
this.counterFormat = counterFormat;
this.operationResult = operationResult;
}
String renderCounterText(String resourceName) {
return String.format(counterFormat, resourceName);
}
}
abstract Type type();
abstract String pollMessageText();
static DeletionResult create(Type type, String pollMessageText) {
return new AutoValue_DeleteContactsAndHostsAction_DeletionResult(type, pollMessageText);
}
OperationResult getMetricOperationResult() {
return type().operationResult;
}
}
static boolean doesResourceStateAllowDeletion(EppResource resource, DateTime now) {
Key<EppResource> key = Key.create(resource);
if (isDeleted(resource, now)) {
logger.atWarning().log("Cannot asynchronously delete %s because it is already deleted.", key);
return false;
}
if (!resource.getStatusValues().contains(PENDING_DELETE)) {
logger.atWarning().log(
"Cannot asynchronously delete %s because it is not in PENDING_DELETE.", key);
return false;
}
return true;
}
}

View File

@@ -17,6 +17,7 @@ package google.registry.batch;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static com.google.common.collect.Sets.difference;
import static com.google.common.collect.Sets.newHashSet;
import static google.registry.mapreduce.MapreduceRunner.PARAM_DRY_RUN;
import static google.registry.mapreduce.inputs.EppResourceInputs.createChildEntityInput;
import static google.registry.model.common.Cursor.CursorType.RECURRING_BILLING;
@@ -36,11 +37,14 @@ import static google.registry.util.DomainNameUtils.getTldFromDomainName;
import com.google.appengine.tools.mapreduce.Mapper;
import com.google.appengine.tools.mapreduce.Reducer;
import com.google.appengine.tools.mapreduce.ReducerInput;
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Range;
import com.google.common.collect.Streams;
import com.google.common.flogger.FluentLogger;
import google.registry.config.RegistryConfig.Config;
import google.registry.flows.domain.DomainPricingLogic;
import google.registry.mapreduce.MapreduceRunner;
import google.registry.mapreduce.inputs.NullInput;
import google.registry.model.ImmutableObject;
@@ -61,8 +65,10 @@ import google.registry.request.Parameter;
import google.registry.request.Response;
import google.registry.request.auth.Auth;
import google.registry.util.Clock;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import org.joda.money.Money;
import org.joda.time.DateTime;
@@ -86,8 +92,15 @@ public class ExpandRecurringBillingEventsAction implements Runnable {
@Inject Clock clock;
@Inject MapreduceRunner mrRunner;
@Inject
@Config("jdbcBatchSize")
int batchSize;
@Inject @Parameter(PARAM_DRY_RUN) boolean isDryRun;
@Inject @Parameter(PARAM_CURSOR_TIME) Optional<DateTime> cursorTimeParam;
@Inject DomainPricingLogic domainPricingLogic;
@Inject Response response;
@Inject ExpandRecurringBillingEventsAction() {}
@@ -120,61 +133,130 @@ public class ExpandRecurringBillingEventsAction implements Runnable {
ImmutableSet.of(DomainBase.class), ImmutableSet.of(Recurring.class))))
.sendLinkToMapreduceConsole(response);
} else {
int numBillingEventsSaved =
jpaTm()
.transact(
() ->
jpaTm()
.query(
"FROM BillingRecurrence "
+ "WHERE eventTime <= :executeTime "
+ "AND eventTime < recurrenceEndTime "
+ "ORDER BY id ASC",
Recurring.class)
.setParameter("executeTime", executeTime)
// Need to get a list from the transaction and then convert it to a stream
// for further processing. If we get a stream directly, each elements gets
// processed downstream eagerly but Hibernate returns a
// ScrollableResultsIterator that cannot be advanced outside the
// transaction, resulting in an exception.
.getResultList())
.stream()
.map(
recurring ->
jpaTm()
.transact(
() ->
expandBillingEvent(recurring, executeTime, cursorTime, isDryRun)))
.reduce(0, Integer::sum);
if (!isDryRun) {
logger.atInfo().log("Saved OneTime billing events.", numBillingEventsSaved);
} else {
logger.atInfo().log("Generated OneTime billing events (dry run).", numBillingEventsSaved);
}
logger.atInfo().log(
"Recurring event expansion %s complete for billing event range [%s, %s).",
isDryRun ? "(dry run) " : "", cursorTime, executeTime);
tm().transact(
() -> {
// Check for the unlikely scenario where the cursor has been altered during the
// expansion.
DateTime currentCursorTime =
tm().loadByKeyIfPresent(Cursor.createGlobalVKey(RECURRING_BILLING))
.orElse(Cursor.createGlobal(RECURRING_BILLING, START_OF_TIME))
.getCursorTime();
if (!currentCursorTime.equals(persistedCursorTime)) {
throw new IllegalStateException(
String.format(
"Current cursor position %s does not match persisted cursor position %s.",
currentCursorTime, persistedCursorTime));
}
if (!isDryRun) {
tm().put(Cursor.createGlobal(RECURRING_BILLING, executeTime));
}
});
expandSqlBillingEventsInBatches(executeTime, cursorTime, persistedCursorTime);
}
}
private void expandSqlBillingEventsInBatches(
DateTime executeTime, DateTime cursorTime, DateTime persistedCursorTime) {
int totalBillingEventsSaved = 0;
long maxProcessedRecurrenceId = 0;
SqlBatchResults sqlBatchResults;
do {
final long prevMaxProcessedRecurrenceId = maxProcessedRecurrenceId;
sqlBatchResults =
jpaTm()
.transact(
() -> {
Set<String> expandedDomains = newHashSet();
int batchBillingEventsSaved = 0;
long maxRecurrenceId = prevMaxProcessedRecurrenceId;
List<Recurring> recurrings =
jpaTm()
.query(
"FROM BillingRecurrence "
+ "WHERE eventTime <= :executeTime "
+ "AND eventTime < recurrenceEndTime "
+ "AND id > :maxProcessedRecurrenceId "
+ "AND recurrenceEndTime > :cursorTime "
+ "ORDER BY id ASC",
Recurring.class)
.setParameter("executeTime", executeTime)
.setParameter("maxProcessedRecurrenceId", prevMaxProcessedRecurrenceId)
.setParameter("cursorTime", cursorTime)
.setMaxResults(batchSize)
.getResultList();
for (Recurring recurring : recurrings) {
if (expandedDomains.contains(recurring.getTargetId())) {
// On the off chance this batch contains multiple recurrences for the same
// domain (which is actually possible if a given domain is quickly renewed
// multiple times in a row), then short-circuit after the first one is
// processed that involves actually expanding a billing event. This is
// necessary because otherwise we get an "Inserted/updated object reloaded"
// error from Hibernate when those billing events would be loaded
// inside a transaction where they were already written. Note, there is no
// actual further work to be done in this case anyway, not unless it has
// somehow been over a year since this action last ran successfully (and if
// that were somehow true, the remaining billing events would still be
// expanded on subsequent runs).
continue;
}
int billingEventsSaved =
expandBillingEvent(recurring, executeTime, cursorTime, isDryRun);
batchBillingEventsSaved += billingEventsSaved;
if (billingEventsSaved > 0) {
expandedDomains.add(recurring.getTargetId());
}
maxRecurrenceId = Math.max(maxRecurrenceId, recurring.getId());
}
return SqlBatchResults.create(
batchBillingEventsSaved,
maxRecurrenceId,
maxRecurrenceId > prevMaxProcessedRecurrenceId);
});
totalBillingEventsSaved += sqlBatchResults.batchBillingEventsSaved();
maxProcessedRecurrenceId = sqlBatchResults.maxProcessedRecurrenceId();
if (sqlBatchResults.batchBillingEventsSaved() > 0) {
logger.atInfo().log(
"Saved %d billing events in batch (%d total) with max recurrence id %d.",
sqlBatchResults.batchBillingEventsSaved(),
totalBillingEventsSaved,
maxProcessedRecurrenceId);
} else {
// If we're churning through a lot of no-op recurrences that don't need expanding (yet?),
// then only log one no-op every so often as a good balance between letting the user track
// that the action is still running while also not spamming the logs incessantly.
logger.atInfo().atMostEvery(3, TimeUnit.MINUTES).log(
"Processed up to max recurrence id %d (no billing events saved recently).",
maxProcessedRecurrenceId);
}
} while (sqlBatchResults.shouldContinue());
if (!isDryRun) {
logger.atInfo().log("Saved %d total OneTime billing events.", totalBillingEventsSaved);
} else {
logger.atInfo().log(
"Generated %d total OneTime billing events (dry run).", totalBillingEventsSaved);
}
logger.atInfo().log(
"Recurring event expansion %s complete for billing event range [%s, %s).",
isDryRun ? "(dry run) " : "", cursorTime, executeTime);
tm().transact(
() -> {
// Check for the unlikely scenario where the cursor has been altered during the
// expansion.
DateTime currentCursorTime =
tm().loadByKeyIfPresent(Cursor.createGlobalVKey(RECURRING_BILLING))
.orElse(Cursor.createGlobal(RECURRING_BILLING, START_OF_TIME))
.getCursorTime();
if (!currentCursorTime.equals(persistedCursorTime)) {
throw new IllegalStateException(
String.format(
"Current cursor position %s does not match persisted cursor position %s.",
currentCursorTime, persistedCursorTime));
}
if (!isDryRun) {
tm().put(Cursor.createGlobal(RECURRING_BILLING, executeTime));
}
});
}
@AutoValue
abstract static class SqlBatchResults {
abstract int batchBillingEventsSaved();
abstract long maxProcessedRecurrenceId();
abstract boolean shouldContinue();
static SqlBatchResults create(
int batchBillingEventsSaved, long maxProcessedRecurrenceId, boolean shouldContinue) {
return new AutoValue_ExpandRecurringBillingEventsAction_SqlBatchResults(
batchBillingEventsSaved, maxProcessedRecurrenceId, shouldContinue);
}
}
/** Mapper to expand {@link Recurring} billing events into synthetic {@link OneTime} events. */
public static class ExpandRecurringBillingEventsMapper
extends Mapper<Recurring, DateTime, DateTime> {

View File

@@ -49,6 +49,7 @@ import google.registry.batch.AsyncTaskMetrics.OperationResult;
import google.registry.dns.DnsQueue;
import google.registry.mapreduce.MapreduceRunner;
import google.registry.mapreduce.inputs.NullInput;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.domain.DomainBase;
import google.registry.model.host.HostResource;
import google.registry.model.server.Lock;
@@ -79,6 +80,8 @@ import org.joda.time.Duration;
service = Action.Service.BACKEND,
path = "/_dr/task/refreshDnsOnHostRename",
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
@Deprecated
public class RefreshDnsOnHostRenameAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View File

@@ -0,0 +1,129 @@
// Copyright 2022 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.batch;
import static google.registry.beam.BeamUtils.createJobName;
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
import static javax.servlet.http.HttpServletResponse.SC_OK;
import com.google.api.services.dataflow.Dataflow;
import com.google.api.services.dataflow.model.LaunchFlexTemplateParameter;
import com.google.api.services.dataflow.model.LaunchFlexTemplateRequest;
import com.google.api.services.dataflow.model.LaunchFlexTemplateResponse;
import com.google.common.collect.ImmutableMap;
import com.google.common.flogger.FluentLogger;
import com.google.common.net.MediaType;
import google.registry.config.RegistryConfig.Config;
import google.registry.config.RegistryEnvironment;
import google.registry.request.Action;
import google.registry.request.Parameter;
import google.registry.request.Response;
import google.registry.request.auth.Auth;
import google.registry.util.Clock;
import java.util.Optional;
import javax.inject.Inject;
/**
* Starts a Dataflow pipeline that resaves all EPP resources projected to the current time.
*
* <p>This is useful for a few situations. First, as a fallback option for resource transfers that
* have expired pending transfers (this will resolve them), just in case the enqueued action fails.
* Second, it will reflect domain autorenews that have happened. Third, it will remove any expired
* grace periods.
*
* <p>There's also the general principle that it's good to have the data in the database remain as
* current as is reasonably possible.
*
* <p>If the <code>?isFast=true</code> query string parameter is passed as true, the pipeline will
* only attempt to load, project, and resave entities where we expect one of the previous situations
* has occurred. Otherwise, we will load, project, and resave all EPP resources.
*
* <p>This runs the {@link google.registry.beam.resave.ResaveAllEppResourcesPipeline}.
*/
@Action(
service = Action.Service.BACKEND,
path = ResaveAllEppResourcesPipelineAction.PATH,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
public class ResaveAllEppResourcesPipelineAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
static final String PATH = "/_dr/task/resaveAllEppResourcesPipeline";
static final String PIPELINE_NAME = "resave_all_epp_resources_pipeline";
public static final String PARAM_FAST = "fast";
private final String projectId;
private final String jobRegion;
private final String stagingBucketUrl;
private final boolean fast;
private final Clock clock;
private final Response response;
private final Dataflow dataflow;
@Inject
ResaveAllEppResourcesPipelineAction(
@Config("projectId") String projectId,
@Config("defaultJobRegion") String jobRegion,
@Config("beamStagingBucketUrl") String stagingBucketUrl,
@Parameter(PARAM_FAST) Optional<Boolean> fast,
Clock clock,
Response response,
Dataflow dataflow) {
this.projectId = projectId;
this.jobRegion = jobRegion;
this.stagingBucketUrl = stagingBucketUrl;
this.fast = fast.orElse(false);
this.clock = clock;
this.response = response;
this.dataflow = dataflow;
}
@Override
public void run() {
response.setContentType(MediaType.PLAIN_TEXT_UTF_8);
logger.atInfo().log("Launching ResaveAllEppResourcesPipeline");
try {
LaunchFlexTemplateParameter parameter =
new LaunchFlexTemplateParameter()
.setJobName(createJobName("resave-all-epp-resources", clock))
.setContainerSpecGcsPath(
String.format("%s/%s_metadata.json", stagingBucketUrl, PIPELINE_NAME))
.setParameters(
new ImmutableMap.Builder<String, String>()
.put(PARAM_FAST, Boolean.toString(fast))
.put("registryEnvironment", RegistryEnvironment.get().name())
.build());
LaunchFlexTemplateResponse launchResponse =
dataflow
.projects()
.locations()
.flexTemplates()
.launch(
projectId,
jobRegion,
new LaunchFlexTemplateRequest().setLaunchParameter(parameter))
.execute();
logger.atInfo().log("Got response: %s", launchResponse.getJob().toPrettyString());
String jobId = launchResponse.getJob().getId();
response.setStatus(SC_OK);
response.setPayload(String.format("Launched resaveAllEppResources pipeline: %s", jobId));
} catch (Exception e) {
logger.atSevere().withCause(e).log("Template Launch failed.");
response.setStatus(SC_INTERNAL_SERVER_ERROR);
response.setPayload(String.format("Pipeline launch failed: %s", e.getMessage()));
}
}
}

View File

@@ -1,193 +0,0 @@
// Copyright 2021 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.comparedb;
import static google.registry.beam.comparedb.ValidateSqlUtils.createSqlEntityTupleTag;
import static google.registry.beam.initsql.Transforms.createTagForKind;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Verify;
import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key;
import google.registry.backup.VersionedEntity;
import google.registry.beam.initsql.Transforms;
import google.registry.model.EppResource;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.billing.BillingEvent;
import google.registry.model.common.Cursor;
import google.registry.model.contact.ContactHistory;
import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainHistory;
import google.registry.model.domain.token.AllocationToken;
import google.registry.model.host.HostHistory;
import google.registry.model.host.HostResource;
import google.registry.model.poll.PollMessage;
import google.registry.model.registrar.Registrar;
import google.registry.model.registrar.RegistrarContact;
import google.registry.model.replay.SqlEntity;
import google.registry.model.reporting.HistoryEntry;
import google.registry.model.tld.Registry;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Nullable;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.transforms.ParDo;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.PCollectionTuple;
import org.apache.beam.sdk.values.TupleTag;
import org.apache.beam.sdk.values.TupleTagList;
import org.joda.time.DateTime;
/** Utilities for loading Datastore snapshots. */
@DeleteAfterMigration
public final class DatastoreSnapshots {
private DatastoreSnapshots() {}
/**
* Datastore kinds eligible for validation. This set must be consistent with {@link
* SqlSnapshots#ALL_SQL_ENTITIES}.
*/
@VisibleForTesting
static final ImmutableSet<Class<?>> ALL_DATASTORE_KINDS =
ImmutableSet.of(
Registry.class,
Cursor.class,
Registrar.class,
ContactResource.class,
RegistrarContact.class,
HostResource.class,
HistoryEntry.class,
AllocationToken.class,
BillingEvent.Recurring.class,
BillingEvent.OneTime.class,
BillingEvent.Cancellation.class,
PollMessage.class,
DomainBase.class);
/**
* Returns the Datastore snapshot right before {@code commitLogToTime} for the user specified
* {@code kinds}. The resulting snapshot has all changes that happened before {@code
* commitLogToTime}, and none at or after {@code commitLogToTime}.
*
* <p>If {@code HistoryEntry} is included in {@code kinds}, the result will contain {@code
* PCollections} for the child entities, {@code DomainHistory}, {@code ContactHistory}, and {@code
* HostHistory}.
*/
static PCollectionTuple loadDatastoreSnapshotByKind(
Pipeline pipeline,
String exportDir,
String commitLogDir,
DateTime commitLogFromTime,
DateTime commitLogToTime,
Set<Class<?>> kinds,
Optional<DateTime> compareStartTime) {
PCollectionTuple snapshot =
pipeline.apply(
"Load Datastore snapshot.",
Transforms.loadDatastoreSnapshot(
exportDir,
commitLogDir,
commitLogFromTime,
commitLogToTime,
kinds.stream().map(Key::getKind).collect(ImmutableSet.toImmutableSet())));
PCollectionTuple perTypeSnapshots = PCollectionTuple.empty(pipeline);
for (Class<?> kind : kinds) {
PCollection<VersionedEntity> perKindSnapshot =
snapshot.get(createTagForKind(Key.getKind(kind)));
if (SqlEntity.class.isAssignableFrom(kind)) {
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag((Class<? extends SqlEntity>) kind),
datastoreEntityToPojo(perKindSnapshot, kind.getSimpleName(), compareStartTime));
continue;
}
Verify.verify(kind == HistoryEntry.class, "Unexpected Non-SqlEntity class: %s", kind);
PCollectionTuple historyEntriesByType = splitHistoryEntry(perKindSnapshot, compareStartTime);
for (Map.Entry<TupleTag<?>, PCollection<?>> entry :
historyEntriesByType.getAll().entrySet()) {
perTypeSnapshots = perTypeSnapshots.and(entry.getKey().getId(), entry.getValue());
}
}
return perTypeSnapshots;
}
/**
* Splits a {@link PCollection} of {@link HistoryEntry HistoryEntries} into three collections of
* its child entities by type.
*/
static PCollectionTuple splitHistoryEntry(
PCollection<VersionedEntity> historyEntries, Optional<DateTime> compareStartTime) {
DateTime nullableStartTime = compareStartTime.orElse(null);
return historyEntries.apply(
"Split HistoryEntry by Resource Type",
ParDo.of(
new DoFn<VersionedEntity, SqlEntity>() {
@ProcessElement
public void processElement(
@Element VersionedEntity historyEntry, MultiOutputReceiver out) {
Optional.ofNullable(Transforms.convertVersionedEntityToSqlEntity(historyEntry))
.filter(e -> isEntityIncludedForComparison(e, nullableStartTime))
.ifPresent(
sqlEntity ->
out.get(createSqlEntityTupleTag(sqlEntity.getClass()))
.output(sqlEntity));
}
})
.withOutputTags(
createSqlEntityTupleTag(DomainHistory.class),
TupleTagList.of(createSqlEntityTupleTag(ContactHistory.class))
.and(createSqlEntityTupleTag(HostHistory.class))));
}
/**
* Transforms a {@link PCollection} of {@link VersionedEntity VersionedEntities} to Ofy Java
* objects.
*/
static PCollection<SqlEntity> datastoreEntityToPojo(
PCollection<VersionedEntity> entities, String desc, Optional<DateTime> compareStartTime) {
DateTime nullableStartTime = compareStartTime.orElse(null);
return entities.apply(
"Datastore Entity to Pojo " + desc,
ParDo.of(
new DoFn<VersionedEntity, SqlEntity>() {
@ProcessElement
public void processElement(
@Element VersionedEntity entity, OutputReceiver<SqlEntity> out) {
Optional.ofNullable(Transforms.convertVersionedEntityToSqlEntity(entity))
.filter(e -> isEntityIncludedForComparison(e, nullableStartTime))
.ifPresent(out::output);
}
}));
}
static boolean isEntityIncludedForComparison(
SqlEntity entity, @Nullable DateTime compareStartTime) {
if (compareStartTime == null) {
return true;
}
if (entity instanceof HistoryEntry) {
return compareStartTime.isBefore(((HistoryEntry) entity).getModificationTime());
}
if (entity instanceof EppResource) {
return compareStartTime.isBefore(((EppResource) entity).getUpdateTimestamp().getTimestamp());
}
return true;
}
}

View File

@@ -1,154 +0,0 @@
// Copyright 2021 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.comparedb;
import com.google.auto.value.AutoValue;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.BlobInfo;
import dagger.Component;
import google.registry.config.CloudTasksUtilsModule;
import google.registry.config.CredentialModule;
import google.registry.config.RegistryConfig;
import google.registry.config.RegistryConfig.Config;
import google.registry.config.RegistryConfig.ConfigModule;
import google.registry.gcs.GcsUtils;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.util.Clock;
import google.registry.util.UtilsModule;
import java.io.IOException;
import java.util.Comparator;
import java.util.NoSuchElementException;
import java.util.Optional;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.joda.time.DateTime;
import org.joda.time.Instant;
import org.joda.time.Interval;
/** Finds the necessary information for loading the most recent Datastore snapshot. */
@DeleteAfterMigration
public class LatestDatastoreSnapshotFinder {
private final String projectId;
private final GcsUtils gcsUtils;
private final Clock clock;
@Inject
LatestDatastoreSnapshotFinder(
@Config("projectId") String projectId, GcsUtils gcsUtils, Clock clock) {
this.projectId = projectId;
this.gcsUtils = gcsUtils;
this.clock = clock;
}
/**
* Finds information of the most recent Datastore snapshot that ends strictly before {@code
* exportEndTimeUpperBound}, including the GCS folder of the exported data files and the start and
* stop times of the export. The folder of the CommitLogs is also included in the return.
*/
public DatastoreSnapshotInfo getSnapshotInfo(Instant exportEndTimeUpperBound) {
String bucketName = RegistryConfig.getDatastoreBackupsBucket().substring("gs://".length());
/**
* Find the bucket-relative path to the overall metadata file of the last Datastore export.
* Since Datastore export is saved daily, we may need to look back to yesterday. If found, the
* return value is like
* "2021-11-19T06:00:00_76493/2021-11-19T06:00:00_76493.overall_export_metadata".
*/
Optional<String> metaFilePathOptional =
findNewestExportMetadataFileBeforeTime(bucketName, exportEndTimeUpperBound, 5);
if (!metaFilePathOptional.isPresent()) {
throw new NoSuchElementException("No exports found over the past 2 days.");
}
String metaFilePath = metaFilePathOptional.get();
String metaFileFolder = metaFilePath.substring(0, metaFilePath.indexOf('/'));
Instant exportStartTime = Instant.parse(metaFileFolder.replace('_', '.') + 'Z');
BlobInfo blobInfo = gcsUtils.getBlobInfo(BlobId.of(bucketName, metaFilePath));
Instant exportEndTime = new Instant(blobInfo.getCreateTime());
return DatastoreSnapshotInfo.create(
String.format("gs://%s/%s", bucketName, metaFileFolder),
getCommitLogDir(),
new Interval(exportStartTime, exportEndTime));
}
public String getCommitLogDir() {
return "gs://" + projectId + "-commits";
}
/**
* Finds the latest Datastore export that ends strictly before {@code endTimeUpperBound} and
* returns the bucket-relative path of the overall export metadata file, in the given bucket. The
* search goes back for up to {@code lookBackDays} days in time, including today.
*
* <p>The overall export metadata file is the last file created during a Datastore export. All
* data has been exported by the creation time of this file. The name of this file, like that of
* all files in the same export, begins with the timestamp when the export starts.
*
* <p>An example return value: {@code
* 2021-11-19T06:00:00_76493/2021-11-19T06:00:00_76493.overall_export_metadata}.
*/
private Optional<String> findNewestExportMetadataFileBeforeTime(
String bucketName, Instant endTimeUpperBound, int lookBackDays) {
DateTime today = clock.nowUtc();
for (int day = 0; day < lookBackDays; day++) {
String dateString = today.minusDays(day).toString("yyyy-MM-dd");
try {
Optional<String> metaFilePath =
gcsUtils.listFolderObjects(bucketName, dateString).stream()
.filter(s -> s.endsWith("overall_export_metadata"))
.map(s -> dateString + s)
.sorted(Comparator.<String>naturalOrder().reversed())
.findFirst();
if (metaFilePath.isPresent()) {
BlobInfo blobInfo = gcsUtils.getBlobInfo(BlobId.of(bucketName, metaFilePath.get()));
Instant exportEndTime = new Instant(blobInfo.getCreateTime());
if (exportEndTime.isBefore(endTimeUpperBound)) {
return metaFilePath;
}
}
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
return Optional.empty();
}
/** Holds information about a Datastore snapshot. */
@AutoValue
public abstract static class DatastoreSnapshotInfo {
public abstract String exportDir();
public abstract String commitLogDir();
public abstract Interval exportInterval();
static DatastoreSnapshotInfo create(
String exportDir, String commitLogDir, Interval exportOperationInterval) {
return new AutoValue_LatestDatastoreSnapshotFinder_DatastoreSnapshotInfo(
exportDir, commitLogDir, exportOperationInterval);
}
}
@Singleton
@Component(
modules = {
CredentialModule.class,
ConfigModule.class,
CloudTasksUtilsModule.class,
UtilsModule.class
})
interface LatestDatastoreSnapshotFinderFinderComponent {
LatestDatastoreSnapshotFinder datastoreSnapshotInfoFinder();
}
}

View File

@@ -1,539 +0,0 @@
// Copyright 2021 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.comparedb;
import static com.google.common.base.Preconditions.checkState;
import static google.registry.beam.comparedb.ValidateSqlUtils.createSqlEntityTupleTag;
import static google.registry.beam.comparedb.ValidateSqlUtils.getMedianIdForHistoryTable;
import com.google.auto.value.AutoValue;
import com.google.common.base.Strings;
import com.google.common.base.Verify;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSetMultimap;
import com.google.common.collect.Streams;
import google.registry.beam.common.RegistryJpaIO;
import google.registry.beam.common.RegistryJpaIO.Read;
import google.registry.model.EppResource;
import google.registry.model.UpdateAutoTimestamp;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.billing.BillingEvent;
import google.registry.model.bulkquery.BulkQueryEntities;
import google.registry.model.bulkquery.DomainBaseLite;
import google.registry.model.bulkquery.DomainHistoryHost;
import google.registry.model.bulkquery.DomainHistoryLite;
import google.registry.model.bulkquery.DomainHost;
import google.registry.model.common.Cursor;
import google.registry.model.contact.ContactHistory;
import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainHistory;
import google.registry.model.domain.DomainHistory.DomainHistoryId;
import google.registry.model.domain.GracePeriod;
import google.registry.model.domain.GracePeriod.GracePeriodHistory;
import google.registry.model.domain.secdns.DelegationSignerData;
import google.registry.model.domain.secdns.DomainDsDataHistory;
import google.registry.model.domain.token.AllocationToken;
import google.registry.model.host.HostHistory;
import google.registry.model.host.HostResource;
import google.registry.model.poll.PollMessage;
import google.registry.model.registrar.Registrar;
import google.registry.model.registrar.RegistrarContact;
import google.registry.model.replay.SqlEntity;
import google.registry.model.reporting.DomainTransactionRecord;
import google.registry.model.tld.Registry;
import google.registry.persistence.transaction.CriteriaQueryBuilder;
import google.registry.util.DateTimeUtils;
import java.io.Serializable;
import java.util.Optional;
import javax.persistence.Entity;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.transforms.Flatten;
import org.apache.beam.sdk.transforms.GroupByKey;
import org.apache.beam.sdk.transforms.MapElements;
import org.apache.beam.sdk.transforms.ParDo;
import org.apache.beam.sdk.transforms.SerializableFunction;
import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.PCollectionList;
import org.apache.beam.sdk.values.PCollectionTuple;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.joda.time.DateTime;
/**
* Utilities for loading SQL snapshots.
*
* <p>For {@link DomainBase} and {@link DomainHistory}, this class assumes the presence of the
* {@link google.registry.persistence.PersistenceModule.JpaTransactionManagerType#BULK_QUERY
* bulk-query-capable JpaTransactionManager}, and takes advantage of it for higher throughput.
*
* <p>For now this class is meant for use during the database migration period only. Therefore, it
* contains optimizations specifically for the production database at the current size, e.g.,
* parallel queries for select tables.
*/
@DeleteAfterMigration
public final class SqlSnapshots {
private SqlSnapshots() {}
/**
* SQL entity types that are eligible for validation. This set must be consistent with {@link
* DatastoreSnapshots#ALL_DATASTORE_KINDS}.
*/
static final ImmutableSet<Class<? extends SqlEntity>> ALL_SQL_ENTITIES =
ImmutableSet.of(
Registry.class,
Cursor.class,
Registrar.class,
ContactResource.class,
RegistrarContact.class,
HostResource.class,
AllocationToken.class,
BillingEvent.Recurring.class,
BillingEvent.OneTime.class,
BillingEvent.Cancellation.class,
PollMessage.class,
DomainBase.class,
ContactHistory.class,
HostHistory.class,
DomainHistory.class);
/**
* Loads a SQL snapshot for the given {@code sqlEntityTypes}.
*
* <p>If {@code snapshotId} is present, all queries use the specified database snapshot,
* guaranteeing a consistent result.
*/
public static PCollectionTuple loadCloudSqlSnapshotByType(
Pipeline pipeline,
ImmutableSet<Class<? extends SqlEntity>> sqlEntityTypes,
Optional<String> snapshotId,
Optional<DateTime> compareStartTime) {
PCollectionTuple perTypeSnapshots = PCollectionTuple.empty(pipeline);
for (Class<? extends SqlEntity> clazz : sqlEntityTypes) {
if (clazz == DomainBase.class) {
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag(DomainBase.class),
loadAndAssembleDomainBase(pipeline, snapshotId, compareStartTime));
continue;
}
if (clazz == DomainHistory.class) {
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag(DomainHistory.class),
loadAndAssembleDomainHistory(pipeline, snapshotId, compareStartTime));
continue;
}
if (clazz == ContactHistory.class) {
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag(ContactHistory.class),
loadContactHistory(pipeline, snapshotId, compareStartTime));
continue;
}
if (clazz == HostHistory.class) {
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag(HostHistory.class),
loadHostHistory(
pipeline, snapshotId, compareStartTime.orElse(DateTimeUtils.START_OF_TIME)));
continue;
}
if (EppResource.class.isAssignableFrom(clazz) && compareStartTime.isPresent()) {
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag(clazz),
pipeline.apply(
"SQL Load " + clazz.getSimpleName(),
buildEppResourceQueryWithTimeFilter(
clazz, SqlEntity.class, snapshotId, compareStartTime.get())
.withSnapshot(snapshotId.orElse(null))));
continue;
}
perTypeSnapshots =
perTypeSnapshots.and(
createSqlEntityTupleTag(clazz),
pipeline.apply(
"SQL Load " + clazz.getSimpleName(),
RegistryJpaIO.read(
() -> CriteriaQueryBuilder.create(clazz).build(), SqlEntity.class::cast)
.withSnapshot(snapshotId.orElse(null))));
}
return perTypeSnapshots;
}
/**
* Bulk-loads parts of {@link DomainBase} and assembles them in the pipeline.
*
* @see BulkQueryEntities
*/
public static PCollection<SqlEntity> loadAndAssembleDomainBase(
Pipeline pipeline, Optional<String> snapshotId, Optional<DateTime> compareStartTime) {
PCollection<KV<String, Serializable>> baseObjects =
readAllAndAssignKey(
pipeline,
DomainBaseLite.class,
DomainBaseLite::getRepoId,
snapshotId,
compareStartTime);
PCollection<KV<String, Serializable>> gracePeriods =
readAllAndAssignKey(
pipeline,
GracePeriod.class,
GracePeriod::getDomainRepoId,
snapshotId,
compareStartTime);
PCollection<KV<String, Serializable>> delegationSigners =
readAllAndAssignKey(
pipeline,
DelegationSignerData.class,
DelegationSignerData::getDomainRepoId,
snapshotId,
compareStartTime);
PCollection<KV<String, Serializable>> domainHosts =
readAllAndAssignKey(
pipeline, DomainHost.class, DomainHost::getDomainRepoId, snapshotId, compareStartTime);
DateTime nullableCompareStartTime = compareStartTime.orElse(null);
return PCollectionList.of(
ImmutableList.of(baseObjects, gracePeriods, delegationSigners, domainHosts))
.apply("SQL Merge DomainBase parts", Flatten.pCollections())
.apply("Group by Domain Parts by RepoId", GroupByKey.create())
.apply(
"Assemble DomainBase",
ParDo.of(
new DoFn<KV<String, Iterable<Serializable>>, SqlEntity>() {
@ProcessElement
public void processElement(
@Element KV<String, Iterable<Serializable>> kv,
OutputReceiver<SqlEntity> outputReceiver) {
TypedClassifier partsByType = new TypedClassifier(kv.getValue());
ImmutableSet<DomainBaseLite> baseObjects =
partsByType.getAllOf(DomainBaseLite.class);
if (nullableCompareStartTime != null) {
Verify.verify(
baseObjects.size() <= 1,
"Found duplicate DomainBaseLite object per repoId: " + kv.getKey());
if (baseObjects.isEmpty()) {
return;
}
}
Verify.verify(
baseObjects.size() == 1,
"Expecting one DomainBaseLite object per repoId: " + kv.getKey());
outputReceiver.output(
BulkQueryEntities.assembleDomainBase(
baseObjects.iterator().next(),
partsByType.getAllOf(GracePeriod.class),
partsByType.getAllOf(DelegationSignerData.class),
partsByType.getAllOf(DomainHost.class).stream()
.map(DomainHost::getHostVKey)
.collect(ImmutableSet.toImmutableSet())));
}
}));
}
/**
* Loads all {@link ContactHistory} entities from the database.
*
* <p>This method uses two queries to load data in parallel. This is a performance optimization
* specifically for the production database.
*/
static PCollection<SqlEntity> loadContactHistory(
Pipeline pipeline, Optional<String> snapshotId, Optional<DateTime> compareStartTime) {
PartitionedQuery partitionedQuery =
buildPartitonedHistoryQuery(ContactHistory.class, compareStartTime);
PCollection<SqlEntity> part1 =
pipeline.apply(
"SQL Load ContactHistory first half",
RegistryJpaIO.read(
partitionedQuery.firstHalfQuery(),
partitionedQuery.parameters(),
false,
SqlEntity.class::cast)
.withSnapshot(snapshotId.orElse(null)));
PCollection<SqlEntity> part2 =
pipeline.apply(
"SQL Load ContactHistory second half",
RegistryJpaIO.read(
partitionedQuery.secondHalfQuery(),
partitionedQuery.parameters(),
false,
SqlEntity.class::cast)
.withSnapshot(snapshotId.orElse(null)));
return PCollectionList.of(part1)
.and(part2)
.apply("Combine ContactHistory parts", Flatten.pCollections());
}
/** Loads all {@link HostHistory} entities from the database. */
static PCollection<SqlEntity> loadHostHistory(
Pipeline pipeline, Optional<String> snapshotId, DateTime compareStartTime) {
return pipeline.apply(
"SQL Load HostHistory",
RegistryJpaIO.read(
"select c from HostHistory c where :compareStartTime < modificationTime",
ImmutableMap.of("compareStartTime", compareStartTime),
false,
SqlEntity.class::cast)
.withSnapshot(snapshotId.orElse(null)));
}
/**
* Bulk-loads all parts of {@link DomainHistory} and assembles them in the pipeline.
*
* <p>This method uses two queries to load {@link DomainBaseLite} in parallel. This is a
* performance optimization specifically for the production database.
*
* @see BulkQueryEntities
*/
static PCollection<SqlEntity> loadAndAssembleDomainHistory(
Pipeline pipeline, Optional<String> snapshotId, Optional<DateTime> compareStartTime) {
PartitionedQuery partitionedQuery =
buildPartitonedHistoryQuery(DomainHistoryLite.class, compareStartTime);
PCollection<KV<String, Serializable>> baseObjectsPart1 =
queryAndAssignKey(
pipeline,
"first half",
partitionedQuery.firstHalfQuery(),
partitionedQuery.parameters(),
DomainHistoryLite.class,
compose(DomainHistoryLite::getDomainHistoryId, DomainHistoryId::toString),
snapshotId);
PCollection<KV<String, Serializable>> baseObjectsPart2 =
queryAndAssignKey(
pipeline,
"second half",
partitionedQuery.secondHalfQuery(),
partitionedQuery.parameters(),
DomainHistoryLite.class,
compose(DomainHistoryLite::getDomainHistoryId, DomainHistoryId::toString),
snapshotId);
PCollection<KV<String, Serializable>> gracePeriods =
readAllAndAssignKey(
pipeline,
GracePeriodHistory.class,
compose(GracePeriodHistory::getDomainHistoryId, DomainHistoryId::toString),
snapshotId,
compareStartTime);
PCollection<KV<String, Serializable>> delegationSigners =
readAllAndAssignKey(
pipeline,
DomainDsDataHistory.class,
compose(DomainDsDataHistory::getDomainHistoryId, DomainHistoryId::toString),
snapshotId,
compareStartTime);
PCollection<KV<String, Serializable>> domainHosts =
readAllAndAssignKey(
pipeline,
DomainHistoryHost.class,
compose(DomainHistoryHost::getDomainHistoryId, DomainHistoryId::toString),
snapshotId,
compareStartTime);
PCollection<KV<String, Serializable>> transactionRecords =
readAllAndAssignKey(
pipeline,
DomainTransactionRecord.class,
compose(DomainTransactionRecord::getDomainHistoryId, DomainHistoryId::toString),
snapshotId,
compareStartTime);
DateTime nullableCompareStartTime = compareStartTime.orElse(null);
return PCollectionList.of(
ImmutableList.of(
baseObjectsPart1,
baseObjectsPart2,
gracePeriods,
delegationSigners,
domainHosts,
transactionRecords))
.apply("Merge DomainHistory parts", Flatten.pCollections())
.apply("Group by DomainHistory Parts by DomainHistoryId string", GroupByKey.create())
.apply(
"Assemble DomainHistory",
ParDo.of(
new DoFn<KV<String, Iterable<Serializable>>, SqlEntity>() {
@ProcessElement
public void processElement(
@Element KV<String, Iterable<Serializable>> kv,
OutputReceiver<SqlEntity> outputReceiver) {
TypedClassifier partsByType = new TypedClassifier(kv.getValue());
ImmutableSet<DomainHistoryLite> baseObjects =
partsByType.getAllOf(DomainHistoryLite.class);
if (nullableCompareStartTime != null) {
Verify.verify(
baseObjects.size() <= 1,
"Found duplicate DomainHistoryLite object per domainHistoryId: "
+ kv.getKey());
if (baseObjects.isEmpty()) {
return;
}
}
Verify.verify(
baseObjects.size() == 1,
"Expecting one DomainHistoryLite object per domainHistoryId: "
+ kv.getKey());
outputReceiver.output(
BulkQueryEntities.assembleDomainHistory(
baseObjects.iterator().next(),
partsByType.getAllOf(DomainDsDataHistory.class),
partsByType.getAllOf(DomainHistoryHost.class).stream()
.map(DomainHistoryHost::getHostVKey)
.collect(ImmutableSet.toImmutableSet()),
partsByType.getAllOf(GracePeriodHistory.class),
partsByType.getAllOf(DomainTransactionRecord.class)));
}
}));
}
static <R, T> PCollection<KV<String, Serializable>> readAllAndAssignKey(
Pipeline pipeline,
Class<R> type,
SerializableFunction<R, String> keyFunction,
Optional<String> snapshotId,
Optional<DateTime> compareStartTime) {
Read<R, R> queryObject;
if (compareStartTime.isPresent() && EppResource.class.isAssignableFrom(type)) {
queryObject =
buildEppResourceQueryWithTimeFilter(type, type, snapshotId, compareStartTime.get());
} else {
queryObject =
RegistryJpaIO.read(() -> CriteriaQueryBuilder.create(type).build())
.withSnapshot(snapshotId.orElse(null));
}
return pipeline
.apply("SQL Load " + type.getSimpleName(), queryObject)
.apply(
"Assign Key to " + type.getSimpleName(),
MapElements.into(
TypeDescriptors.kvs(
TypeDescriptors.strings(), TypeDescriptor.of(Serializable.class)))
.via(obj -> KV.of(keyFunction.apply(obj), (Serializable) obj)));
}
static <R, T> PCollection<KV<String, Serializable>> queryAndAssignKey(
Pipeline pipeline,
String diffrentiator,
String jplQuery,
ImmutableMap<String, Object> queryParameters,
Class<R> type,
SerializableFunction<R, String> keyFunction,
Optional<String> snapshotId) {
return pipeline
.apply(
"SQL Load " + type.getSimpleName() + " " + diffrentiator,
RegistryJpaIO.read(jplQuery, queryParameters, false, type::cast)
.withSnapshot(snapshotId.orElse(null)))
.apply(
"Assign Key to " + type.getSimpleName() + " " + diffrentiator,
MapElements.into(
TypeDescriptors.kvs(
TypeDescriptors.strings(), TypeDescriptor.of(Serializable.class)))
.via(obj -> KV.of(keyFunction.apply(obj), (Serializable) obj)));
}
// TODO(b/205988530): don't use beam serializablefunction, make one that extends Java's Function.
private static <R, I, T> SerializableFunction<R, T> compose(
SerializableFunction<R, I> f1, SerializableFunction<I, T> f2) {
return r -> f2.apply(f1.apply(r));
}
static <R, T> Read<R, T> buildEppResourceQueryWithTimeFilter(
Class<R> entityType,
Class<T> castOutputAsType,
Optional<String> snapshotId,
DateTime compareStartTime) {
String tableName = getJpaEntityName(entityType);
String jpql =
String.format("select c from %s c where :compareStartTime < updateTimestamp", tableName);
return RegistryJpaIO.read(
jpql,
ImmutableMap.of("compareStartTime", UpdateAutoTimestamp.create(compareStartTime)),
false,
(R x) -> castOutputAsType.cast(x))
.withSnapshot(snapshotId.orElse(null));
}
static PartitionedQuery buildPartitonedHistoryQuery(
Class<?> entityType, Optional<DateTime> compareStartTime) {
String tableName = getJpaEntityName(entityType);
Verify.verify(
!Strings.isNullOrEmpty(tableName), "Invalid entity type %s", entityType.getSimpleName());
long medianId =
getMedianIdForHistoryTable(tableName)
.orElseThrow(() -> new IllegalStateException("Not a valid database: no " + tableName));
String firstHalfQuery = String.format("select c from %s c where id <= :historyId", tableName);
String secondHalfQuery = String.format("select c from %s c where id > :historyId", tableName);
if (compareStartTime.isPresent()) {
String timeFilter = " and :compareStartTime < modificationTime";
firstHalfQuery += timeFilter;
secondHalfQuery += timeFilter;
return PartitionedQuery.createPartitionedQuery(
firstHalfQuery,
secondHalfQuery,
ImmutableMap.of("historyId", medianId, "compareStartTime", compareStartTime.get()));
} else {
return PartitionedQuery.createPartitionedQuery(
firstHalfQuery, secondHalfQuery, ImmutableMap.of("historyId", medianId));
}
}
private static String getJpaEntityName(Class entityType) {
Entity entityAnnotation = (Entity) entityType.getAnnotation(Entity.class);
checkState(
entityAnnotation != null, "Unexpected non-entity type %s", entityType.getSimpleName());
return Strings.isNullOrEmpty(entityAnnotation.name())
? entityType.getSimpleName()
: entityAnnotation.name();
}
/** Contains two queries that partition the target table in two. */
@AutoValue
abstract static class PartitionedQuery {
abstract String firstHalfQuery();
abstract String secondHalfQuery();
abstract ImmutableMap<String, Object> parameters();
public static PartitionedQuery createPartitionedQuery(
String firstHalfQuery, String secondHalfQuery, ImmutableMap<String, Object> parameters) {
return new AutoValue_SqlSnapshots_PartitionedQuery(
firstHalfQuery, secondHalfQuery, parameters);
}
}
/** Container that receives mixed-typed data and groups them by {@link Class}. */
static class TypedClassifier {
private final ImmutableSetMultimap<Class<?>, Object> classifiedEntities;
TypedClassifier(Iterable<Serializable> inputs) {
this.classifiedEntities =
Streams.stream(inputs)
.collect(ImmutableSetMultimap.toImmutableSetMultimap(Object::getClass, x -> x));
}
<T> ImmutableSet<T> getAllOf(Class<T> clazz) {
return classifiedEntities.get(clazz).stream()
.map(clazz::cast)
.collect(ImmutableSet.toImmutableSet());
}
}
}

View File

@@ -1,206 +0,0 @@
// Copyright 2021 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.comparedb;
import static com.google.common.base.Verify.verify;
import static org.apache.beam.sdk.values.TypeDescriptors.strings;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.flogger.FluentLogger;
import google.registry.beam.common.RegistryPipelineOptions;
import google.registry.beam.common.RegistryPipelineWorkerInitializer;
import google.registry.beam.comparedb.LatestDatastoreSnapshotFinder.DatastoreSnapshotInfo;
import google.registry.beam.comparedb.ValidateSqlUtils.CompareSqlEntity;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainHistory;
import google.registry.model.replay.SqlEntity;
import google.registry.persistence.PersistenceModule.JpaTransactionManagerType;
import google.registry.persistence.PersistenceModule.TransactionIsolationLevel;
import google.registry.util.SystemClock;
import java.io.Serializable;
import java.util.Optional;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.coders.SerializableCoder;
import org.apache.beam.sdk.io.TextIO;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.transforms.Flatten;
import org.apache.beam.sdk.transforms.GroupByKey;
import org.apache.beam.sdk.transforms.ParDo;
import org.apache.beam.sdk.transforms.WithKeys;
import org.apache.beam.sdk.values.PCollectionList;
import org.apache.beam.sdk.values.PCollectionTuple;
import org.apache.beam.sdk.values.TupleTag;
import org.joda.time.DateTime;
import org.joda.time.Duration;
/**
* Validates the asynchronous data replication process between Datastore and Cloud SQL.
*
* <p>This pipeline is to be launched by {@link google.registry.tools.ValidateDatastoreCommand} or
* {@link google.registry.tools.ValidateSqlCommand}.
*/
@DeleteAfterMigration
public class ValidateDatabasePipeline {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
/** Specifies the extra CommitLogs to load before the start of a Database export. */
private static final Duration COMMITLOG_START_TIME_MARGIN = Duration.standardMinutes(10);
private final ValidateDatabasePipelineOptions options;
private final LatestDatastoreSnapshotFinder datastoreSnapshotFinder;
public ValidateDatabasePipeline(
ValidateDatabasePipelineOptions options,
LatestDatastoreSnapshotFinder datastoreSnapshotFinder) {
this.options = options;
this.datastoreSnapshotFinder = datastoreSnapshotFinder;
}
@VisibleForTesting
void run(Pipeline pipeline) {
DateTime latestCommitLogTime = DateTime.parse(options.getLatestCommitLogTimestamp());
DatastoreSnapshotInfo mostRecentExport =
datastoreSnapshotFinder.getSnapshotInfo(latestCommitLogTime.toInstant());
logger.atInfo().log(
"Comparing datastore export at %s and commitlog timestamp %s.",
mostRecentExport.exportDir(), latestCommitLogTime);
Optional<String> outputPath =
Optional.ofNullable(options.getDiffOutputGcsBucket())
.map(
bucket ->
String.format(
"gs://%s/validate_database/%s/diffs.txt",
bucket, new SystemClock().nowUtc()));
outputPath.ifPresent(path -> logger.atInfo().log("Discrepancies will be logged to %s", path));
setupPipeline(
pipeline,
Optional.ofNullable(options.getSqlSnapshotId()),
mostRecentExport,
latestCommitLogTime,
Optional.ofNullable(options.getComparisonStartTimestamp()).map(DateTime::parse),
outputPath);
pipeline.run();
}
static void setupPipeline(
Pipeline pipeline,
Optional<String> sqlSnapshotId,
DatastoreSnapshotInfo mostRecentExport,
DateTime latestCommitLogTime,
Optional<DateTime> compareStartTime,
Optional<String> diffOutputPath) {
pipeline
.getCoderRegistry()
.registerCoderForClass(SqlEntity.class, SerializableCoder.of(Serializable.class));
PCollectionTuple datastoreSnapshot =
DatastoreSnapshots.loadDatastoreSnapshotByKind(
pipeline,
mostRecentExport.exportDir(),
mostRecentExport.commitLogDir(),
mostRecentExport.exportInterval().getStart().minus(COMMITLOG_START_TIME_MARGIN),
// Increase by 1ms since we want to include commitLogs latestCommitLogTime but
// this parameter is exclusive.
latestCommitLogTime.plusMillis(1),
DatastoreSnapshots.ALL_DATASTORE_KINDS,
compareStartTime);
PCollectionTuple cloudSqlSnapshot =
SqlSnapshots.loadCloudSqlSnapshotByType(
pipeline, SqlSnapshots.ALL_SQL_ENTITIES, sqlSnapshotId, compareStartTime);
verify(
datastoreSnapshot.getAll().keySet().equals(cloudSqlSnapshot.getAll().keySet()),
"Expecting the same set of types in both snapshots.");
PCollectionList<String> diffLogs = PCollectionList.empty(pipeline);
for (Class<? extends SqlEntity> clazz : SqlSnapshots.ALL_SQL_ENTITIES) {
TupleTag<SqlEntity> tag = ValidateSqlUtils.createSqlEntityTupleTag(clazz);
verify(
datastoreSnapshot.has(tag), "Missing %s in Datastore snapshot.", clazz.getSimpleName());
verify(cloudSqlSnapshot.has(tag), "Missing %s in Cloud SQL snapshot.", clazz.getSimpleName());
diffLogs =
diffLogs.and(
PCollectionList.of(datastoreSnapshot.get(tag))
.and(cloudSqlSnapshot.get(tag))
.apply(
"Combine from both snapshots: " + clazz.getSimpleName(),
Flatten.pCollections())
.apply(
"Assign primary key to merged " + clazz.getSimpleName(),
WithKeys.of(ValidateDatabasePipeline::getPrimaryKeyString)
.withKeyType(strings()))
.apply("Group by primary key " + clazz.getSimpleName(), GroupByKey.create())
.apply("Compare " + clazz.getSimpleName(), ParDo.of(new CompareSqlEntity())));
}
if (diffOutputPath.isPresent()) {
diffLogs
.apply("Gather diff logs", Flatten.pCollections())
.apply(
"Output diffs",
TextIO.write()
.to(diffOutputPath.get())
/**
* Output to a single file for ease of use since diffs should be few. If this
* assumption turns out not to be false, user should abort the pipeline and
* investigate why.
*/
.withoutSharding()
.withDelimiter((Strings.repeat("-", 80) + "\n").toCharArray()));
}
}
private static String getPrimaryKeyString(SqlEntity sqlEntity) {
// SqlEntity.getPrimaryKeyString only works with entities registered with Hibernate.
// We are using the BulkQueryJpaTransactionManager, which does not recognize DomainBase and
// DomainHistory. See BulkQueryEntities.java for more information.
if (sqlEntity instanceof DomainBase) {
return "DomainBase_" + ((DomainBase) sqlEntity).getRepoId();
}
if (sqlEntity instanceof DomainHistory) {
return "DomainHistory_" + ((DomainHistory) sqlEntity).getDomainHistoryId().toString();
}
return sqlEntity.getPrimaryKeyString();
}
public static void main(String[] args) {
ValidateDatabasePipelineOptions options =
PipelineOptionsFactory.fromArgs(args)
.withValidation()
.as(ValidateDatabasePipelineOptions.class);
RegistryPipelineOptions.validateRegistryPipelineOptions(options);
// Defensively set important options.
options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ);
options.setJpaTransactionManagerType(JpaTransactionManagerType.BULK_QUERY);
// Set up JPA in the pipeline harness (the locally executed part of the main() method). Reuse
// code in RegistryPipelineWorkerInitializer, which only applies to pipeline worker VMs.
new RegistryPipelineWorkerInitializer().beforeProcessing(options);
LatestDatastoreSnapshotFinder datastoreSnapshotFinder =
DaggerLatestDatastoreSnapshotFinder_LatestDatastoreSnapshotFinderFinderComponent.create()
.datastoreSnapshotInfoFinder();
new ValidateDatabasePipeline(options, datastoreSnapshotFinder).run(Pipeline.create(options));
}
}

View File

@@ -1,55 +0,0 @@
// Copyright 2022 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.comparedb;
import google.registry.beam.common.RegistryPipelineOptions;
import google.registry.model.annotations.DeleteAfterMigration;
import javax.annotation.Nullable;
import org.apache.beam.sdk.options.Description;
import org.apache.beam.sdk.options.Validation;
/** BEAM pipeline options for {@link ValidateDatabasePipeline}. */
@DeleteAfterMigration
public interface ValidateDatabasePipelineOptions extends RegistryPipelineOptions {
@Description(
"The id of the SQL snapshot to be compared with Datastore. "
+ "If null, the current state of the SQL database is used.")
@Nullable
String getSqlSnapshotId();
void setSqlSnapshotId(String snapshotId);
@Description("The latest CommitLogs to load, in ISO8601 format.")
@Validation.Required
String getLatestCommitLogTimestamp();
void setLatestCommitLogTimestamp(String commitLogEndTimestamp);
@Description(
"For history entries and EPP resources, only those modified strictly after this time are "
+ "included in comparison. Value is in ISO8601 format. "
+ "Other entity types are not affected.")
@Nullable
String getComparisonStartTimestamp();
void setComparisonStartTimestamp(String comparisonStartTimestamp);
@Description("The GCS bucket where discrepancies found during comparison should be logged.")
@Nullable
String getDiffOutputGcsBucket();
void setDiffOutputGcsBucket(String gcsBucket);
}

View File

@@ -1,427 +0,0 @@
// Copyright 2021 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.comparedb;
import static com.google.common.base.Verify.verify;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
import com.google.common.collect.Maps.EntryTransformer;
import google.registry.beam.initsql.Transforms;
import google.registry.config.RegistryEnvironment;
import google.registry.model.EppResource;
import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.billing.BillingEvent;
import google.registry.model.contact.ContactBase;
import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.DomainContent;
import google.registry.model.domain.DomainHistory;
import google.registry.model.eppcommon.AuthInfo;
import google.registry.model.host.HostHistory;
import google.registry.model.poll.PollMessage;
import google.registry.model.registrar.Registrar;
import google.registry.model.replay.SqlEntity;
import google.registry.model.reporting.HistoryEntry;
import google.registry.util.DiffUtils;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.math.BigInteger;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.beam.sdk.metrics.Counter;
import org.apache.beam.sdk.metrics.Metrics;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.TupleTag;
import org.checkerframework.checker.nullness.qual.Nullable;
/** Helpers for use by {@link ValidateDatabasePipeline}. */
@DeleteAfterMigration
final class ValidateSqlUtils {
private ValidateSqlUtils() {}
private static final ImmutableSet<String> PROBER_CELLS = ImmutableSet.of("IQ", "LG", "TL");
private static final ImmutableSet<String> PROBER_TYPES =
ImmutableSet.of("ANYT", "ANYTES", "CANARY");
/**
* Query template for finding the median value of the {@code history_revision_id} column in one of
* the History tables.
*
* <p>The {@link ValidateDatabasePipeline} uses this query to parallelize the query to some of the
* history tables. Although the {@code repo_id} column is the leading column in the primary keys
* of these tables, in practice and with production data, division by {@code history_revision_id}
* works slightly faster for unknown reasons.
*/
private static final String MEDIAN_ID_QUERY_TEMPLATE =
"SELECT history_revision_id FROM ( "
+ " SELECT"
+ " ROW_NUMBER() OVER (ORDER BY history_revision_id ASC) AS rownumber,"
+ " history_revision_id"
+ " FROM \"%TABLE%\""
+ ") AS foo\n"
+ "WHERE rownumber in (select count(*) / 2 + 1 from \"%TABLE%\")";
static Optional<Long> getMedianIdForHistoryTable(String tableName) {
Preconditions.checkArgument(
tableName.endsWith("History"), "Table must be one of the History tables.");
String sqlText = MEDIAN_ID_QUERY_TEMPLATE.replace("%TABLE%", tableName);
List results =
jpaTm()
.transact(() -> jpaTm().getEntityManager().createNativeQuery(sqlText).getResultList());
verify(results.size() < 2, "MidPoint query should have at most one result.");
if (results.isEmpty()) {
return Optional.empty();
}
return Optional.of(((BigInteger) results.get(0)).longValue());
}
static TupleTag<SqlEntity> createSqlEntityTupleTag(Class<? extends SqlEntity> actualType) {
return new TupleTag<SqlEntity>(actualType.getSimpleName()) {};
}
static class CompareSqlEntity extends DoFn<KV<String, Iterable<SqlEntity>>, String> {
private final HashMap<String, Counter> totalCounters = new HashMap<>();
private final HashMap<String, Counter> missingCounters = new HashMap<>();
private final HashMap<String, Counter> unequalCounters = new HashMap<>();
private final HashMap<String, Counter> badEntityCounters = new HashMap<>();
private final HashMap<String, Counter> duplicateEntityCounters = new HashMap<>();
private String getCounterKey(Class<?> clazz) {
return PollMessage.class.isAssignableFrom(clazz) ? "PollMessage" : clazz.getSimpleName();
}
private synchronized void ensureCounterExists(String counterKey) {
if (totalCounters.containsKey(counterKey)) {
return;
}
totalCounters.put(counterKey, Metrics.counter("CompareDB", "Total Compared: " + counterKey));
missingCounters.put(
counterKey, Metrics.counter("CompareDB", "Missing In One DB: " + counterKey));
unequalCounters.put(counterKey, Metrics.counter("CompareDB", "Not Equal:" + counterKey));
badEntityCounters.put(counterKey, Metrics.counter("CompareDB", "Bad Entities:" + counterKey));
duplicateEntityCounters.put(
counterKey, Metrics.counter("CompareDB", "Duplicate Entities:" + counterKey));
}
String duplicateEntityLog(String key, ImmutableList<SqlEntity> entities) {
return String.format("%s: %d entities.", key, entities.size());
}
String unmatchedEntityLog(String key, SqlEntity entry) {
// For a PollMessage only found in Datastore, key is not enough to query for it.
return String.format("Missing in one DB:\n%s", entry instanceof PollMessage ? entry : key);
}
/**
* A rudimentary debugging helper that prints the first pair of unequal entities in each worker.
* This will be removed when we start exporting such entities to GCS.
*/
String unEqualEntityLog(String key, SqlEntity entry0, SqlEntity entry1) {
Map<String, Object> fields0 = ((ImmutableObject) entry0).toDiffableFieldMap();
Map<String, Object> fields1 = ((ImmutableObject) entry1).toDiffableFieldMap();
return key + " " + DiffUtils.prettyPrintEntityDeepDiff(fields0, fields1);
}
String badEntitiesLog(String key, SqlEntity entry0, SqlEntity entry1) {
Map<String, Object> fields0 = ((ImmutableObject) entry0).toDiffableFieldMap();
Map<String, Object> fields1 = ((ImmutableObject) entry1).toDiffableFieldMap();
return String.format(
"Failed to parse one or both entities for key %s:\n%s\n",
key, DiffUtils.prettyPrintEntityDeepDiff(fields0, fields1));
}
@ProcessElement
public void processElement(
@Element KV<String, Iterable<SqlEntity>> kv, OutputReceiver<String> out) {
ImmutableList<SqlEntity> entities = ImmutableList.copyOf(kv.getValue());
verify(!entities.isEmpty(), "Can't happen: no value for key %s.", kv.getKey());
String counterKey = getCounterKey(entities.get(0).getClass());
ensureCounterExists(counterKey);
totalCounters.get(counterKey).inc();
if (entities.size() > 2) {
// Duplicates may happen with Cursors if imported across projects. Its key in Datastore, the
// id field, encodes the project name and is not fixed by the importing job.
duplicateEntityCounters.get(counterKey).inc();
out.output(duplicateEntityLog(kv.getKey(), entities) + "\n");
return;
}
if (entities.size() == 1) {
if (isSpecialCaseProberEntity(entities.get(0))) {
return;
}
missingCounters.get(counterKey).inc();
out.output(unmatchedEntityLog(kv.getKey(), entities.get(0)) + "\n");
return;
}
SqlEntity entity0 = entities.get(0);
SqlEntity entity1 = entities.get(1);
if (isSpecialCaseProberEntity(entity0) && isSpecialCaseProberEntity(entity1)) {
// Ignore prober-related data: their deletions are not propagated from Datastore to SQL.
// When code reaches here, in most cases it involves one soft deleted entity in Datastore
// and an SQL entity with its pre-deletion status.
return;
}
try {
entity0 = normalizeEntity(entity0);
entity1 = normalizeEntity(entity1);
} catch (Exception e) {
badEntityCounters.get(counterKey).inc();
out.output(badEntitiesLog(kv.getKey(), entity0, entity1));
return;
}
Map<String, Object> fields0 =
Maps.transformEntries(
((ImmutableObject) entity0).toDiffableFieldMap(), new DiffableFieldNormalizer());
Map<String, Object> fields1 =
Maps.transformEntries(
((ImmutableObject) entity1).toDiffableFieldMap(), new DiffableFieldNormalizer());
if (!Objects.equals(fields0, fields1)) {
unequalCounters.get(counterKey).inc();
out.output(kv.getKey() + " " + DiffUtils.prettyPrintEntityDeepDiff(fields0, fields1));
}
}
}
/**
* Normalizes trivial differences between objects persisted in Datastore and SQL.
*
* <p>This class works on a map generated by {@link ImmutableObject#toDiffableFieldMap}, and
* performs the following changes:
*
* <ul>
* <li>If a value is an empty {@link Collection}, it is converted to null
* <li>For each {@link google.registry.model.eppcommon.Address} object, empty strings are
* removed from its {@code string} field, which is a {@link List}.
* </ul>
*/
static class DiffableFieldNormalizer
implements EntryTransformer<String, Object, Object>, Serializable {
@Override
public Object transformEntry(String key, @Nullable Object value) {
if (value instanceof Collection && ((Collection<?>) value).isEmpty()) {
return null;
}
if (key.equals("street") && value instanceof List) {
return ((List<?>) value)
.stream().filter(v -> v != null && !Objects.equals("", v)).collect(Collectors.toList());
}
// Short-term hack: LinkedHashMap<String, ?> represents a child ImmutableObject instance.
if (value instanceof LinkedHashMap
&& ((LinkedHashMap<?, ?>) value).keySet().stream().anyMatch(e -> e instanceof String)) {
return Maps.transformEntries((Map<String, Object>) value, this);
}
return value;
}
}
static SqlEntity normalizeEntity(SqlEntity sqlEntity) {
if (sqlEntity instanceof EppResource) {
return normalizeEppResource(sqlEntity);
}
if (sqlEntity instanceof HistoryEntry) {
return (SqlEntity) normalizeHistoryEntry((HistoryEntry) sqlEntity);
}
return sqlEntity;
}
/**
* Normalizes an {@link EppResource} instance for comparison.
*
* <p>This method may modify the input object using reflection instead of making a copy with
* {@code eppResource.asBuilder().build()}, because when {@code eppResource} is a {@link
* google.registry.model.domain.DomainBase}, the {@code build} method accesses the Database, which
* we want to avoid.
*/
static SqlEntity normalizeEppResource(SqlEntity eppResource) {
try {
Field authField =
eppResource instanceof DomainContent
? DomainContent.class.getDeclaredField("authInfo")
: eppResource instanceof ContactBase
? ContactBase.class.getDeclaredField("authInfo")
: null;
if (authField != null) {
authField.setAccessible(true);
AuthInfo authInfo = (AuthInfo) authField.get(eppResource);
// When AuthInfo is missing, the authInfo field is null if the object is loaded from
// Datastore, or a PasswordAuth with null properties if loaded from SQL. In the second case
// we set the authInfo field to null.
if (authInfo != null
&& authInfo.getPw() != null
&& authInfo.getPw().getRepoId() == null
&& authInfo.getPw().getValue() == null) {
authField.set(eppResource, null);
}
}
Field field = EppResource.class.getDeclaredField("revisions");
field.setAccessible(true);
field.set(eppResource, null);
return eppResource;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* Normalizes a {@link HistoryEntry} for comparison.
*
* <p>This method modifies the input using reflection because relevant builder methods performs
* unwanted checks and changes.
*/
static HistoryEntry normalizeHistoryEntry(HistoryEntry historyEntry) {
// History objects from Datastore do not have details of their EppResource objects
// (domainContent, contactBase, hostBase).
try {
if (historyEntry instanceof DomainHistory) {
Field domainContent = DomainHistory.class.getDeclaredField("domainContent");
domainContent.setAccessible(true);
domainContent.set(historyEntry, null);
// Convert empty domainTransactionRecords to null for comparison.
Field domainTransactionRecords =
HistoryEntry.class.getDeclaredField("domainTransactionRecords");
domainTransactionRecords.setAccessible(true);
Set<?> domainTransactionRecordsValue = (Set<?>) domainTransactionRecords.get(historyEntry);
if (domainTransactionRecordsValue != null && domainTransactionRecordsValue.isEmpty()) {
domainTransactionRecords.set(historyEntry, null);
}
// DomainHistory in Datastore does not have the following properties either:
Field nsHosts = DomainHistory.class.getDeclaredField("nsHosts");
nsHosts.setAccessible(true);
nsHosts.set(historyEntry, null);
Field dsDataHistories = DomainHistory.class.getDeclaredField("dsDataHistories");
dsDataHistories.setAccessible(true);
dsDataHistories.set(historyEntry, null);
Field gracePeriodHistories = DomainHistory.class.getDeclaredField("gracePeriodHistories");
gracePeriodHistories.setAccessible(true);
gracePeriodHistories.set(historyEntry, null);
} else if (historyEntry instanceof ContactHistory) {
Field contactBase = ContactHistory.class.getDeclaredField("contactBase");
contactBase.setAccessible(true);
contactBase.set(historyEntry, null);
} else if (historyEntry instanceof HostHistory) {
Field hostBase = HostHistory.class.getDeclaredField("hostBase");
hostBase.setAccessible(true);
hostBase.set(historyEntry, null);
}
return historyEntry;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* Returns {@code true} if {@code entity} is created by the prober and needs special treatment.
*
* <p>{@link EppResource} entities created by the prober are deleted by a cron job that bypasses
* the CommitLog mechanism. As a result, their deletions are not propagated to SQL, creating two
* types of mismatches: an entity exists in both databases but differs in lastUpdateTime and
* deletionTime; an entity only exists in the SQL database.
*
* <p>In production, there are few placeholder {@link Registrar registrars} that do not exist in
* Datastore. They were manually created to in SQL to solve a one-time problem (see b/187946868
* for details). They can be ignored in the database comparison.
*/
static boolean isSpecialCaseProberEntity(Object entity) {
if (entity instanceof EppResource) {
EppResource host = (EppResource) entity;
if (host.getPersistedCurrentSponsorRegistrarId().startsWith("prober-")) {
return true;
}
}
if (entity instanceof HistoryEntry) {
HistoryEntry historyEntry = (HistoryEntry) entity;
if (historyEntry.getRegistrarId().startsWith("prober-")) {
// Not all prober entities have "prober-" as registrar prefix.
return true;
}
if (Objects.equals(historyEntry.getReason(), "Deletion of prober data")) {
// Soft-delete event in Datastore that is not propagated to SQL.
return true;
}
}
if (entity instanceof DomainHistory) {
DomainHistory domainHistory = (DomainHistory) entity;
if (domainHistory.getDomainContent().isPresent()
&& domainHistory.getDomainContent().get().getDomainName().startsWith("prober-")) {
// Asynchronously replicated event in SQL.
return true;
}
if (domainHistory.getDomainRepoId() != null) {
// Some synthetic events only have domainRepoId.
String repoId = domainHistory.getDomainRepoId();
if (Transforms.IGNORED_DOMAINS.contains(repoId)) {
return true;
}
String suffix = repoId.substring(repoId.indexOf('-') + 1);
String cell = suffix.substring(0, 2);
suffix = suffix.substring(2);
if (PROBER_CELLS.contains(cell) && PROBER_TYPES.contains(suffix)) {
return true;
}
}
}
if (entity instanceof ContactHistory) {
if (Transforms.IGNORED_CONTACTS.contains(((ContactHistory) entity).getContactRepoId())) {
return true;
}
}
if (entity instanceof HostHistory) {
if (Transforms.IGNORED_HOSTS.contains(((HostHistory) entity).getHostRepoId())) {
return true;
}
}
if (entity instanceof BillingEvent) {
BillingEvent event = (BillingEvent) entity;
if (event.getRegistrarId().startsWith("prober-")) {
return true;
}
}
if (entity instanceof PollMessage) {
if (((PollMessage) entity).getRegistrarId().startsWith("prober-")) {
return true;
}
}
if (RegistryEnvironment.get().equals(RegistryEnvironment.PRODUCTION)
&& entity instanceof Registrar) {
Registrar registrar = (Registrar) entity;
if (registrar.getRegistrarId().startsWith("prober-wj-")) {
return true;
}
}
return false;
}
}

View File

@@ -158,7 +158,7 @@ public class InitSqlPipeline implements Serializable {
.addAll(toKindStrings(PHASE_TWO_ORDERED))
.build()));
// Set up the pipeline to write entity kinds from PHASE_ONE_ORDERED to SQL. Return a object
// Set up the pipeline to write entity kinds from PHASE_ONE_ORDERED to SQL. Return an object
// that signals the completion of the phase.
PCollection<Void> blocker =
scheduleOnePhaseWrites(datastoreSnapshot, PHASE_ONE_ORDERED, Optional.empty(), null);

View File

@@ -22,7 +22,7 @@ import static google.registry.beam.initsql.BackupPaths.getExportFilePatterns;
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import static google.registry.util.DateTimeUtils.START_OF_TIME;
import static google.registry.util.DateTimeUtils.isBeforeOrAt;
import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
import static google.registry.util.DomainNameUtils.canonicalizeHostname;
import static java.util.Comparator.comparing;
import static org.apache.beam.sdk.values.TypeDescriptors.kvs;
import static org.apache.beam.sdk.values.TypeDescriptors.strings;
@@ -343,11 +343,11 @@ public final class Transforms {
// Canonicalize old domain/host names from 2016 and earlier before we were enforcing this.
entity.setIndexedProperty(
"fullyQualifiedDomainName",
canonicalizeDomainName((String) entity.getProperty("fullyQualifiedDomainName")));
canonicalizeHostname((String) entity.getProperty("fullyQualifiedDomainName")));
} else if (entity.getKind().equals("HostResource")) {
entity.setIndexedProperty(
"fullyQualifiedHostName",
canonicalizeDomainName((String) entity.getProperty("fullyQualifiedHostName")));
canonicalizeHostname((String) entity.getProperty("fullyQualifiedHostName")));
}
return entity;
}

View File

@@ -18,6 +18,7 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static google.registry.beam.BeamUtils.getQueryFromFile;
import static org.apache.beam.sdk.values.TypeDescriptors.strings;
import com.google.common.flogger.FluentLogger;
import google.registry.beam.common.RegistryJpaIO;
import google.registry.beam.common.RegistryJpaIO.Read;
import google.registry.beam.invoicing.BillingEvent.InvoiceGroupingKey;
@@ -35,6 +36,7 @@ import java.time.LocalTime;
import java.time.YearMonth;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Objects;
import java.util.Optional;
import java.util.regex.Pattern;
import org.apache.beam.sdk.Pipeline;
@@ -53,6 +55,7 @@ import org.apache.beam.sdk.transforms.PTransform;
import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.joda.money.CurrencyUnit;
/**
* Definition of a Dataflow Flex pipeline template, which generates a given month's invoices.
@@ -73,6 +76,8 @@ public class InvoicingPipeline implements Serializable {
private static final Pattern SQL_COMMENT_REGEX =
Pattern.compile("^\\s*--.*\\n", Pattern.MULTILINE);
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private final InvoicingPipelineOptions options;
InvoicingPipeline(InvoicingPipelineOptions options) {
@@ -113,31 +118,44 @@ public class InvoicingPipeline implements Serializable {
InvoicingPipelineOptions options, Pipeline pipeline) {
Read<Object[], BillingEvent> read =
RegistryJpaIO.read(
makeCloudSqlQuery(options.getYearMonth()), false, InvoicingPipeline::parseRow);
makeCloudSqlQuery(options.getYearMonth()), false, row -> parseRow(row).orElse(null));
return pipeline.apply("Read BillingEvents from Cloud SQL", read);
PCollection<BillingEvent> billingEventsWithNulls =
pipeline.apply("Read BillingEvents from Cloud SQL", read);
// Remove null billing events
return billingEventsWithNulls.apply(Filter.by(Objects::nonNull));
}
private static BillingEvent parseRow(Object[] row) {
private static Optional<BillingEvent> parseRow(Object[] row) {
google.registry.model.billing.BillingEvent.OneTime oneTime =
(google.registry.model.billing.BillingEvent.OneTime) row[0];
Registrar registrar = (Registrar) row[1];
return BillingEvent.create(
oneTime.getId(),
DateTimeUtils.toZonedDateTime(oneTime.getBillingTime(), ZoneId.of("UTC")),
DateTimeUtils.toZonedDateTime(oneTime.getEventTime(), ZoneId.of("UTC")),
registrar.getRegistrarId(),
registrar.getBillingIdentifier().toString(),
registrar.getPoNumber().orElse(""),
DomainNameUtils.getTldFromDomainName(oneTime.getTargetId()),
oneTime.getReason().toString(),
oneTime.getTargetId(),
oneTime.getDomainRepoId(),
Optional.ofNullable(oneTime.getPeriodYears()).orElse(0),
oneTime.getCost().getCurrencyUnit().toString(),
oneTime.getCost().getAmount().doubleValue(),
String.join(
" ", oneTime.getFlags().stream().map(Flag::toString).collect(toImmutableSet())));
CurrencyUnit currency = oneTime.getCost().getCurrencyUnit();
if (!registrar.getBillingAccountMap().containsKey(currency)) {
logger.atSevere().log(
"Registrar %s does not have a product account key for the currency unit: %s",
registrar.getRegistrarId(), currency);
return Optional.empty();
}
return Optional.of(
BillingEvent.create(
oneTime.getId(),
DateTimeUtils.toZonedDateTime(oneTime.getBillingTime(), ZoneId.of("UTC")),
DateTimeUtils.toZonedDateTime(oneTime.getEventTime(), ZoneId.of("UTC")),
registrar.getRegistrarId(),
registrar.getBillingAccountMap().get(currency),
registrar.getPoNumber().orElse(""),
DomainNameUtils.getTldFromDomainName(oneTime.getTargetId()),
oneTime.getReason().toString(),
oneTime.getTargetId(),
oneTime.getDomainRepoId(),
Optional.ofNullable(oneTime.getPeriodYears()).orElse(0),
oneTime.getCost().getCurrencyUnit().toString(),
oneTime.getCost().getAmount().doubleValue(),
String.join(
" ", oneTime.getFlags().stream().map(Flag::toString).collect(toImmutableSet()))));
}
/** Transform that converts a {@code BillingEvent} into an invoice CSV row. */

View File

@@ -15,6 +15,7 @@
package google.registry.beam.rde;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static google.registry.beam.rde.RdePipeline.TupleTags.DOMAIN_FRAGMENTS;
import static google.registry.beam.rde.RdePipeline.TupleTags.EXTERNAL_HOST_FRAGMENTS;
@@ -28,10 +29,12 @@ import static google.registry.model.reporting.HistoryEntryDao.RESOURCE_TYPES_TO_
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import static org.apache.beam.sdk.values.TypeDescriptors.kvs;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import com.google.common.collect.Streams;
import com.google.common.flogger.FluentLogger;
import com.google.common.io.BaseEncoding;
import dagger.BindsInstance;
import dagger.Component;
@@ -198,6 +201,8 @@ public class RdePipeline implements Serializable {
HostHistory.class,
"hostBase");
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
@Inject
RdePipeline(RdePipelineOptions options, GcsUtils gcsUtils, CloudTasksUtils cloudTasksUtils) {
this.options = options;
@@ -357,6 +362,33 @@ public class RdePipeline implements Serializable {
.setCoder(KvCoder.of(StringUtf8Coder.of(), VarLongCoder.of()));
}
private <T extends HistoryEntry> EppResource loadResourceByHistoryEntryId(
Class<T> historyEntryClazz, String repoId, Iterable<Long> revisionIds) {
ImmutableList<Long> ids = ImmutableList.copyOf(revisionIds);
// The size should always be 1 because we are only getting one repo ID -> revision ID pair per
// repo ID from the source transform (the JPA query in the method above). But for some reason
// after CoGroupByKey (joining the revision IDs and the pending deposits on repo IDs), in
// #removedUnreferencedResources, duplicate revision IDs are sometimes introduced. Here we
// attempt to deduplicate the iterable. If it contains multiple revision IDs that are NOT the
// same, we have a more serious problem as we cannot be sure which one to use. We should use the
// highest revision ID, but we don't even know where it comes from, as the query should
// definitively only give us one revision ID per repo ID. In this case we have to abort and
// require manual intervention.
if (ids.size() != 1) {
ImmutableSet<Long> dedupedIds = ImmutableSet.copyOf(ids);
checkState(
dedupedIds.size() == 1,
"Multiple unique revision IDs detected for %s repo ID %s: %s",
EPP_RESOURCE_FIELD_NAME.get(historyEntryClazz),
repoId,
ids);
logger.atSevere().log(
"Duplicate revision IDs detected for %s repo ID %s: %s",
EPP_RESOURCE_FIELD_NAME.get(historyEntryClazz), repoId, ids);
}
return loadResourceByHistoryEntryId(historyEntryClazz, repoId, ids.get(0));
}
private <T extends HistoryEntry> EppResource loadResourceByHistoryEntryId(
Class<T> historyEntryClazz, String repoId, long revisionId) {
try {
@@ -516,7 +548,7 @@ public class RdePipeline implements Serializable {
loadResourceByHistoryEntryId(
ContactHistory.class,
kv.getKey(),
kv.getValue().getOnly(REVISION_ID));
kv.getValue().getAll(REVISION_ID));
DepositFragment fragment = marshaller.marshalContact(contact);
ImmutableSet<KV<PendingDeposit, DepositFragment>> fragments =
Streams.stream(kv.getValue().getAll(PENDING_DEPOSIT))
@@ -549,8 +581,8 @@ public class RdePipeline implements Serializable {
loadResourceByHistoryEntryId(
HostHistory.class,
kv.getKey(),
kv.getValue().getOnly(REVISION_ID));
// When a host is subordinate, we need to find it's superordinate domain and
kv.getValue().getAll(REVISION_ID));
// When a host is subordinate, we need to find its superordinate domain and
// include it in the deposit as well.
if (host.isSubordinate()) {
subordinateHostCounter.inc();
@@ -627,7 +659,7 @@ public class RdePipeline implements Serializable {
loadResourceByHistoryEntryId(
DomainHistory.class,
kv.getKey(),
kv.getValue().getOnly(REVISION_ID));
kv.getValue().getAll(REVISION_ID));
ImmutableSet.Builder<KV<PendingDeposit, DepositFragment>> results =
new ImmutableSet.Builder<>();
for (KV<String, CoGbkResult> hostToPendingDeposits :
@@ -637,7 +669,7 @@ public class RdePipeline implements Serializable {
loadResourceByHistoryEntryId(
HostHistory.class,
hostToPendingDeposits.getKey(),
hostToPendingDeposits.getValue().getOnly(REVISION_ID));
hostToPendingDeposits.getValue().getAll(REVISION_ID));
DepositFragment fragment =
marshaller.marshalSubordinateHost(host, superordinateDomain);
Streams.stream(hostToPendingDeposits.getValue().getAll(PENDING_DEPOSIT))
@@ -696,6 +728,7 @@ public class RdePipeline implements Serializable {
* CoGbkResult}s are used.
*/
protected abstract static class TupleTags {
protected static final TupleTag<KV<PendingDeposit, DepositFragment>> DOMAIN_FRAGMENTS =
new TupleTag<KV<PendingDeposit, DepositFragment>>() {};
@@ -729,10 +762,12 @@ public class RdePipeline implements Serializable {
UtilsModule.class
})
interface RdePipelineComponent {
RdePipeline rdePipeline();
@Component.Builder
interface Builder {
@BindsInstance
Builder options(RdePipelineOptions options);

View File

@@ -0,0 +1,174 @@
// Copyright 2022 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.resave;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import static org.apache.beam.sdk.values.TypeDescriptors.integers;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import google.registry.beam.common.RegistryJpaIO;
import google.registry.beam.common.RegistryJpaIO.Read;
import google.registry.model.EppResource;
import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase;
import google.registry.model.host.HostResource;
import google.registry.persistence.PersistenceModule.TransactionIsolationLevel;
import google.registry.persistence.transaction.CriteriaQueryBuilder;
import google.registry.util.DateTimeUtils;
import java.io.Serializable;
import java.util.concurrent.ThreadLocalRandom;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.PipelineResult;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.transforms.GroupIntoBatches;
import org.apache.beam.sdk.transforms.ParDo;
import org.apache.beam.sdk.transforms.WithKeys;
import org.apache.beam.sdk.util.ShardedKey;
import org.apache.beam.sdk.values.KV;
import org.joda.time.DateTime;
/**
* A Dataflow Flex pipeline that resaves changed EPP resources in SQL.
*
* <p>Due to the way that Hibernate works, if an entity is unchanged by {@link
* EppResource#cloneProjectedAtTime(DateTime)} it will not actually be re-persisted to the database.
* Thus, the only actual changes occur when objects are changed by projecting them to now, such as
* when a pending transfer is resolved.
*/
public class ResaveAllEppResourcesPipeline implements Serializable {
private static final ImmutableSet<Class<? extends EppResource>> EPP_RESOURCE_CLASSES =
ImmutableSet.of(ContactResource.class, DomainBase.class, HostResource.class);
/**
* There exist three possible situations where we know we'll want to project domains to the
* current point in time:
*
* <ul>
* <li>A pending domain transfer has expired.
* <li>A domain is past its expiration time without being deleted (this means it autorenewed).
* <li>A domain has expired grace periods.
* </ul>
*
* <p>This command contains all three scenarios so that we can avoid querying the Domain table
* multiple times, and to avoid projecting and resaving the same domain multiple times.
*/
private static final String DOMAINS_TO_PROJECT_QUERY =
"FROM Domain d WHERE (d.transferData.transferStatus = 'PENDING' AND"
+ " d.transferData.pendingTransferExpirationTime < current_timestamp()) OR"
+ " (d.registrationExpirationTime < current_timestamp() AND d.deletionTime ="
+ " (:END_OF_TIME)) OR (EXISTS (SELECT 1 FROM GracePeriod gp WHERE gp.domainRepoId ="
+ " d.repoId AND gp.expirationTime < current_timestamp()))";
private final ResaveAllEppResourcesPipelineOptions options;
ResaveAllEppResourcesPipeline(ResaveAllEppResourcesPipelineOptions options) {
this.options = options;
}
PipelineResult run() {
Pipeline pipeline = Pipeline.create(options);
setupPipeline(pipeline);
return pipeline.run();
}
void setupPipeline(Pipeline pipeline) {
options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_READ_COMMITTED);
if (options.getFast()) {
fastResaveContacts(pipeline);
fastResaveDomains(pipeline);
} else {
EPP_RESOURCE_CLASSES.forEach(clazz -> forceResaveAllResources(pipeline, clazz));
}
}
/** Projects to the current time and saves any contacts with expired transfers. */
private void fastResaveContacts(Pipeline pipeline) {
Read<ContactResource, ContactResource> read =
RegistryJpaIO.read(
"FROM Contact WHERE transferData.transferStatus = 'PENDING' AND"
+ " transferData.pendingTransferExpirationTime < current_timestamp()",
ContactResource.class,
c -> c);
projectAndResaveResources(pipeline, ContactResource.class, read);
}
/**
* Projects to the current time and saves any domains with expired pending actions (e.g.
* transfers, grace periods).
*
* <p>The logic of what might have changed is paraphrased from {@link
* google.registry.model.domain.DomainContent#cloneProjectedAtTime(DateTime)}.
*/
private void fastResaveDomains(Pipeline pipeline) {
Read<DomainBase, DomainBase> read =
RegistryJpaIO.read(
DOMAINS_TO_PROJECT_QUERY,
ImmutableMap.of("END_OF_TIME", DateTimeUtils.END_OF_TIME),
DomainBase.class,
d -> d);
projectAndResaveResources(pipeline, DomainBase.class, read);
}
/** Projects all resources to the current time and saves them. */
private <T extends EppResource> void forceResaveAllResources(Pipeline pipeline, Class<T> clazz) {
Read<T, T> read = RegistryJpaIO.read(() -> CriteriaQueryBuilder.create(clazz).build());
projectAndResaveResources(pipeline, clazz, read);
}
/** Projects and re-saves the result of the provided {@link Read}. */
private <T extends EppResource> void projectAndResaveResources(
Pipeline pipeline, Class<T> clazz, Read<?, T> read) {
int numShards = options.getSqlWriteShards();
int batchSize = options.getSqlWriteBatchSize();
String className = clazz.getSimpleName();
pipeline
.apply("Read " + className, read)
.apply(
"Shard data for class" + className,
WithKeys.<Integer, T>of(e -> ThreadLocalRandom.current().nextInt(numShards))
.withKeyType(integers()))
.apply(
"Group into batches for class" + className,
GroupIntoBatches.<Integer, T>ofSize(batchSize).withShardedKey())
.apply("Map " + className + " to now", ParDo.of(new BatchedProjectionFunction<>()))
.apply(
"Write transformed " + className,
RegistryJpaIO.<EppResource>write()
.withName("Write transformed " + className)
.withBatchSize(batchSize)
.withShards(numShards));
}
private static class BatchedProjectionFunction<T extends EppResource>
extends DoFn<KV<ShardedKey<Integer>, Iterable<T>>, EppResource> {
@ProcessElement
public void processElement(
@Element KV<ShardedKey<Integer>, Iterable<T>> element,
OutputReceiver<EppResource> outputReceiver) {
jpaTm()
.transact(
() ->
element
.getValue()
.forEach(
resource ->
outputReceiver.output(
resource.cloneProjectedAtTime(jpaTm().getTransactionTime()))));
}
}
}

View File

@@ -0,0 +1,26 @@
// Copyright 2022 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package google.registry.beam.resave;
import google.registry.beam.common.RegistryPipelineOptions;
import org.apache.beam.sdk.options.Description;
public interface ResaveAllEppResourcesPipelineOptions extends RegistryPipelineOptions {
@Description("True if we should attempt to run only over potentially out-of-date EPP resources")
boolean getFast();
void setFast(boolean fast);
}

View File

@@ -688,7 +688,7 @@ public final class RegistryConfig {
@Provides
@Config("defaultShouldPublishInvoices")
public static boolean provideDefaultShouldPublishInvoices() {
return true;
return false;
}
/**
@@ -1351,6 +1351,12 @@ public final class RegistryConfig {
public static int provideWipeOutQueryBatchSize(RegistryConfigSettings config) {
return config.contactHistory.wipeOutQueryBatchSize;
}
@Provides
@Config("jdbcBatchSize")
public static int provideHibernateJdbcBatchSize(RegistryConfigSettings config) {
return config.hibernate.jdbcBatchSize;
}
}
/** Returns the App Engine project ID, which is based off the environment name. */
@@ -1438,8 +1444,8 @@ public final class RegistryConfig {
}
/** Returns the amount of time a singleton should be cached, before expiring. */
public static Duration getSingletonCacheRefreshDuration() {
return Duration.standardSeconds(CONFIG_SETTINGS.get().caching.singletonCacheRefreshSeconds);
public static java.time.Duration getSingletonCacheRefreshDuration() {
return java.time.Duration.ofSeconds(CONFIG_SETTINGS.get().caching.singletonCacheRefreshSeconds);
}
/**
@@ -1448,13 +1454,13 @@ public final class RegistryConfig {
* @see google.registry.model.tld.label.ReservedList
* @see google.registry.model.tld.label.PremiumList
*/
public static Duration getDomainLabelListCacheDuration() {
return Duration.standardSeconds(CONFIG_SETTINGS.get().caching.domainLabelCachingSeconds);
public static java.time.Duration getDomainLabelListCacheDuration() {
return java.time.Duration.ofSeconds(CONFIG_SETTINGS.get().caching.domainLabelCachingSeconds);
}
/** Returns the amount of time a singleton should be cached in persist mode, before expiring. */
public static Duration getSingletonCachePersistDuration() {
return Duration.standardSeconds(CONFIG_SETTINGS.get().caching.singletonCachePersistSeconds);
public static java.time.Duration getSingletonCachePersistDuration() {
return java.time.Duration.ofSeconds(CONFIG_SETTINGS.get().caching.singletonCachePersistSeconds);
}
/**
@@ -1476,8 +1482,8 @@ public final class RegistryConfig {
/**
* Returns the amount of time an EPP resource or key should be cached in memory before expiring.
*/
public static Duration getEppResourceCachingDuration() {
return Duration.standardSeconds(CONFIG_SETTINGS.get().caching.eppResourceCachingSeconds);
public static java.time.Duration getEppResourceCachingDuration() {
return java.time.Duration.ofSeconds(CONFIG_SETTINGS.get().caching.eppResourceCachingSeconds);
}
/** Returns the maximum number of EPP resources and keys to keep in in-memory cache. */
@@ -1555,7 +1561,7 @@ public final class RegistryConfig {
* https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html,
* recommend between 10 and 50.
*/
public static String getHibernateJdbcBatchSize() {
public static int getHibernateJdbcBatchSize() {
return CONFIG_SETTINGS.get().hibernate.jdbcBatchSize;
}

View File

@@ -120,7 +120,7 @@ public class RegistryConfigSettings {
public String hikariMinimumIdle;
public String hikariMaximumPoolSize;
public String hikariIdleTimeout;
public String jdbcBatchSize;
public int jdbcBatchSize;
public String jdbcFetchSize;
}

View File

@@ -80,7 +80,7 @@
</cron>
<cron>
<url><![CDATA[/_dr/task/resaveAllEppResources?fast=true]]></url>
<url><![CDATA[/_dr/task/resaveAllEppResourcesPipeline?fast=true]]></url>
<description>
This job resaves all our resources, projected in time to "now".
It is needed for "deleteOldCommitLogs" to work correctly.
@@ -89,48 +89,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteOldCommitLogs]]></url>
<description>
This job deletes unreferenced commit logs from Datastore that are older than thirty days.
Since references are only updated on save, if we want to delete "unneeded" commit logs, we
also need "resaveAllEppResources" to run periodically.
</description>
<schedule>3rd monday of month 09:00</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/commitLogCheckpoint]]></url>
<description>
This job checkpoints the commit log buckets and exports the diff since last checkpoint to GCS.
</description>
<schedule>every 3 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteContactsAndHosts]]></url>
<description>
This job runs a mapreduce that processes batch asynchronous deletions of
contact and host resources by mapping over all EppResources and checking
for any references to the contacts/hosts in pending deletion.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/refreshDnsOnHostRename]]></url>
<description>
This job runs a mapreduce that asynchronously handles DNS refreshes for
host renames by mapping over all domains and creating DNS refresh tasks
for any domains that reference a renamed host.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/expandRecurringBillingEvents]]></url>
<description>
@@ -152,23 +110,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=export-snapshot&endpoint=/_dr/task/backupDatastore&runInEmpty]]></url>
<description>
This job fires off a Datastore managed-export job that generates snapshot files in GCS.
It also enqueues a new task to wait on the completion of that job and then load the resulting
snapshot into bigquery.
</description>
<!--
Keep google.registry.export.CheckBackupAction.MAXIMUM_BACKUP_RUNNING_TIME less than
this interval. -->
<schedule>every day 06:00</schedule>
<target>backend</target>
</cron>
<!--
Removed for the duration of load testing
TODO(b/71607184): Restore after loadtesting is done
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/deleteProberData&runInEmpty]]></url>
<description>
@@ -178,7 +119,6 @@
<timezone>UTC</timezone>
<target>backend</target>
</cron>
-->
<!-- TODO: Add borgmon job to check that these files are created and updated successfully. -->
<cron>
@@ -199,24 +139,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=replay-commit-logs-to-sql&endpoint=/_dr/task/replayCommitLogsToSql&runInEmpty]]></url>
<description>
Replays recent commit logs from Datastore to the SQL secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/replicateToDatastore]]></url>
<description>
Replays recent transactions from SQL to the Datastore secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/readDnsQueue?jitterSeconds=45]]></url>
<description>

View File

@@ -157,12 +157,6 @@
<url-pattern>/_dr/cron/readDnsQueue</url-pattern>
</servlet-mapping>
<!-- Replicates SQL transactions to Datastore during the Registry 3.0 migration. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
<url-pattern>/_dr/cron/replicateToDatastore</url-pattern>
</servlet-mapping>
<!-- Publishes DNS updates. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
@@ -243,12 +237,6 @@
<url-pattern>/_dr/task/killCommitLogs</url-pattern>
</servlet-mapping>
<!-- Replays Datastore commit logs to SQL. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
<url-pattern>/_dr/task/replayCommitLogsToSql</url-pattern>
</servlet-mapping>
<!-- MapReduce servlet. -->
<servlet>
<servlet-name>mapreduce</servlet-name>
@@ -316,6 +304,12 @@
<url-pattern>/_dr/task/resaveAllEppResources</url-pattern>
</servlet-mapping>
<!-- Dataflow pipeline to re-save all EPP resources. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
<url-pattern>/_dr/task/resaveAllEppResourcesPipeline</url-pattern>
</servlet-mapping>
<!-- Reread all Registrar RDAP Base Urls from the ICANN endpoint. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
@@ -328,15 +322,6 @@
<url-pattern>/_dr/task/resaveEntity</url-pattern>
</servlet-mapping>
<!--
Deletes contacts and hosts enqueued for asynchronous deletion if they are
not referenced by any domain.
-->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
<url-pattern>/_dr/task/deleteContactsAndHosts</url-pattern>
</servlet-mapping>
<!-- Enqueues DNS update tasks following a host rename. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
@@ -416,18 +401,6 @@ have been in the database for a certain period of time. -->
<url-pattern>/_dr/task/wipeOutDatastore</url-pattern>
</servlet-mapping>
<!-- Action to create synthetic history entries during async replication to SQL -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
<url-pattern>/_dr/task/createSyntheticHistoryEntries</url-pattern>
</servlet-mapping>
<!-- Action to sync Datastore to a snapshot of the primary SQL database. -->
<servlet-mapping>
<servlet-name>backend-servlet</servlet-name>
<url-pattern>/_dr/task/syncDatastoreToSqlSnapshot</url-pattern>
</servlet-mapping>
<!-- Security config -->
<security-constraint>
<web-resource-collection>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<blacklistentries>
<!-- Example IPv4 CIDR Subnet
<blacklist>
<subnet>1.2.3.4/24</subnet>
<description>An IPv4 subnet</description>
</blacklist> -->
<!-- Example IPv6 CIDR Subnet
<blacklist>
<subnet>abcd::123:4567/48</subnet>
<description>An IPv6 subnet</description>
</blacklist> -->
</blacklistentries>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<blacklistentries>
<!-- Example IPv4 CIDR Subnet
<blacklist>
<subnet>1.2.3.4/24</subnet>
<description>An IPv4 subnet</description>
</blacklist> -->
<!-- Example IPv6 CIDR Subnet
<blacklist>
<subnet>abcd::123:4567/48</subnet>
<description>An IPv6 subnet</description>
</blacklist> -->
</blacklistentries>

View File

@@ -102,55 +102,6 @@
<target>backend</target>
</cron>
<!-- Disabled for sql-only tests.
<cron>
<url><![CDATA[/_dr/cron/commitLogCheckpoint]]></url>
<description>
This job checkpoints the commit log buckets and exports the diff since last checkpoint to GCS.
</description>
<schedule>every 3 minutes synchronized</schedule>
<target>backend</target>
</cron>
-->
<cron>
<url><![CDATA[/_dr/task/deleteContactsAndHosts]]></url>
<description>
This job runs a mapreduce that processes batch asynchronous deletions of
contact and host resources by mapping over all EppResources and checking
for any references to the contacts/hosts in pending deletion.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/refreshDnsOnHostRename]]></url>
<description>
This job runs a mapreduce that asynchronously handles DNS refreshes for
host renames by mapping over all domains and creating DNS refresh tasks
for any domains that reference a renamed host.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<!-- Disabled for sql-only tests
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=export-snapshot&endpoint=/_dr/task/backupDatastore&runInEmpty]]></url>
<description>
This job fires off a Datastore managed-export job that generates snapshot files in GCS.
It also enqueues a new task to wait on the completion of that job and then load the resulting
snapshot into bigquery.
</description>
<!- -
Keep google.registry.export.CheckBackupAction.MAXIMUM_BACKUP_RUNNING_TIME less than
this interval. - ->
<schedule>every day 06:00</schedule>
<target>backend</target>
</cron>
-->
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/deleteProberData&runInEmpty]]></url>
<description>
@@ -200,26 +151,6 @@
<target>backend</target>
</cron>
<!-- Disabled for sql-only tests.
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=replay-commit-logs-to-sql&endpoint=/_dr/task/replayCommitLogsToSql&runInEmpty]]></url>
<description>
Replays recent commit logs from Datastore to the SQL secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
-->
<cron>
<url><![CDATA[/_dr/cron/replicateToDatastore]]></url>
<description>
Replays recent transactions from SQL to the Datastore secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<!--
The next two wipeout jobs are required when crash has production data.
-->
@@ -231,13 +162,4 @@
<schedule>every saturday 03:07</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/wipeOutDatastore]]></url>
<description>
This job runs an action that deletes all data in Cloud Datastore.
</description>
<schedule>every saturday 03:07</schedule>
<target>backend</target>
</cron>
</cronentries>

View File

@@ -7,7 +7,7 @@
<sessions-enabled>true</sessions-enabled>
<instance-class>B4_1G</instance-class>
<manual-scaling>
<instances>15</instances>
<instances>12</instances>
</manual-scaling>
<system-properties>

View File

@@ -36,19 +36,6 @@
<target>backend</target>
</cron>
<cron>
<url>/_dr/task/rdeStaging?beam=true</url>
<description>
This job generates a full RDE escrow deposit as a single gigantic XML
document using the Beam pipeline regardless of the current TM
configuration and streams it to cloud storage. It does not trigger the
subsequent upload tasks and is meant to run parallel with the main cron
job in order to compare the results from both runs.
</description>
<schedule>every 8 hours from 00:07 to 20:00</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=rde-upload&endpoint=/_dr/task/rdeUpload&forEachRealTld]]></url>
<description>
@@ -116,7 +103,7 @@
</cron>
<cron>
<url><![CDATA[/_dr/task/resaveAllEppResources?fast=true]]></url>
<url><![CDATA[/_dr/task/resaveAllEppResourcesPipeline?fast=true]]></url>
<description>
This job resaves all our resources, projected in time to "now".
It is needed for "deleteOldCommitLogs" to work correctly.
@@ -134,26 +121,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteOldCommitLogs]]></url>
<description>
This job deletes unreferenced commit logs from Datastore that are older than thirty days.
Since references are only updated on save, if we want to delete "unneeded" commit logs, we
also need "resaveAllEppResources" to run periodically.
</description>
<schedule>3rd monday of month 09:00</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/commitLogCheckpoint]]></url>
<description>
This job checkpoints the commit log buckets and exports the diff since last checkpoint to GCS.
</description>
<schedule>every 3 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/exportDomainLists&runInEmpty]]></url>
<description>
@@ -163,28 +130,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteContactsAndHosts]]></url>
<description>
This job runs a mapreduce that processes batch asynchronous deletions of
contact and host resources by mapping over all EppResources and checking
for any references to the contacts/hosts in pending deletion.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/refreshDnsOnHostRename]]></url>
<description>
This job runs a mapreduce that asynchronously handles DNS refreshes for
host renames by mapping over all domains and creating DNS refresh tasks
for any domains that reference a renamed host.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/expandRecurringBillingEvents]]></url>
<description>
@@ -215,20 +160,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=export-snapshot&endpoint=/_dr/task/backupDatastore&runInEmpty]]></url>
<description>
This job fires off a Datastore managed-export job that generates snapshot files in GCS.
It also enqueues a new task to wait on the completion of that job and then load the resulting
snapshot into bigquery.
</description>
<!--
Keep google.registry.export.CheckBackupAction.MAXIMUM_BACKUP_RUNNING_TIME less than
this interval. -->
<schedule>every day 06:00</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=nordn&endpoint=/_dr/task/nordnUpload&forEachRealTld&lordn-phase=sunrise]]></url>
<description>
@@ -253,6 +184,16 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/deleteProberData&runInEmpty]]></url>
<description>
This job clears out data from probers and runs once a week.
</description>
<schedule>every monday 14:00</schedule>
<timezone>UTC</timezone>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/exportReservedTerms&forEachRealTld]]></url>
<description>
@@ -314,7 +255,7 @@
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/generateInvoices&runInEmpty]]></url>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/generateInvoices?shouldPublish=true&runInEmpty]]></url>
<description>
Starts the beam/invoicing/InvoicingPipeline Dataflow template, which creates the overall invoice and
detail report CSVs for last month, storing them in gs://[PROJECT-ID]-billing/invoices/yyyy-MM.
@@ -343,24 +284,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=replay-commit-logs-to-sql&endpoint=/_dr/task/replayCommitLogsToSql&runInEmpty]]></url>
<description>
Replays recent commit logs from Datastore to the SQL secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/replicateToDatastore]]></url>
<description>
Replays recent transactions from SQL to the Datastore secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/wipeOutContactHistoryPii]]></url>
<description>

View File

@@ -7,7 +7,7 @@
<sessions-enabled>true</sessions-enabled>
<instance-class>B4_1G</instance-class>
<manual-scaling>
<instances>20</instances>
<instances>12</instances>
</manual-scaling>
<system-properties>

View File

@@ -32,7 +32,7 @@
</cron>
<cron>
<url><![CDATA[/_dr/task/resaveAllEppResources?fast=true]]></url>
<url><![CDATA[/_dr/task/resaveAllEppResourcesPipeline?fast=true]]></url>
<description>
This job resaves all our resources, projected in time to "now".
It is needed for "deleteOldCommitLogs" to work correctly.
@@ -41,39 +41,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteOldCommitLogs]]></url>
<description>
This job deletes unreferenced commit logs from Datastore that are older than thirty days.
Since references are only updated on save, if we want to delete "unneeded" commit logs, we
also need "resaveAllEppResources" to run periodically.
</description>
<schedule>3rd monday of month 09:00</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteContactsAndHosts]]></url>
<description>
This job runs a mapreduce that processes batch asynchronous deletions of
contact and host resources by mapping over all EppResources and checking
for any references to the contacts/hosts in pending deletion.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/refreshDnsOnHostRename]]></url>
<description>
This job runs a mapreduce that asynchronously handles DNS refreshes for
host renames by mapping over all domains and creating DNS refresh tasks
for any domains that reference a renamed host.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/syncGroupMembers&runInEmpty]]></url>
<description>
@@ -101,40 +68,4 @@
<schedule>every saturday 03:07</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/wipeOutDatastore]]></url>
<description>
This job runs an action that deletes all data in Cloud Datastore.
</description>
<schedule>every saturday 03:07</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=replay-commit-logs-to-sql&endpoint=/_dr/task/replayCommitLogsToSql&runInEmpty]]></url>
<description>
Replays recent commit logs from Datastore to the SQL secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/replicateToDatastore]]></url>
<description>
Replays recent transactions from SQL to the Datastore secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/commitLogCheckpoint]]></url>
<description>
This job checkpoints the commit log buckets and exports the diff since last checkpoint to GCS.
</description>
<schedule>every 3 minutes synchronized</schedule>
<target>backend</target>
</cron>
</cronentries>

View File

@@ -7,7 +7,7 @@
<sessions-enabled>true</sessions-enabled>
<instance-class>B4_1G</instance-class>
<manual-scaling>
<instances>10</instances>
<instances>6</instances>
</manual-scaling>
<system-properties>

View File

@@ -87,7 +87,7 @@
</cron>
<cron>
<url><![CDATA[/_dr/task/resaveAllEppResources?fast=true]]></url>
<url><![CDATA[/_dr/task/resaveAllEppResourcesPipeline?fast=true]]></url>
<description>
This job resaves all our resources, projected in time to "now".
It is needed for "deleteOldCommitLogs" to work correctly.
@@ -96,26 +96,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteOldCommitLogs]]></url>
<description>
This job deletes unreferenced commit logs from Datastore that are older than thirty days.
Since references are only updated on save, if we want to delete "unneeded" commit logs, we
also need "resaveAllEppResources" to run periodically.
</description>
<schedule>3rd monday of month 09:00</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/commitLogCheckpoint]]></url>
<description>
This job checkpoints the commit log buckets and exports the diff since last checkpoint to GCS.
</description>
<schedule>every 3 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/exportDomainLists&runInEmpty]]></url>
<description>
@@ -125,28 +105,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/deleteContactsAndHosts]]></url>
<description>
This job runs a mapreduce that processes batch asynchronous deletions of
contact and host resources by mapping over all EppResources and checking
for any references to the contacts/hosts in pending deletion.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/refreshDnsOnHostRename]]></url>
<description>
This job runs a mapreduce that asynchronously handles DNS refreshes for
host renames by mapping over all domains and creating DNS refresh tasks
for any domains that reference a renamed host.
</description>
<schedule>every 5 minutes synchronized</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/expandRecurringBillingEvents]]></url>
<description>
@@ -169,16 +127,12 @@
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=export-snapshot&endpoint=/_dr/task/backupDatastore&runInEmpty]]></url>
<url><![CDATA[/_dr/cron/fanout?queue=retryable-cron-tasks&endpoint=/_dr/task/deleteProberData&runInEmpty]]></url>
<description>
This job fires off a Datastore managed-export job that generates snapshot files in GCS.
It also enqueues a new task to wait on the completion of that job and then load the resulting
snapshot into bigquery.
This job clears out data from probers and runs once a week.
</description>
<!--
Keep google.registry.export.CheckBackupAction.MAXIMUM_BACKUP_RUNNING_TIME less than
this interval. -->
<schedule>every day 06:00</schedule>
<schedule>every monday 14:00</schedule>
<timezone>UTC</timezone>
<target>backend</target>
</cron>
@@ -219,24 +173,6 @@
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/fanout?queue=replay-commit-logs-to-sql&endpoint=/_dr/task/replayCommitLogsToSql&runInEmpty]]></url>
<description>
Replays recent commit logs from Datastore to the SQL secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/cron/replicateToDatastore]]></url>
<description>
Replays recent transactions from SQL to the Datastore secondary backend.
</description>
<schedule>every 3 minutes</schedule>
<target>backend</target>
</cron>
<cron>
<url><![CDATA[/_dr/task/wipeOutContactHistoryPii]]></url>
<description>

View File

@@ -120,7 +120,6 @@ class SyncRegistrarsSheet {
builder.put("registrarName", convert(registrar.getRegistrarName()));
builder.put("state", convert(registrar.getState()));
builder.put("ianaIdentifier", convert(registrar.getIanaIdentifier()));
builder.put("billingIdentifier", convert(registrar.getBillingIdentifier()));
builder.put("billingAccountMap", convert(registrar.getBillingAccountMap()));
builder.put("primaryContacts", convertContacts(contacts, byType(ADMIN)));
builder.put("techContacts", convertContacts(contacts, byType(TECH)));

View File

@@ -31,7 +31,7 @@ import static google.registry.monitoring.whitebox.CheckApiMetric.Status.UNKNOWN_
import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.PREMIUM;
import static google.registry.monitoring.whitebox.CheckApiMetric.Tier.STANDARD;
import static google.registry.pricing.PricingEngineProxy.isDomainPremium;
import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
import static google.registry.util.DomainNameUtils.canonicalizeHostname;
import static org.json.simple.JSONValue.toJSONString;
import com.google.common.collect.ImmutableList;
@@ -105,7 +105,7 @@ public class CheckApiAction implements Runnable {
String domainString;
InternetDomainName domainName;
try {
domainString = canonicalizeDomainName(nullToEmpty(domain));
domainString = canonicalizeHostname(nullToEmpty(domain));
domainName = validateDomainName(domainString);
} catch (IllegalArgumentException | EppException e) {
metricBuilder.status(INVALID_NAME);

View File

@@ -15,7 +15,6 @@
package google.registry.flows;
import static com.google.common.collect.Sets.intersection;
import static google.registry.model.EppResourceUtils.getLinkedDomainKeys;
import static google.registry.model.EppResourceUtils.isLinked;
import static google.registry.model.EppResourceUtils.loadByForeignKey;
import static google.registry.model.index.ForeignKeyIndex.loadAndGetKey;
@@ -54,8 +53,6 @@ import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import org.joda.time.DateTime;
/** Static utility functions for resource flows. */
@@ -63,12 +60,6 @@ public final class ResourceFlowUtils {
private ResourceFlowUtils() {}
/**
* In {@link #checkLinkedDomains(String, DateTime, Class, Function)}, check this (arbitrary)
* number of query results.
*/
private static final int FAILFAST_CHECK_COUNT = 5;
/** Check that the given registrarId corresponds to the owner of given resource. */
public static void verifyResourceOwnership(String myRegistrarId, EppResource resource)
throws EppException {
@@ -85,46 +76,18 @@ public final class ResourceFlowUtils {
* consistent, so we only check a few domains to fail fast.
*/
public static <R extends EppResource> void checkLinkedDomains(
final String targetId,
final DateTime now,
final Class<R> resourceClass,
final Function<DomainBase, ImmutableSet<?>> getPotentialReferences)
throws EppException {
final String targetId, final DateTime now, final Class<R> resourceClass) throws EppException {
EppException failfastException =
tm().isOfy()
? tm().doTransactionless(
() -> {
final ForeignKeyIndex<R> fki =
ForeignKeyIndex.load(resourceClass, targetId, now);
if (fki == null) {
return new ResourceDoesNotExistException(resourceClass, targetId);
}
// Query for the first few linked domains, and if found, actually load them.
// The query is eventually consistent and so might be very stale, but the
// direct load will not be stale, just non-transactional. If we find at least
// one actual reference then we can reliably fail. If we don't find any,
// we can't trust the query and need to do the full mapreduce.
Iterable<VKey<DomainBase>> keys =
getLinkedDomainKeys(fki.getResourceKey(), now, FAILFAST_CHECK_COUNT);
VKey<R> resourceVKey = fki.getResourceKey();
Predicate<DomainBase> predicate =
domain -> getPotentialReferences.apply(domain).contains(resourceVKey);
return tm().loadByKeys(keys).values().stream().anyMatch(predicate)
? new ResourceToDeleteIsReferencedException()
: null;
})
: tm().transact(
() -> {
final ForeignKeyIndex<R> fki =
ForeignKeyIndex.load(resourceClass, targetId, now);
if (fki == null) {
return new ResourceDoesNotExistException(resourceClass, targetId);
}
return isLinked(fki.getResourceKey(), now)
? new ResourceToDeleteIsReferencedException()
: null;
});
tm().transact(
() -> {
final ForeignKeyIndex<R> fki = ForeignKeyIndex.load(resourceClass, targetId, now);
if (fki == null) {
return new ResourceDoesNotExistException(resourceClass, targetId);
}
return isLinked(fki.getResourceKey(), now)
? new ResourceToDeleteIsReferencedException()
: null;
});
if (failfastException != null) {
throw failfastException;
}

View File

@@ -23,8 +23,8 @@ import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership;
import static google.registry.model.ResourceTransferUtils.denyPendingTransfer;
import static google.registry.model.ResourceTransferUtils.handlePendingTransferOnDelete;
import static google.registry.model.eppoutput.Result.Code.SUCCESS;
import static google.registry.model.eppoutput.Result.Code.SUCCESS_WITH_ACTION_PENDING;
import static google.registry.model.transfer.TransferStatus.SERVER_CANCELLED;
import static google.registry.persistence.transaction.TransactionManagerFactory.assertAsyncActionsAreAllowed;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
import com.google.common.collect.ImmutableSet;
@@ -38,13 +38,11 @@ import google.registry.flows.TransactionalFlow;
import google.registry.flows.annotations.ReportingSpec;
import google.registry.model.contact.ContactHistory;
import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.metadata.MetadataExtension;
import google.registry.model.eppcommon.AuthInfo;
import google.registry.model.eppcommon.StatusValue;
import google.registry.model.eppcommon.Trid;
import google.registry.model.eppoutput.EppResponse;
import google.registry.model.eppoutput.Result.Code;
import google.registry.model.reporting.HistoryEntry.Type;
import google.registry.model.reporting.IcannReportingTypes.ActivityReportField;
import java.util.Optional;
@@ -94,42 +92,28 @@ public final class ContactDeleteFlow implements TransactionalFlow {
extensionManager.register(MetadataExtension.class);
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
assertAsyncActionsAreAllowed();
DateTime now = tm().getTransactionTime();
checkLinkedDomains(targetId, now, ContactResource.class, DomainBase::getReferencedContacts);
checkLinkedDomains(targetId, now, ContactResource.class);
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);
verifyNoDisallowedStatuses(existingContact, DISALLOWED_STATUSES);
verifyOptionalAuthInfo(authInfo, existingContact);
if (!isSuperuser) {
verifyResourceOwnership(registrarId, existingContact);
}
Type historyEntryType;
Code resultCode;
ContactResource newContact;
if (tm().isOfy()) {
asyncTaskEnqueuer.enqueueAsyncDelete(
existingContact, tm().getTransactionTime(), registrarId, trid, isSuperuser);
newContact = existingContact.asBuilder().addStatusValue(StatusValue.PENDING_DELETE).build();
historyEntryType = Type.CONTACT_PENDING_DELETE;
resultCode = SUCCESS_WITH_ACTION_PENDING;
} else {
// Handle pending transfers on contact deletion.
newContact =
existingContact.getStatusValues().contains(StatusValue.PENDING_TRANSFER)
? denyPendingTransfer(existingContact, SERVER_CANCELLED, now, registrarId)
: existingContact;
// Wipe out PII on contact deletion.
newContact =
newContact.asBuilder().wipeOut().setStatusValues(null).setDeletionTime(now).build();
historyEntryType = Type.CONTACT_DELETE;
resultCode = SUCCESS;
}
// Handle pending transfers on contact deletion.
ContactResource newContact =
existingContact.getStatusValues().contains(StatusValue.PENDING_TRANSFER)
? denyPendingTransfer(existingContact, SERVER_CANCELLED, now, registrarId)
: existingContact;
// Wipe out PII on contact deletion.
newContact =
newContact.asBuilder().wipeOut().setStatusValues(null).setDeletionTime(now).build();
ContactHistory contactHistory =
historyBuilder.setType(historyEntryType).setContact(newContact).build();
if (!tm().isOfy()) {
handlePendingTransferOnDelete(existingContact, newContact, now, contactHistory);
}
historyBuilder.setType(Type.CONTACT_DELETE).setContact(newContact).build();
handlePendingTransferOnDelete(existingContact, newContact, now, contactHistory);
tm().insert(contactHistory);
tm().update(newContact);
return responseBuilder.setResultFromCode(resultCode).build();
return responseBuilder.setResultFromCode(SUCCESS).build();
}
}

View File

@@ -17,6 +17,8 @@ package google.registry.flows.custom;
import google.registry.flows.FlowMetadata;
import google.registry.flows.SessionMetadata;
import google.registry.model.eppinput.EppInput;
import java.util.Optional;
import javax.annotation.Nullable;
/**
* An abstract base class for all flow custom logic that stores the flow's {@link EppInput} and
@@ -24,26 +26,38 @@ import google.registry.model.eppinput.EppInput;
*/
public abstract class BaseFlowCustomLogic {
private final EppInput eppInput;
private final SessionMetadata sessionMetadata;
private final FlowMetadata flowMetadata;
@Nullable private final EppInput eppInput;
@Nullable private final SessionMetadata sessionMetadata;
@Nullable private final FlowMetadata flowMetadata;
/**
* Constructs a BaseFlowCustomLogic for the specified EPP flow state.
*
* <p>Note that it is possible for the EPP flow state to be absent, which happens when the custom
* logic is running outside the context of an EPP flow (e.g. {@link DomainPricingCustomLogic} in
* backend actions).
*/
protected BaseFlowCustomLogic(
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
@Nullable EppInput eppInput,
@Nullable SessionMetadata sessionMetadata,
@Nullable FlowMetadata flowMetadata) {
this.eppInput = eppInput;
this.sessionMetadata = sessionMetadata;
this.flowMetadata = flowMetadata;
}
protected EppInput getEppInput() {
return eppInput;
/** Returns the {@link EppInput}, which may be empty outside a flow context. */
protected Optional<EppInput> getEppInput() {
return Optional.ofNullable(eppInput);
}
protected SessionMetadata getSessionMetadata() {
return sessionMetadata;
/** Returns the {@link SessionMetadata}, which may be empty outside a flow context. */
protected Optional<SessionMetadata> getSessionMetadata() {
return Optional.ofNullable(sessionMetadata);
}
protected FlowMetadata getFlowMetadata() {
return flowMetadata;
/** Returns the {@link FlowMetadata}, which may be empty outside a flow context. */
protected Optional<FlowMetadata> getFlowMetadata() {
return Optional.ofNullable(flowMetadata);
}
}

View File

@@ -18,6 +18,7 @@ import google.registry.config.RegistryConfig.ConfigModule;
import google.registry.flows.FlowMetadata;
import google.registry.flows.SessionMetadata;
import google.registry.model.eppinput.EppInput;
import java.util.Optional;
/**
* A no-op base custom logic factory.
@@ -63,7 +64,10 @@ public class CustomLogicFactory {
}
public DomainPricingCustomLogic forDomainPricing(
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
return new DomainPricingCustomLogic(eppInput, sessionMetadata, flowMetadata);
Optional<EppInput> eppInput,
Optional<SessionMetadata> sessionMetadata,
Optional<FlowMetadata> flowMetadata) {
return new DomainPricingCustomLogic(
eppInput.orElse(null), sessionMetadata.orElse(null), flowMetadata.orElse(null));
}
}

View File

@@ -14,15 +14,17 @@
package google.registry.flows.custom;
import dagger.BindsOptionalOf;
import dagger.Module;
import dagger.Provides;
import google.registry.flows.FlowMetadata;
import google.registry.flows.SessionMetadata;
import google.registry.model.eppinput.EppInput;
import java.util.Optional;
/** Dagger module to provide instances of custom logic classes for EPP flows. */
@Module
public class CustomLogicModule {
public abstract class CustomLogicModule {
@Provides
static DomainCreateFlowCustomLogic provideDomainCreateFlowCustomLogic(
@@ -81,9 +83,20 @@ public class CustomLogicModule {
@Provides
static DomainPricingCustomLogic provideDomainPricingCustomLogic(
CustomLogicFactory factory,
EppInput eppInput,
SessionMetadata sessionMetadata,
FlowMetadata flowMetadata) {
Optional<EppInput> eppInput,
Optional<SessionMetadata> sessionMetadata,
Optional<FlowMetadata> flowMetadata) {
// Note that, for DomainPricingCustomLogic, the EPP flow state won't be present outside the
// context of an EPP flow.
return factory.forDomainPricing(eppInput, sessionMetadata, flowMetadata);
}
@BindsOptionalOf
abstract EppInput optionalEppInput();
@BindsOptionalOf
abstract SessionMetadata optionalSessionMetadata();
@BindsOptionalOf
abstract FlowMetadata optionalFlowMetadata();
}

View File

@@ -24,6 +24,7 @@ import google.registry.flows.domain.FeesAndCredits;
import google.registry.model.ImmutableObject;
import google.registry.model.eppinput.EppInput;
import google.registry.model.tld.Registry;
import javax.annotation.Nullable;
import org.joda.time.DateTime;
/**
@@ -33,8 +34,10 @@ import org.joda.time.DateTime;
*/
public class DomainPricingCustomLogic extends BaseFlowCustomLogic {
protected DomainPricingCustomLogic(
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
public DomainPricingCustomLogic(
@Nullable EppInput eppInput,
@Nullable SessionMetadata sessionMetadata,
@Nullable FlowMetadata flowMetadata) {
super(eppInput, sessionMetadata, flowMetadata);
}

View File

@@ -20,6 +20,7 @@ import static com.google.common.collect.ImmutableMap.toImmutableMap;
import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
import static google.registry.flows.ResourceFlowUtils.verifyTargetIdCount;
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
import static google.registry.flows.domain.DomainFlowUtils.getReservationTypes;
import static google.registry.flows.domain.DomainFlowUtils.handleFeeRequest;
import static google.registry.flows.domain.DomainFlowUtils.isAnchorTenant;
@@ -100,6 +101,7 @@ import org.joda.time.DateTime;
* @error {@link DomainFlowUtils.InvalidIdnDomainLabelException}
* @error {@link DomainFlowUtils.InvalidPunycodeException}
* @error {@link DomainFlowUtils.LeadingDashException}
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
* @error {@link DomainFlowUtils.RestoresAreAlwaysForOneYearException}
* @error {@link DomainFlowUtils.TldDoesNotExistException}
@@ -153,6 +155,7 @@ public final class DomainCheckFlow implements Flow {
boolean tldFirstTimeSeen = seenTlds.add(tld);
if (tldFirstTimeSeen && !isSuperuser) {
checkAllowedAccessToTld(registrarId, tld);
checkHasBillingAccount(registrarId, tld);
verifyNotInPredelegation(Registry.get(tld), now);
}
}

View File

@@ -17,6 +17,7 @@ package google.registry.flows.domain;
import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
import static google.registry.flows.ResourceFlowUtils.verifyTargetIdCount;
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
import static google.registry.flows.domain.DomainFlowUtils.validateDomainName;
import static google.registry.flows.domain.DomainFlowUtils.validateDomainNameWithIdnTables;
import static google.registry.flows.domain.DomainFlowUtils.verifyClaimsPeriodNotEnded;
@@ -60,6 +61,7 @@ import org.joda.time.DateTime;
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link DomainFlowUtils.BadCommandForRegistryPhaseException}
* @error {@link DomainFlowUtils.ClaimsPeriodEndedException}
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
* @error {@link DomainFlowUtils.TldDoesNotExistException}
* @error {@link DomainClaimsCheckNotAllowedWithAllocationTokens}
@@ -99,6 +101,7 @@ public final class DomainClaimsCheckFlow implements Flow {
if (seenTlds.add(tld)) {
if (!isSuperuser) {
checkAllowedAccessToTld(registrarId, tld);
checkHasBillingAccount(registrarId, tld);
Registry registry = Registry.get(tld);
DateTime now = clock.nowUtc();
verifyNotInPredelegation(registry, now);

View File

@@ -14,12 +14,14 @@
package google.registry.flows.domain;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static google.registry.flows.FlowUtils.persistEntityChanges;
import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
import static google.registry.flows.ResourceFlowUtils.verifyResourceDoesNotExist;
import static google.registry.flows.domain.DomainFlowUtils.COLLISION_MESSAGE;
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
import static google.registry.flows.domain.DomainFlowUtils.cloneAndLinkReferences;
import static google.registry.flows.domain.DomainFlowUtils.createFeeCreateResponse;
import static google.registry.flows.domain.DomainFlowUtils.getReservationTypes;
@@ -53,6 +55,7 @@ import static google.registry.persistence.transaction.TransactionManagerFactory.
import static google.registry.util.DateTimeUtils.END_OF_TIME;
import static google.registry.util.DateTimeUtils.leapSafeAddYears;
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.net.InternetDomainName;
@@ -79,6 +82,7 @@ import google.registry.model.billing.BillingEvent;
import google.registry.model.billing.BillingEvent.Flag;
import google.registry.model.billing.BillingEvent.Reason;
import google.registry.model.billing.BillingEvent.Recurring;
import google.registry.model.billing.BillingEvent.RenewalPriceBehavior;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainCommand;
import google.registry.model.domain.DomainCommand.Create;
@@ -114,7 +118,9 @@ import google.registry.model.tld.Registry.TldType;
import google.registry.model.tld.label.ReservationType;
import google.registry.tmch.LordnTaskUtils;
import java.util.Optional;
import javax.annotation.Nullable;
import javax.inject.Inject;
import org.joda.money.Money;
import org.joda.time.DateTime;
import org.joda.time.Duration;
@@ -180,6 +186,7 @@ import org.joda.time.Duration;
* @error {@link DomainFlowUtils.MalformedTcnIdException}
* @error {@link DomainFlowUtils.MaxSigLifeNotSupportedException}
* @error {@link DomainFlowUtils.MissingAdminContactException}
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
* @error {@link DomainFlowUtils.MissingClaimsNoticeException}
* @error {@link DomainFlowUtils.MissingContactTypeException}
* @error {@link DomainFlowUtils.MissingRegistrantException}
@@ -265,6 +272,7 @@ public final class DomainCreateFlow implements TransactionalFlow {
// registering premium domains.
if (!isSuperuser) {
checkAllowedAccessToTld(registrarId, registry.getTldStr());
checkHasBillingAccount(registrarId, registry.getTldStr());
boolean isValidReservedCreate = isValidReservedCreate(domainName, allocationToken);
verifyIsGaOrIsSpecialCase(tldState, isAnchorTenant, isValidReservedCreate, hasSignedMarks);
if (launchCreate.isPresent()) {
@@ -324,7 +332,10 @@ public final class DomainCreateFlow implements TransactionalFlow {
now);
// Create a new autorenew billing event and poll message starting at the expiration time.
BillingEvent.Recurring autorenewBillingEvent =
createAutorenewBillingEvent(domainHistoryKey, registrationExpirationTime);
createAutorenewBillingEvent(
domainHistoryKey,
registrationExpirationTime,
getRenewalPriceInfo(isAnchorTenant, allocationToken, feesAndCredits));
PollMessage.Autorenew autorenewPollMessage =
createAutorenewPollMessage(domainHistoryKey, registrationExpirationTime);
ImmutableSet.Builder<ImmutableObject> entitiesToSave = new ImmutableSet.Builder<>();
@@ -543,7 +554,9 @@ public final class DomainCreateFlow implements TransactionalFlow {
}
private Recurring createAutorenewBillingEvent(
Key<DomainHistory> domainHistoryKey, DateTime registrationExpirationTime) {
Key<DomainHistory> domainHistoryKey,
DateTime registrationExpirationTime,
RenewalPriceInfo renewalpriceInfo) {
return new BillingEvent.Recurring.Builder()
.setReason(Reason.RENEW)
.setFlags(ImmutableSet.of(Flag.AUTO_RENEW))
@@ -552,6 +565,8 @@ public final class DomainCreateFlow implements TransactionalFlow {
.setEventTime(registrationExpirationTime)
.setRecurrenceEndTime(END_OF_TIME)
.setParent(domainHistoryKey)
.setRenewalPriceBehavior(renewalpriceInfo.renewalPriceBehavior())
.setRenewalPrice(renewalpriceInfo.renewalPrice())
.build();
}
@@ -608,6 +623,48 @@ public final class DomainCreateFlow implements TransactionalFlow {
}
}
/**
* Determines the {@link RenewalPriceBehavior} and the renewal price that needs be stored in the
* {@link Recurring} billing events.
*
* <p>By default, the renewal price is calculated during the process of renewal. Renewal price
* should be the createCost if and only if the renewal price behavior in the {@link
* AllocationToken} is 'SPECIFIED'.
*/
static RenewalPriceInfo getRenewalPriceInfo(
boolean isAnchorTenant,
Optional<AllocationToken> allocationToken,
FeesAndCredits feesAndCredits) {
if (isAnchorTenant) {
if (allocationToken.isPresent()) {
checkArgument(
allocationToken.get().getRenewalPriceBehavior() != RenewalPriceBehavior.SPECIFIED,
"Renewal price behavior cannot be SPECIFIED for anchor tenant");
}
return RenewalPriceInfo.create(RenewalPriceBehavior.NONPREMIUM, null);
} else if (allocationToken.isPresent()
&& allocationToken.get().getRenewalPriceBehavior() == RenewalPriceBehavior.SPECIFIED) {
return RenewalPriceInfo.create(
RenewalPriceBehavior.SPECIFIED, feesAndCredits.getCreateCost());
} else {
return RenewalPriceInfo.create(RenewalPriceBehavior.DEFAULT, null);
}
}
/** A class to store renewal info used in {@link Recurring} billing events. */
@AutoValue
public abstract static class RenewalPriceInfo {
static DomainCreateFlow.RenewalPriceInfo create(
RenewalPriceBehavior renewalPriceBehavior, @Nullable Money renewalPrice) {
return new AutoValue_DomainCreateFlow_RenewalPriceInfo(renewalPriceBehavior, renewalPrice);
}
public abstract RenewalPriceBehavior renewalPriceBehavior();
@Nullable
public abstract Money renewalPrice();
}
private static ImmutableList<FeeTransformResponseExtension> createResponseExtensions(
Optional<FeeCreateCommandExtension> feeCreate, FeesAndCredits feesAndCredits) {
return feeCreate.isPresent()

View File

@@ -26,7 +26,6 @@ import static com.google.common.collect.Sets.difference;
import static com.google.common.collect.Sets.intersection;
import static com.google.common.collect.Sets.union;
import static google.registry.model.domain.DomainBase.MAX_REGISTRATION_YEARS;
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import static google.registry.model.tld.Registries.findTldForName;
import static google.registry.model.tld.Registries.getTlds;
import static google.registry.model.tld.Registry.TldState.GENERAL_AVAILABILITY;
@@ -124,6 +123,7 @@ import google.registry.model.reporting.DomainTransactionRecord.TransactionReport
import google.registry.model.reporting.HistoryEntry;
import google.registry.model.tld.Registry;
import google.registry.model.tld.Registry.TldState;
import google.registry.model.tld.Registry.TldType;
import google.registry.model.tld.label.ReservationType;
import google.registry.model.tld.label.ReservedList;
import google.registry.model.tmch.ClaimsListDao;
@@ -293,6 +293,21 @@ public class DomainFlowUtils {
}
}
/** Check if the registrar has the correct billing account map configured. */
public static void checkHasBillingAccount(String registrarId, String tld) throws EppException {
Registry registry = Registry.get(tld);
// Don't enforce the billing account check on test (i.e. prober/OT&E) TLDs.
if (registry.getTldType() == TldType.TEST) {
return;
}
if (!Registrar.loadByRegistrarIdCached(registrarId)
.get()
.getBillingAccountMap()
.containsKey(registry.getCurrency())) {
throw new DomainFlowUtils.MissingBillingAccountMapException(registry.getCurrency());
}
}
/** Check that the DS data that will be set on a domain is valid. */
static void validateDsData(Set<DelegationSignerData> dsData) throws EppException {
if (dsData != null) {
@@ -664,7 +679,7 @@ public class DomainFlowUtils {
break;
case RENEW:
builder.setAvailIfSupported(true);
fees = pricingLogic.getRenewPrice(registry, domainNameString, now, years).getFees();
fees = pricingLogic.getRenewPrice(registry, domainNameString, now, years, null).getFees();
break;
case RESTORE:
// The minimum allowable period per the EPP spec is 1, so, strangely, 1 year still has to be
@@ -1143,24 +1158,14 @@ public class DomainFlowUtils {
private static List<? extends HistoryEntry> findRecentHistoryEntries(
DomainBase domainBase, DateTime now, Duration maxSearchPeriod) {
if (tm().isOfy()) {
return auditedOfy()
.load()
.type(HistoryEntry.class)
.ancestor(domainBase)
.filter("modificationTime >=", now.minus(maxSearchPeriod))
.order("modificationTime")
.list();
} else {
return jpaTm()
.query(
"FROM DomainHistory WHERE modificationTime >= :beginning AND domainRepoId = "
+ ":repoId ORDER BY modificationTime ASC",
DomainHistory.class)
.setParameter("beginning", now.minus(maxSearchPeriod))
.setParameter("repoId", domainBase.getRepoId())
.getResultList();
}
return jpaTm()
.query(
"FROM DomainHistory WHERE modificationTime >= :beginning AND domainRepoId = "
+ ":repoId ORDER BY modificationTime ASC",
DomainHistory.class)
.setParameter("beginning", now.minus(maxSearchPeriod))
.setParameter("repoId", domainBase.getRepoId())
.getResultList();
}
/** Resource linked to this domain does not exist. */
@@ -1501,6 +1506,13 @@ public class DomainFlowUtils {
}
}
/** Registrar is missing the billing account map for this currency type. */
public static class MissingBillingAccountMapException extends AuthorizationErrorException {
public MissingBillingAccountMapException(CurrencyUnit currency) {
super("Registrar is not fully onboarded for TLDs that bill in " + currency);
}
}
/** Registrant is not allow-listed for this TLD. */
public static class RegistrantNotAllowedException extends StatusProhibitsOperationException {
public RegistrantNotAllowedException(String contactId) {

View File

@@ -102,11 +102,6 @@ public final class DomainInfoFlow implements Flow {
verifyOptionalAuthInfo(authInfo, domain);
flowCustomLogic.afterValidation(
AfterValidationParameters.newBuilder().setDomain(domain).build());
// In ofy, refetch all referenced resources.
if (tm().isOfy()) {
tm().loadByKeys(domain.getNameservers());
tm().loadByKeys(domain.getReferencedContacts());
}
// Registrars can only see a few fields on unauthorized domains.
// This is a policy decision that is left up to us by the rfcs.
DomainInfoData.Builder infoBuilder =

View File

@@ -14,28 +14,31 @@
package google.registry.flows.domain;
import static com.google.common.base.Preconditions.checkArgument;
import static google.registry.flows.domain.DomainFlowUtils.zeroInCurrency;
import static google.registry.pricing.PricingEngineProxy.getPricesForDomainName;
import static google.registry.util.DomainNameUtils.getTldFromDomainName;
import static google.registry.util.PreconditionsUtils.checkArgumentPresent;
import com.google.common.net.InternetDomainName;
import google.registry.flows.EppException;
import google.registry.flows.EppException.CommandUseErrorException;
import google.registry.flows.FlowScope;
import google.registry.flows.custom.DomainPricingCustomLogic;
import google.registry.flows.custom.DomainPricingCustomLogic.CreatePriceParameters;
import google.registry.flows.custom.DomainPricingCustomLogic.RenewPriceParameters;
import google.registry.flows.custom.DomainPricingCustomLogic.RestorePriceParameters;
import google.registry.flows.custom.DomainPricingCustomLogic.TransferPriceParameters;
import google.registry.flows.custom.DomainPricingCustomLogic.UpdatePriceParameters;
import google.registry.model.billing.BillingEvent.Recurring;
import google.registry.model.domain.fee.BaseFee;
import google.registry.model.domain.fee.BaseFee.FeeType;
import google.registry.model.domain.fee.Fee;
import google.registry.model.domain.token.AllocationToken;
import google.registry.model.pricing.PremiumPricingEngine.DomainPrices;
import google.registry.model.tld.Registry;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Optional;
import javax.annotation.Nullable;
import javax.inject.Inject;
import org.joda.money.CurrencyUnit;
import org.joda.money.Money;
@@ -46,7 +49,6 @@ import org.joda.time.DateTime;
* providing a {@link DomainPricingCustomLogic} implementation that operates on cross-TLD or per-TLD
* logic.
*/
@FlowScope
public final class DomainPricingLogic {
@Inject DomainPricingCustomLogic customLogic;
@@ -102,18 +104,63 @@ public final class DomainPricingLogic {
.build());
}
/** Returns a new renew price for the pricer. */
@SuppressWarnings("unused")
FeesAndCredits getRenewPrice(Registry registry, String domainName, DateTime dateTime, int years)
/** Returns a new renewal cost for the pricer. */
FeesAndCredits getRenewPrice(
Registry registry,
String domainName,
DateTime dateTime,
int years,
@Nullable Recurring recurringBillingEvent)
throws EppException {
DomainPrices domainPrices = getPricesForDomainName(domainName, dateTime);
BigDecimal renewCost = domainPrices.getRenewCost().multipliedBy(years).getAmount();
checkArgument(years > 0, "Number of years must be positive");
Money renewCost;
boolean isRenewCostPremiumPrice;
// recurring billing event is null if the domain is still available. Billing events are created
// in the process of domain creation.
if (recurringBillingEvent == null) {
DomainPrices domainPrices = getPricesForDomainName(domainName, dateTime);
renewCost = domainPrices.getRenewCost().multipliedBy(years);
isRenewCostPremiumPrice = domainPrices.isPremium();
} else {
switch (recurringBillingEvent.getRenewalPriceBehavior()) {
case DEFAULT:
DomainPrices domainPrices = getPricesForDomainName(domainName, dateTime);
renewCost = domainPrices.getRenewCost().multipliedBy(years);
isRenewCostPremiumPrice = domainPrices.isPremium();
break;
// if the renewal price behavior is specified, then the renewal price should be the same
// as the creation price, which is stored in the billing event as the renewal price
case SPECIFIED:
checkArgumentPresent(
recurringBillingEvent.getRenewalPrice(),
"Unexpected behavior: renewal price cannot be null when renewal behavior is"
+ " SPECIFIED");
renewCost = recurringBillingEvent.getRenewalPrice().get().multipliedBy(years);
isRenewCostPremiumPrice = false;
break;
// if the renewal price behavior is nonpremium, it means that the domain should be renewed
// at standard price of domains at the time, even if the domain is premium
case NONPREMIUM:
renewCost =
Registry.get(getTldFromDomainName(domainName))
.getStandardRenewCost(dateTime)
.multipliedBy(years);
isRenewCostPremiumPrice = false;
break;
default:
throw new IllegalArgumentException(
String.format(
"Unknown RenewalPriceBehavior enum value: %s",
recurringBillingEvent.getRenewalPriceBehavior()));
}
}
return customLogic.customizeRenewPrice(
RenewPriceParameters.newBuilder()
.setFeesAndCredits(
new FeesAndCredits.Builder()
.setCurrency(registry.getCurrency())
.addFeeOrCredit(Fee.create(renewCost, FeeType.RENEW, domainPrices.isPremium()))
.setCurrency(renewCost.getCurrencyUnit())
.addFeeOrCredit(
Fee.create(renewCost.getAmount(), FeeType.RENEW, isRenewCostPremiumPrice))
.build())
.setRegistry(registry)
.setDomainName(InternetDomainName.from(domainName))

View File

@@ -22,6 +22,7 @@ import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses
import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo;
import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership;
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewBillingEvent;
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewPollMessage;
import static google.registry.flows.domain.DomainFlowUtils.updateAutorenewRecurrenceEndTime;
@@ -106,6 +107,7 @@ import org.joda.time.Duration;
* @error {@link DomainFlowUtils.ExceedsMaxRegistrationYearsException}
* @error {@link DomainFlowUtils.FeesMismatchException}
* @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException}
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
* @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException}
* @error {@link DomainFlowUtils.UnsupportedFeeAttributeException}
@@ -153,7 +155,8 @@ public final class DomainRenewFlow implements TransactionalFlow {
Optional<FeeRenewCommandExtension> feeRenew =
eppInput.getSingleExtension(FeeRenewCommandExtension.class);
FeesAndCredits feesAndCredits =
pricingLogic.getRenewPrice(Registry.get(existingDomain.getTld()), targetId, now, years);
pricingLogic.getRenewPrice(
Registry.get(existingDomain.getTld()), targetId, now, years, null);
validateFeeChallenge(targetId, now, feeRenew, feesAndCredits);
flowCustomLogic.afterValidation(
AfterValidationParameters.newBuilder()
@@ -263,6 +266,7 @@ public final class DomainRenewFlow implements TransactionalFlow {
if (!isSuperuser) {
verifyResourceOwnership(registrarId, existingDomain);
checkAllowedAccessToTld(registrarId, existingDomain.getTld());
checkHasBillingAccount(registrarId, existingDomain.getTld());
}
verifyUnitIsYears(command.getPeriod());
// If the date they specify doesn't match the expiration, fail. (This is an idempotence check).

View File

@@ -20,6 +20,7 @@ import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence;
import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo;
import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership;
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewBillingEvent;
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewPollMessage;
import static google.registry.flows.domain.DomainFlowUtils.validateFeeChallenge;
@@ -104,6 +105,7 @@ import org.joda.time.DateTime;
* @error {@link DomainFlowUtils.DomainReservedException}
* @error {@link DomainFlowUtils.FeesMismatchException}
* @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException}
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
* @error {@link DomainFlowUtils.PremiumNameBlockedException}
* @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException}
@@ -216,6 +218,7 @@ public final class DomainRestoreRequestFlow implements TransactionalFlow {
verifyNotReserved(InternetDomainName.from(targetId), false);
verifyPremiumNameIsNotBlocked(targetId, now, registrarId);
checkAllowedAccessToTld(registrarId, existingDomain.getTld());
checkHasBillingAccount(registrarId, existingDomain.getTld());
}
// No other changes can be specified on a restore request.
if (!command.noChangesPresent()) {

View File

@@ -22,6 +22,7 @@ import static google.registry.flows.ResourceFlowUtils.verifyAuthInfo;
import static google.registry.flows.ResourceFlowUtils.verifyAuthInfoPresentForResourceTransfer;
import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses;
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
import static google.registry.flows.domain.DomainFlowUtils.updateAutorenewRecurrenceEndTime;
import static google.registry.flows.domain.DomainFlowUtils.validateFeeChallenge;
import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked;
@@ -111,6 +112,7 @@ import org.joda.time.DateTime;
* @error {@link DomainFlowUtils.CurrencyValueScaleException}
* @error {@link DomainFlowUtils.FeesMismatchException}
* @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException}
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
* @error {@link DomainFlowUtils.PremiumNameBlockedException}
* @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException}
@@ -273,6 +275,7 @@ public final class DomainTransferRequestFlow implements TransactionalFlow {
verifyTransferPeriod(period, superuserExtension);
if (!isSuperuser) {
checkAllowedAccessToTld(gainingClientId, existingDomain.getTld());
checkHasBillingAccount(gainingClientId, existingDomain.getTld());
verifyPremiumNameIsNotBlocked(targetId, now, gainingClientId);
}
}

Some files were not shown because too many files have changed in this diff Show More