1
0
mirror of https://github.com/google/nomulus synced 2026-05-24 16:51:49 +00:00

Compare commits

...

50 Commits

Author SHA1 Message Date
gbrodman
eded6813ab Add a bit of documentation about the replica config (#1488) 2022-01-13 15:44:04 -05:00
Rachel Guan
bbe5c058fe Add support for empty or null params for createTask() (#1448)
* Add support for null or empty params

* Add Null or empty check in CollectionUtils

* Remove content type header for empty params in POST request
2022-01-13 12:44:41 -05:00
Weimin Yu
4b0cf576f8 CommitLog handling code should call ofyTm (#1492)
* CommitLog handling code should call ofyTm

The tm() call will use JPA transaction manager after the switch-over to
SQL. These calls would lose their transaction semantics.

Both actions are to be invoked after the switchover in case we have to
switch back to Datastore as primary.
2022-01-13 12:33:19 -05:00
Michael Muller
045de3889b Allow database comparison when in read-only mode (#1490)
Note: this change was actually authored by @weiminyu, I'm checking it in for
expediency.
2022-01-13 09:32:49 -05:00
Weimin Yu
68fc4cd022 Only compare recent changes in Datastore and SQL (#1485)
* Only compare recent changes in Datastore and SQL

When comparing Datastore and SQL, ignore older History and EPP resource
objects. This cuts the run time in half compared with a full comparison.
The intention is to run a full comparison before the switch-over from
Datastore and SQL, and run this incremental comparison during the down
time.

The incremental comparison takes about 25 minutes in production.
Performance can be improved further by filtering out older billing
events (OneTime and Cancellation). However, we don't think further
optimization is worth the effort (considering that Recurring events
cannot be filtered since they are mutable but without lastUpdateTime).

Verified in Sandbox and prod with and without time filter.
2022-01-11 14:17:32 -05:00
Lai Jiang
ebe55146c3 Add a command to compare two escrow deposits (#1476)
We already have ValidateEscrowDepositCommand to check for internal
reference consistency of two deposits, i. e. making sure that all
contacts and hosts referenced by domains exist in the same deposit.
Therefore to compare whether two deposits are equal we only need to make
sure that they contain the same domains and registrars, assuming they
both pass the validation. We don't compare their contents directly
because the MapReduce deposit contains all contacts and domains whereas
the Beam deposit only contains referenced ones, making a direct
comparison impossible.

<!-- 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/1476)
<!-- Reviewable:end -->
2022-01-11 11:47:58 -05:00
gbrodman
807ddf46b9 Add replicateToDatastore cron job to prod (#1459)
No issues with this in sandbox so we should add it in prod
2022-01-10 16:38:25 -05:00
gbrodman
ff8f86090d Speed up updating of premium lists (#1482)
* Speed up updating of premium lists

There are two parts to this:
1. Don't load the premium entries in the command prompt (this isn't
necessary and we didn't display that information anyway).
2. Set a proper batch size (rather than just 1) when saving all the
premium entries. This means that we generate only one INSERT statement
rather than N statements.
2022-01-10 16:33:35 -05:00
gbrodman
5822f53e14 Allow usage of a read-only Postgres replica (#1470)
* Allow usage of a read-only Postgres replica

This adds the Dagger provider code for both the regular and the BEAM
environments, which are similar but not quite the same.

In addition, this demonstrates usage of the replica DB in the
RdePipeline. I tested this on alpha with a modified version of the
RdePipeline that attempts to write some dummy values to the database and
it failed with the expected message that one cannot write to a replica.
2022-01-07 13:21:22 -05:00
Rachel Guan
d04b3299aa Replace all existing vkey string to vkey.stringify() (#1430)
* Resolve ResaveEntityAction related conflicts

* Replace string with existing constants

* Remove solved TODOs related to ofy string to new vkey string

* Add a TODO for clean up

* Fix missing annotation
2022-01-07 12:11:15 -05:00
Lai Jiang
ceade7f954 Use the service account credential to delete unused versions (#1484) 2022-01-07 11:06:19 -05:00
Rachel Guan
1fcf63facd Use CloudTasksUtils to enqueue in GenerateEscrowDepositCommand (#1465)
* Use CloudTasksUtils to enqueue in GenerateEscrowDepositCommand

* Add CloudTasksUtil to RegistryToolComponent

* Remove header param
2022-01-06 15:36:22 -05:00
sarahcaseybot
f87e7eb6e6 Label classes to be deleted after the database migration - Batch 2 (#1477)
* Add some more annotations

* Add some more classes
2022-01-04 12:26:18 -05:00
Ben McIlwain
7a174e3ffa Make not logged in errors take precedence over extension errors (#1483)
* Make not logged in errors take precedence over extension errors

This is the right order to do the checks in, because if the registrar isn't
logged in (or their login failed) then they will have an empty set of declared
extensions, so any attempt to use an extension will throw a "Service
extension(s) must be declared at login" error. This is potentially misleading
because the actual error in this situation is that the registrar isn't logged
in at all.

This also fixes some flows that weren't declared final (but should be), or
methods declared final on final classes, which is superfluous.
2021-12-30 17:23:14 -05:00
Ben McIlwain
2b38ad8a25 Don't throw errors when existing premium list is empty (#1479)
* Don't throw errors when existing premium list is empty

This state is possible to get into when things go wrong and it shouldn't prevent
saving new revisions of the list. Note that it will continue to throw errors if
you attempt to save a new revision that is blank (which is usually a mistake).

See http://b/211774375
2021-12-30 17:22:43 -05:00
Ben McIlwain
eefb4c71aa Make premium list saving run as a single transaction (#1480)
* Make premium list saving run as a single transaction

This fixes the bug where the new revision is saved, but then execution gets
halted for some reason (e.g. request timeout) before the entries finish saving,
which leaves the DB in a bad state with a new top revision containing zero
entries, thus making everything standard.
2021-12-30 12:53:39 -05:00
Ben McIlwain
9d3cbd07fd Add pending action extension to server update poll messages (#1478)
* Add pending action extension to server update poll messages

This is necessary for the poll messages to contain the necessary context
explaining what domain name the relevant statuses were being added/removed
to/from.
2021-12-28 15:45:40 -05:00
Rachel Guan
69f8904692 Change resource key type from Key to String for ResaveEntityAction (#1475)
* Change resource key type from key to string for ResaveEntityAction

* Remove throws Exception related to VKey.create()
2021-12-22 15:22:33 -05:00
Lai Jiang
7bebe46695 Always use JPA TM on Beam (#1474)
* Always use JPA TM on Beam

Beam does not have access to datastore. Using ofy on Beam always results
in an error. Normally we should use database migration state schedule to
determine which TM to use, but on Beam there's no point in doing so. By
hard-coding the TM on beam to be SQL we can start testing features before
we migrate to SQL mode, for example the new RDE pipeline.

Also made a change to where the manual deposits are stored. It made more
sense to store them under manual/[direcitory]/[jobname]/ instead of
[jobname]/manual/[directory]/.

TESTED=deployed the pipeline on production and ran a job.
2021-12-22 14:43:25 -05:00
Michael Muller
156344e408 Small fixes to show_upgrade_diffs (#1473)
* Small fixes to show_upgrade_diffs

- fix fetch for an existing directory (we can't fetch to local "master"
  branch, use "origin/master" instead).
- add a newline after "removed" entries.
2021-12-20 11:44:34 -05:00
Lai Jiang
7e115fa23e Upgrade to Beam 2.34.0 (#1472)
This version of Beam does not have an explicit dependency on log4j.
There are a couple of other things that need to change due to the
upgrade.

1) The new version pulls in a dependency that is not on Maven Central
but on packages.confluent.io, so we need to explicitly add this repo.

2) The new version has a dependency on flogger 0.6 anb above , which removed
the LoggerConfig class (see google/flogger#142).
We therefore backported the class. In the long term we should do what
was suggested in the issue and use the normal JDK Logger config
directly.

3) The intSqlPipeline dependency graph also needs to be updated.

<!-- 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/1472)
<!-- Reviewable:end -->
2021-12-19 22:48:15 -05:00
sarahcaseybot
a23e3aa479 Label classes to delete after migration - Batch 1 (#1460)
* Label classes to delete after migration - Batch 1

* Format Fix
2021-12-16 15:16:18 -05:00
Weimin Yu
a9e792240e Ignore Prober related entities when comparing db (#1471)
* Ignore Prober related entities when comparing db

Deletion of prober entities are not propagated to SQL, resulting in two
types of mismatches: entity only exists in SQL, or copies of an entity
differ in deleteTime. Both cases should not count as erros.
2021-12-16 12:32:43 -05:00
Weimin Yu
4e6d14a8ae Make ImmutableObject.toString deterministic (#1469)
* Make ImmutableObject.toString deterministic

Remove the identity hash from the output. There is no use case
(including debugging) for it.

Removing it allows us to also remove some overriding implementations in
subclasses, and may also simplify tests.
2021-12-14 15:46:05 -05:00
Ben McIlwain
6a419eaeb6 Make more Gradle subproject tests work in IntelliJ (#1454) 2021-12-13 15:17:01 -05:00
Weimin Yu
e3e277a264 Completely remove log4j (#1466)
* Completely remove log4j

Prevent Gradle plugin from using log4j.
2021-12-13 14:18:31 -05:00
Michael Muller
01a5eadace Improve logging/comments for commit log forks (#1464)
* Improve logging/comments for commit log forks

It looks like the diff file lister is doing a second constructDiffSequence()
when a commit diff file is missing from the final sequence for purely
informational purposes.  However, this purpose wasn't clear when investigating
an actual case of this.

This PR adds another warning to hopefully make the log output a bit more
useful, and also promotes the "gap" log message to a warning and adds a
comment indicating the purpose of the second constructDiffSequence().
2021-12-13 13:15:41 -05:00
Weimin Yu
efd2f4ea30 Remove log4j from dependencies (#1462)
* Remove log4j from dependencies

log4j may be used by third-party jars, but its absence is not expected
to affect our troubleshooting needs.
2021-12-11 11:44:13 -05:00
Weimin Yu
561ea71390 Upgrade log4j (#1461)
* Upgrade log4j
2021-12-11 08:10:59 -05:00
Lai Jiang
8c1b178c94 Add more options to the generate escrow deposit command (#1453)
This adds two new options:

1) An option to run RDE in lenient mode.
2) An option to run RDE with the new Beam pipeline regardless of the datastore setting.

<!-- 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/1453)
<!-- Reviewable:end -->
2021-12-10 22:25:32 -05:00
Michael Muller
fe0353ae7d Remove unused variable "random" (#1458)
Remove variable that was rendered unused in commit
5158673f21 (consolidate all registry/TLD
classes)
2021-12-10 15:10:39 -05:00
gbrodman
360c198f4f Copy into PersistentSets in Domains if applicable (#1457)
* Copy into PersistentSets in Domains if applicable

This is similar to https://github.com/google/nomulus/pull/1456

It is possible that in some cases we could get an exception:

Caused by: org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: [parent]

The main cause of this, according to research (StackOverflow :P) is that
when Hibernate is calling the setters for these sets of children it's
losing the connection to the previously-managed child entity (which it
needs, in order to know how to delete orphans). Thus, the solution is to
maintain the same instance of the persistent set and just add/remove
to/from it as necessary.

This is complicated by the fact that sometimes the setter is given the
persistent set (the one we want to keep) and sometimes (?) it isn't.
2021-12-10 14:14:54 -05:00
gbrodman
e79e76e578 Copy DTRs into PersistentSet field if applicable in HistoryEntry (#1456)
In replay (and possibly in other cases) we're getting an exception:

Caused by: org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: google.registry.model.domain.DomainHistory.internalDomainTransactionRecords

The main cause of this, according to research (StackOverflow :P) is that
when Hibernate is calling the setters for these sets of children it's
losing the connection to the previously-managed child entity (which it
needs, in order to know how to delete orphans). Thus, the solution is to
maintain the same instance of the persistent set and just add/remove
to/from it as necessary.

This is complicated by the fact that sometimes the setter is given the
persistent set (the one we want to keep) and sometimes (?) it isn't. We
will need to try this out to be sure.
2021-12-09 11:56:58 -05:00
Ben McIlwain
a5dbfceae1 Allow command to enqueue poll messages for multiple registrars (#1446)
* Allow command to enqueue poll messages for multiple registrars
2021-12-08 16:33:28 -05:00
gbrodman
647d6a1b08 Update task-tree dependency (#1452)
see https://b.corp.google.com/issues/208629747 for details; this brings
in an old Gradle version as a transitive dependency

Version 2.x of the task-tree plugin uses Gradle 6.8 (or higher)
2021-12-07 17:03:46 -05:00
Lai Jiang
ec417e9258 Truncate web WHOIS request path when recording metrics (#1451)
The cardinality for the paths is unbound, and could generate a huge
amount of metrics if someone is scanning our web WHOIS endpoint.

See b/209488119 for an example of such a sudden increase in metric volume.

<!-- 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/1451)
<!-- Reviewable:end -->
2021-12-07 17:01:29 -05:00
Rachel Guan
55bef58063 Use simple class name of a class in stringify() (#1435)
* Keep CLASS_REGISTRY and CLASS_NAME_REGISTRY up to date

* Use simple class name in vkey string
2021-12-07 11:49:50 -05:00
Rachel Guan
ecc3d9f75d Extract CLASS_REGISTRY from VKeyTranslatorFactory (#1440)
* Add annotation for unit test file

* Extract CLASS_REGISTRY from VKeyTranslatorFactory

* Improve test cases and docs
2021-12-06 16:41:17 -05:00
gbrodman
f23d2ca315 Add replicateToDatastore to non-prod cron files (#1450)
* Add replicateToDatastore to non-prod cron files

This shouldn't do anything yet (since ReplicateToDatastoreAction checks the
migration state before doing anything) but we'll want to have this in
place.
2021-12-06 12:54:55 -05:00
Rachel Guan
ac7cca35cd Replace schedule time calculation with createTask() variation from CloudTasksUtils (#1443) 2021-12-03 15:27:28 -05:00
gbrodman
d663437cf2 Filter out empty dsData objects, not just null ones (#1449)
* Filter out empty dsData objects, not just null ones

Hibernate/SQL will get mad if the digest is null or empty, and
previously we only check for null. We should filter out empty digests as
well.
2021-12-03 13:54:18 -05:00
Weimin Yu
0ceebc1d8b Properly handle Joda Money in JPA (#1447)
* Properly handle Joda Money in JPA

Joda Money has BigDecimal as amount, which is mapped to a numeric(19,2)
column in the database. As a result, the Money amount load from DB has
scale 2. This becomes a problem with currencies such as JPY, which
requires scale to be 0. To properly load a currency, we must adjust the
scale post-load.

The current approach, which uses Hibernate component mapping,  puts the
burden of post-load cleanup on each entity type that uses Money. It is
easy to forget this, as we just discovered.

This PR uses a CompositeUserType to map Money. It adjusts the scale
properly when loading Money instances. Although CompositeUserType appear
to be deprecated in Hibernate 6, it is the only proper solution right
now for mapping non-owned classes.
2021-12-03 13:52:21 -05:00
gbrodman
6006e253a4 Remove orphaned DomainTransactionRecords (#1444)
This is what's causing https://b.corp.google.com/issues/208274109, where
there are DTR rows with null foreign key values.

We should probably wait to make the columns officially non-null until we
get this in and verify that we can do so.
2021-12-02 16:41:54 -05:00
sarahcaseybot
f5d9ee4e4d Fix missing hostPendingActionNotificationResponses in PollMessage.OneTime (#1426) 2021-12-02 16:06:02 -05:00
Ben McIlwain
39b613fe81 Add a nomulus tool command to enqueue a poll message (#1441)
* Add a nomulus tool command to enqueue a poll message
2021-12-02 13:06:22 -05:00
gbrodman
207fc49d64 Write commit logs during SQL->DS replay (#1438)
* Write commit logs during SQL->DS replay

Previously, we had no way to ignore read-only mode while still writing
commit log backups. Now, we added this so we can write commit logs in
the SQL->DS replay.

Note:
- When moving to either of the DATASTORE_PRIMARY stages, one must
manually set the SqlReplayCheckpoint first. We don't write to SQL with
backup in this stage because we already wrote the transaction in
question to Datastore. The fact that we manually set the replay
checkpoint means that we'll ignore the extra commit logs that might
otherwise cause problems if we switched back and forth from
DATASTORE_PRIMARY to SQL_PRIMARY.

- The commit logs written during the SQL_PRIMARY phase will, ideally, be
unused. We write them here only so that in the event of a rollback to
Datastore, we will have them for RDE purposes.
2021-12-01 11:31:03 -05:00
Rachel Guan
f054bb2694 Add method to show readable key info (#1431)
* Resolve conflict

* Apply new printing method to existing command
2021-12-01 10:46:27 -05:00
gbrodman
40b7a23d88 Filter missing dsData digests during replay (#1439)
This is a result of bad data (we should never allow a null digest) and
we'll need to fix that separately, but this allows us to not fail on
this during replay
2021-11-30 15:37:42 -05:00
gbrodman
05e36f378b Add NotLoggedInException tests to flows and flow docs (#1437)
* Add NotLoggedInException tests to flows and flow docs

This wasn't included in flows.md before because the test existed in
ResourceFlowTestCase. So even though the exception could be thrown and
even though this was tested, it wasn't picked up in the documentation
because the documentation is picked up from the corresponding concrete
test class.
2021-11-30 15:00:05 -05:00
Weimin Yu
a82e6a05af Validate SQL with Datastore being Primary (#1436)
* Validate SQL with Datastore being primary

Validates the data asynchronously replicated from Datastore to SQL.
This is a short term tool optimized for the current production database.

Tested in production.
2021-11-30 12:57:49 -05:00
414 changed files with 14749 additions and 8933 deletions

View File

@@ -20,6 +20,10 @@ buildscript {
// Lock buildscript dependencies.
configurations.classpath {
resolutionStrategy.activateDependencyLocking()
// log4j has high-profile security vulnerabilities. It's a transitive
// dependency used by Gradle itself during build, and not strictly needed.
exclude group: 'org.apache.logging.log4j'
}
}
@@ -46,7 +50,7 @@ plugins {
id 'com.diffplug.gradle.spotless' version '3.25.0'
id 'jacoco'
id 'com.dorongold.task-tree' version '1.5'
id 'com.dorongold.task-tree' version '2.1.0'
}
node {
@@ -182,6 +186,12 @@ allprojects {
println "Java dependencies: Using Maven Central..."
mavenCentral()
google()
maven {
url "https://packages.confluent.io/maven/"
content {
includeGroup "io.confluent"
}
}
}
}

View File

@@ -4,7 +4,7 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,7 +4,7 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,8 +4,8 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,8 +4,8 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,7 +4,7 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,7 +4,7 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,8 +4,8 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -4,8 +4,8 @@
com.google.auto.value:auto-value-annotations:1.7.4
com.google.code.findbugs:jsr305:3.0.2
com.google.errorprone:error_prone_annotations:2.5.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.1-jre
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@@ -24,6 +24,9 @@
{
"moduleLicense": "Apache License v2.0"
},
{
"moduleLicense": "Apache License V2.0"
},
{
"moduleLicense": "Apache License, Version 2.0"
},

View File

@@ -88,8 +88,8 @@ PRESUBMITS = {
r".*Copyright 20\d{2} The Nomulus Authors\. All Rights Reserved\.",
("java", "js", "soy", "sql", "py", "sh", "gradle"), {
".git", "/build/", "/generated/", "/generated_tests/",
"node_modules/", "LocalStorageHelper.java", "FakeStorageRpc.java",
"registrar_bin.", "registrar_dbg.", "google-java-format-diff.py",
"node_modules/", "LoggerConfig.java", "registrar_bin.",
"registrar_dbg.", "google-java-format-diff.py",
"nomulus.golden.sql", "soyutils_usegoog.js", "javascript/checks.js"
}, REQUIRED):
"File did not include the license header.",

View File

@@ -138,8 +138,8 @@ def main():
if args.directory and os.path.exists(dir):
pr(f'Reusing directory {dir}\n')
os.chdir(dir)
run('git', 'fetch', 'git@github.com:google/nomulus', 'master:master')
run('git', 'checkout', 'master')
run('git', 'fetch', 'git@github.com:google/nomulus', 'master')
run('git', 'checkout', 'origin/master')
else:
run('git', 'clone', 'git@github.com:google/nomulus', dir)
os.chdir(dir)
@@ -175,7 +175,7 @@ def main():
# Print the list of packages that were removed.
for package in old_packages:
if package not in new_packages:
pr('removed ', b':'.join(package))
pr('removed ', b':'.join(package), '\n')
else:
pr('Package versions not updated!\n')

View File

@@ -257,13 +257,12 @@ dependencies {
compile deps['org.apache.beam:beam-sdks-java-core']
compile deps['org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core']
compile deps['org.apache.beam:beam-sdks-java-io-google-cloud-platform']
testCompile deps['org.apache.commons:commons-lang3']
compile deps['org.apache.commons:commons-lang3']
testCompile deps['org.apache.commons:commons-text']
testCompile deps['org.apache.ftpserver:ftplet-api']
testCompile deps['org.apache.ftpserver:ftpserver-core']
compile deps['org.apache.httpcomponents:httpclient']
compile deps['org.apache.httpcomponents:httpcore']
runtime deps['org.apache.logging.log4j:log4j-core']
testCompile deps['org.apache.sshd:sshd-core']
testCompile deps['org.apache.sshd:sshd-scp']
testCompile deps['org.apache.sshd:sshd-sftp']
@@ -677,9 +676,9 @@ Optional<List<String>> getToolArgsList() {
// To run the nomulus tools with these command line tokens:
// "--foo", "bar baz", "--qux=quz"
// gradle registryTool --args="--foo 'bar baz' --qux=quz"
// gradle core:registryTool --args="--foo 'bar baz' --qux=quz"
// or:
// gradle registryTool --PtoolArgs="--foo|bar baz|--qux=quz"
// gradle core:registryTool -PtoolArgs="--foo|bar baz|--qux=quz"
// Note that the delimiting pipe can be backslash escaped if it is part of a
// parameter.
ext.createToolTask = {
@@ -703,6 +702,12 @@ createToolTask(
'google.registry.tools.DevTool',
sourceSets.nonprod)
createToolTask(
'initSqlPipeline', 'google.registry.beam.initsql.InitSqlPipeline')
createToolTask(
'validateSqlPipeline', 'google.registry.beam.comparedb.ValidateSqlPipeline')
createToolTask(
'jpaDemoPipeline', 'google.registry.beam.common.JpaDemoPipeline')
@@ -711,30 +716,6 @@ createToolTask(
'createSyntheticHistoryEntries',
'google.registry.tools.javascrap.CreateSyntheticHistoryEntriesPipeline')
project.tasks.create('initSqlPipeline', JavaExec) {
main = 'google.registry.beam.initsql.InitSqlPipeline'
doFirst {
getToolArgsList().ifPresent {
args it
}
def isDirectRunner =
args.contains('DirectRunner') || args.contains('--runner=DirectRunner')
// The dependency containing DirectRunner is intentionally excluded from the
// production binary, so that it won't be chosen by mistake: we definitely do
// not want to use it for the real jobs, yet DirectRunner is the default if
// the user forgets to override it.
// DirectRunner is required for tests and is already on testRuntimeClasspath.
// For simplicity, we add testRuntimeClasspath to this task's classpath instead
// of defining a new configuration just for the DirectRunner dependency.
classpath =
isDirectRunner
? sourceSets.main.runtimeClasspath.plus(sourceSets.test.runtimeClasspath)
: sourceSets.main.runtimeClasspath
}
}
// 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 \

View File

@@ -5,11 +5,13 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -22,111 +24,115 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.6
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -137,7 +143,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -153,32 +159,36 @@ com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -195,38 +205,41 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.6.2
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -259,6 +272,8 @@ org.postgresql:postgresql:42.2.18
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
@@ -266,8 +281,8 @@ org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,11 +5,13 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -22,109 +24,114 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.6
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -135,8 +142,8 @@ 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.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
@@ -151,30 +158,34 @@ com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
@@ -190,37 +201,40 @@ 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.5
joda-time:joda-time:2.10.10
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.6.2
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -252,6 +266,8 @@ org.postgresql:postgresql:42.2.18
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
@@ -259,8 +275,8 @@ org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,112 +28,116 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.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-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -142,7 +148,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -161,32 +167,36 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -203,41 +213,43 @@ 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.5
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -273,6 +285,8 @@ 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
@@ -281,8 +295,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,112 +28,116 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.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-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -142,7 +148,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -161,32 +167,36 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -203,40 +213,42 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -272,6 +284,8 @@ 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
@@ -280,8 +294,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,11 +5,13 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -22,111 +24,115 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.6
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -137,7 +143,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -153,32 +159,36 @@ com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -195,38 +205,41 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.6.2
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -259,6 +272,8 @@ org.postgresql:postgresql:42.2.18
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
@@ -266,8 +281,8 @@ org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,11 +5,13 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -22,109 +24,114 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.6
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -135,8 +142,8 @@ 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.31.4
com.google.protobuf:protobuf-java-util:3.15.3
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
com.google.template:soy:2021-02-01
@@ -151,30 +158,34 @@ com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
@@ -190,38 +201,41 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.6.2
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -253,6 +267,8 @@ org.postgresql:postgresql:42.2.18
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
@@ -260,8 +276,8 @@ org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,111 +28,115 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -141,7 +147,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -160,32 +166,36 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -202,41 +212,43 @@ 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.5
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -271,6 +283,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
@@ -279,8 +293,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,111 +28,115 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -141,7 +147,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -160,32 +166,36 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -202,41 +212,43 @@ 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.5
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -271,6 +283,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
@@ -279,8 +293,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,111 +28,115 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -141,7 +147,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -160,32 +166,36 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -202,41 +212,43 @@ 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.5
joda-time:joda-time:2.10.10
junit:junit:4.13.1
net.arnx:nashorn-promise:0.1.1
net.bytebuddy:byte-buddy:1.10.17
net.java.dev.jna:jna:5.5.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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -271,6 +283,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
@@ -279,8 +293,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.1
com.fasterxml.jackson.core:jackson-core:2.12.1
com.fasterxml.jackson.core:jackson-databind:2.12.1
com.fasterxml.jackson:jackson-bom:2.12.1
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,112 +28,116 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.31.3
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api-client:google-api-client:1.32.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.79.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.31.0
com.google.apis:google-api-services-storage:v1-rev20210127-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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.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-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.94.1
com.google.cloud:google-cloud-core:1.94.3
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.113.12
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:30.1.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.39.0
com.google.http-client:google-http-client-appengine:1.39.0
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-jackson2:1.39.0
com.google.http-client:google-http-client-apache-v2:1.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -142,7 +148,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.31.4
com.google.oauth-client:google-oauth-client:1.31.5
com.google.protobuf:protobuf-java-util:3.17.3
com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.6
@@ -161,32 +167,36 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.65
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -203,40 +213,42 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.5
org.apache.commons:commons-lang3:3.8.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.8.0
org.checkerframework:checker-qual:3.18.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
@@ -272,6 +284,8 @@ 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
@@ -280,8 +294,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,11 +5,13 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.3
com.fasterxml.jackson.core:jackson-core:2.12.3
com.fasterxml.jackson.core:jackson-databind:2.12.3
com.fasterxml.jackson:jackson-bom:2.12.3
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -22,61 +24,60 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.83.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.32.1
@@ -87,38 +88,43 @@ 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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:1.95.4
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.6
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:30.1.1-jre
@@ -126,10 +132,10 @@ 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.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -162,32 +168,36 @@ com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.102
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -204,30 +214,34 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-direct-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-direct-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
@@ -236,7 +250,6 @@ org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.6.2
org.apache.mina:mina-core:2.0.4
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
@@ -247,7 +260,7 @@ org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.18.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
@@ -307,6 +320,8 @@ 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
@@ -316,8 +331,8 @@ org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,11 +5,13 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.3
com.fasterxml.jackson.core:jackson-core:2.12.3
com.fasterxml.jackson.core:jackson-databind:2.12.3
com.fasterxml.jackson:jackson-bom:2.12.3
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -22,60 +24,59 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
com.google.api-client:google-api-client-appengine:1.31.3
com.google.api-client:google-api-client-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.83.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.32.1
@@ -86,37 +87,43 @@ 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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
com.google.cloud.sql:jdbc-socket-factory-core:1.2.1
com.google.cloud:google-cloud-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:1.95.4
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.6
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:30.1.1-jre
@@ -124,10 +131,10 @@ 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.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -160,30 +167,34 @@ com.zaxxer:HikariCP:3.4.5
commons-codec:commons-codec:1.15
commons-logging:commons-logging:1.2
dnsjava:dnsjava:3.3.1
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.102
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
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.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
it.unimi.dsi:fastutil:6.5.16
javax.activation:activation:1.1
@@ -199,30 +210,34 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-direct-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-direct-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
@@ -231,7 +246,6 @@ org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.6.2
org.apache.mina:mina-core:2.0.4
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
@@ -242,7 +256,7 @@ org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.18.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
@@ -301,6 +315,8 @@ 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
@@ -310,8 +326,8 @@ org.testcontainers:testcontainers:1.15.2
org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.3
com.fasterxml.jackson.core:jackson-core:2.12.3
com.fasterxml.jackson.core:jackson-databind:2.12.3
com.fasterxml.jackson:jackson-bom:2.12.3
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,61 +28,60 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.83.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.32.1
@@ -91,39 +92,44 @@ 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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.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-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:1.95.4
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:30.1.1-jre
@@ -131,10 +137,10 @@ 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.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -170,33 +176,37 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.102
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.github.java-diff-utils:java-diff-utils:4.9
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
io.grpc:grpc-alts:1.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -213,31 +223,35 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-direct-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-direct-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
@@ -246,8 +260,6 @@ org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.apache.mina:mina-core:2.0.4
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
@@ -258,7 +270,7 @@ org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.18.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
@@ -320,6 +332,8 @@ 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
@@ -330,8 +344,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -5,15 +5,17 @@ antlr:antlr:2.7.7
aopalliance:aopalliance:1.0
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.12.3
com.fasterxml.jackson.core:jackson-core:2.12.3
com.fasterxml.jackson.core:jackson-databind:2.12.3
com.fasterxml.jackson:jackson-bom:2.12.3
com.fasterxml.jackson.core:jackson-annotations:2.12.4
com.fasterxml.jackson.core:jackson-core:2.12.4
com.fasterxml.jackson.core:jackson-databind:2.12.4
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.4
com.fasterxml.jackson:jackson-bom:2.12.4
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
@@ -26,61 +28,60 @@ 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-x86asm:1.0.2
com.github.rholder:guava-retrying:2.0.0
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-jackson2:1.30.10
com.google.api-client:google-api-client-jackson2:1.31.3
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.1
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.14.0
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.90.3
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:grpc-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:grpc-google-common-protos:1.18.1
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:1.5.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1alpha2:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.105.5
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.105.5
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.14.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:1.16.1
com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.92.0
com.google.api.grpc:proto-google-cloud-pubsublite-v1:0.7.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.125.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.96.2
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.2.0
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.12.1
com.google.api.grpc:grpc-google-common-protos:2.3.2
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.1.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.125.0
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.125.0
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.1.0
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.1.0
com.google.api.grpc:proto-google-cloud-datastore-v1:0.91.3
com.google.api.grpc:proto-google-cloud-firestore-v1:3.0.2
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.96.2
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.2.0
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:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-v1:2.0.2
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.12.1
com.google.api.grpc:proto-google-cloud-spanner-v1:6.12.1
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.3.2
com.google.api.grpc:proto-google-iam-v1:1.0.14
com.google.api:api-common:1.10.4
com.google.api:gax-grpc:1.66.0
com.google.api:gax-httpjson:0.83.0
com.google.api:gax:1.66.0
com.google.api.grpc:proto-google-common-protos:2.5.0
com.google.api.grpc:proto-google-iam-v1:1.1.0
com.google.api:api-common:2.0.2
com.google.api:gax-grpc:2.4.1
com.google.api:gax-httpjson:0.88.0
com.google.api:gax:2.4.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-bigquery:v2-rev20200916-1.30.10
com.google.apis:google-api-services-clouddebugger:v2-rev20200501-1.30.10
com.google.apis:google-api-services-bigquery:v2-rev20210813-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-cloudresourcemanager:v1-rev20200720-1.30.10
com.google.apis:google-api-services-dataflow:v1b3-rev20200713-1.30.10
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20210815-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-healthcare:v1beta1-rev20200713-1.30.10
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.30.10
com.google.apis:google-api-services-healthcare:v1-rev20210806-1.32.1
com.google.apis:google-api-services-iamcredentials:v1-rev20201022-1.31.0
com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0
com.google.apis:google-api-services-pubsub:v1-rev20200713-1.30.10
com.google.apis:google-api-services-pubsub:v1-rev20210809-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-rev20210127-1.32.1
@@ -91,39 +92,44 @@ 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-testing:1.9.86
com.google.auth:google-auth-library-credentials:0.26.0
com.google.auth:google-auth-library-oauth2-http:0.26.0
com.google.auth:google-auth-library-credentials:1.1.0
com.google.auth:google-auth-library-oauth2-http:1.1.0
com.google.auto.service:auto-service-annotations:1.0-rc7
com.google.auto.value:auto-value-annotations:1.8.1
com.google.auto.value:auto-value-annotations:1.8.2
com.google.auto.value:auto-value:1.7.4
com.google.cloud.bigdataoss:gcsio:2.1.6
com.google.cloud.bigdataoss:util:2.1.6
com.google.cloud.bigtable:bigtable-client-core:1.16.0
com.google.cloud.bigdataoss:gcsio:2.2.2
com.google.cloud.bigdataoss:util:2.2.2
com.google.cloud.bigtable:bigtable-client-core:1.23.1
com.google.cloud.bigtable:bigtable-metrics-api:1.23.1
com.google.cloud.datastore:datastore-v1-proto-client:1.6.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-bigquery:1.122.2
com.google.cloud:google-cloud-bigquerystorage:1.5.5
com.google.cloud:google-cloud-bigtable:1.14.0
com.google.cloud:google-cloud-core-grpc:1.93.9
com.google.cloud:google-cloud-core-http:1.95.4
com.google.cloud:google-cloud-core:1.95.4
com.google.cloud:google-cloud-bigquery:2.1.2
com.google.cloud:google-cloud-bigquerystorage:2.1.0
com.google.cloud:google-cloud-bigtable:1.27.1
com.google.cloud:google-cloud-core-grpc:2.1.0
com.google.cloud:google-cloud-core-http:2.1.0
com.google.cloud:google-cloud-core:2.1.0
com.google.cloud:google-cloud-firestore:3.0.2
com.google.cloud:google-cloud-nio:0.123.4
com.google.cloud:google-cloud-pubsub:1.110.0
com.google.cloud:google-cloud-pubsublite:0.7.0
com.google.cloud:google-cloud-pubsub:1.114.2
com.google.cloud:google-cloud-pubsublite:1.2.0
com.google.cloud:google-cloud-secretmanager:1.4.0
com.google.cloud:google-cloud-spanner:2.0.2
com.google.cloud:google-cloud-spanner:6.12.1
com.google.cloud:google-cloud-storage:1.118.0
com.google.cloud:google-cloud-tasks:1.33.2
com.google.cloud:grpc-gcp:1.1.0
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.0.2
com.google.code.findbugs:jsr305:3.0.2
com.google.code.gson:gson:2.8.7
com.google.code.gson:gson:2.8.8
com.google.common.html.types:types:1.0.6
com.google.dagger:dagger:2.33
com.google.errorprone:error_prone_annotations:2.7.1
com.google.errorprone:error_prone_annotations:2.9.0
com.google.escapevelocity:escapevelocity:0.9.1
com.google.flogger:flogger-system-backend:0.5.1
com.google.flogger:flogger:0.5.1
com.google.flogger:google-extensions:0.5.1
com.google.flatbuffers:flatbuffers-java:1.12.0
com.google.flogger:flogger-system-backend:0.7.3
com.google.flogger:flogger:0.7.3
com.google.flogger:google-extensions:0.6
com.google.guava:failureaccess:1.0.1
com.google.guava:guava-testlib:30.1.1-jre
com.google.guava:guava:30.1.1-jre
@@ -131,10 +137,10 @@ 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.39.2
com.google.http-client:google-http-client-appengine:1.39.2
com.google.http-client:google-http-client-gson:1.39.2
com.google.http-client:google-http-client-gson:1.40.0
com.google.http-client:google-http-client-jackson2:1.39.2
com.google.http-client:google-http-client-protobuf:1.33.0
com.google.http-client:google-http-client:1.39.2
com.google.http-client:google-http-client:1.40.0
com.google.inject.extensions:guice-multibindings:4.1.0
com.google.inject:guice:4.1.0
com.google.j2objc:j2objc-annotations:1.3
@@ -170,33 +176,37 @@ dnsjava:dnsjava:3.3.1
guru.nidi.com.kitfox:svgSalamander:1.1.3
guru.nidi:graphviz-java-all-j2v8:0.17.0
guru.nidi:graphviz-java:0.17.0
io.dropwizard.metrics:metrics-core:3.2.6
io.github.classgraph:classgraph:4.8.102
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.github.java-diff-utils:java-diff-utils:4.9
io.grpc:grpc-alts:1.39.0
io.grpc:grpc-api:1.39.0
io.grpc:grpc-auth:1.39.0
io.grpc:grpc-context:1.39.0
io.grpc:grpc-core:1.39.0
io.grpc:grpc-grpclb:1.39.0
io.grpc:grpc-netty-shaded:1.39.0
io.grpc:grpc-netty:1.32.2
io.grpc:grpc-protobuf-lite:1.39.0
io.grpc:grpc-protobuf:1.39.0
io.grpc:grpc-stub:1.39.0
io.netty:netty-buffer:4.1.51.Final
io.netty:netty-codec-http2:4.1.51.Final
io.netty:netty-codec-http:4.1.51.Final
io.netty:netty-codec-socks:4.1.51.Final
io.netty:netty-codec:4.1.51.Final
io.netty:netty-common:4.1.51.Final
io.netty:netty-handler-proxy:4.1.51.Final
io.netty:netty-handler:4.1.51.Final
io.netty:netty-resolver:4.1.51.Final
io.grpc:grpc-alts:1.40.1
io.grpc:grpc-api:1.40.1
io.grpc:grpc-auth:1.40.1
io.grpc:grpc-context:1.40.1
io.grpc:grpc-core:1.40.1
io.grpc:grpc-grpclb:1.40.1
io.grpc:grpc-netty-shaded:1.40.1
io.grpc:grpc-netty:1.40.0
io.grpc:grpc-protobuf-lite:1.40.1
io.grpc:grpc-protobuf:1.40.1
io.grpc:grpc-stub:1.40.1
io.netty:netty-buffer:4.1.52.Final
io.netty:netty-codec-http2:4.1.52.Final
io.netty:netty-codec-http:4.1.52.Final
io.netty:netty-codec-socks:4.1.52.Final
io.netty:netty-codec:4.1.52.Final
io.netty:netty-common:4.1.52.Final
io.netty:netty-handler-proxy:4.1.52.Final
io.netty:netty-handler:4.1.52.Final
io.netty:netty-resolver:4.1.52.Final
io.netty:netty-tcnative-boringssl-static:2.0.33.Final
io.netty:netty-transport:4.1.51.Final
io.netty:netty-transport:4.1.52.Final
io.opencensus:opencensus-api:0.28.0
io.opencensus:opencensus-contrib-grpc-util:0.24.0
io.opencensus:opencensus-contrib-grpc-util:0.28.0
io.opencensus:opencensus-contrib-http-util:0.28.0
io.perfmark:perfmark-api:0.23.0
it.unimi.dsi:fastutil:6.5.16
@@ -213,31 +223,35 @@ 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.5
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
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.28.0
org.apache.beam:beam-model-job-management:2.28.0
org.apache.beam:beam-model-pipeline:2.28.0
org.apache.beam:beam-runners-core-construction-java:2.28.0
org.apache.beam:beam-runners-core-java:2.28.0
org.apache.beam:beam-runners-direct-java:2.28.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.28.0
org.apache.beam:beam-runners-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-core:2.28.0
org.apache.beam:beam-sdks-java-expansion-service:2.28.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.28.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.28.0
org.apache.beam:beam-sdks-java-fn-execution:2.28.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.28.0
org.apache.beam:beam-vendor-bytebuddy-1_10_8:0.1
org.apache.beam:beam-vendor-grpc-1_26_0:0.3
org.apache.beam:beam-model-fn-execution:2.34.0
org.apache.beam:beam-model-job-management:2.34.0
org.apache.beam:beam-model-pipeline:2.34.0
org.apache.beam:beam-runners-core-construction-java:2.34.0
org.apache.beam:beam-runners-core-java:2.34.0
org.apache.beam:beam-runners-direct-java:2.34.0
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.34.0
org.apache.beam:beam-runners-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-core:2.34.0
org.apache.beam:beam-sdks-java-expansion-service:2.34.0
org.apache.beam:beam-sdks-java-extensions-arrow:2.34.0
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.34.0
org.apache.beam:beam-sdks-java-extensions-protobuf:2.34.0
org.apache.beam:beam-sdks-java-fn-execution:2.34.0
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.34.0
org.apache.beam:beam-sdks-java-io-kafka:2.34.0
org.apache.beam:beam-vendor-bytebuddy-1_11_0:0.1
org.apache.beam:beam-vendor-grpc-1_36_0:0.2
org.apache.beam:beam-vendor-guava-26_0-jre:0.1
org.apache.beam:beam-vendor-sdks-java-extensions-protobuf:2.28.0
org.apache.commons:commons-compress:1.20
org.apache.commons:commons-exec:1.3
org.apache.commons:commons-lang3:3.8.1
@@ -246,8 +260,6 @@ org.apache.ftpserver:ftplet-api:1.0.6
org.apache.ftpserver:ftpserver-core:1.0.6
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.14
org.apache.logging.log4j:log4j-api:2.13.3
org.apache.logging.log4j:log4j-core:2.13.3
org.apache.mina:mina-core:2.0.4
org.apache.sshd:sshd-core:2.0.0
org.apache.sshd:sshd-scp:2.0.0
@@ -258,7 +270,7 @@ org.bouncycastle:bcpg-jdk15on:1.61
org.bouncycastle:bcpkix-jdk15on:1.61
org.bouncycastle:bcprov-jdk15on:1.61
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.9.1
org.checkerframework:checker-qual:3.18.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
@@ -321,6 +333,8 @@ 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
@@ -331,8 +345,8 @@ org.threeten:threetenbp:1.5.1
org.tukaani:xz:1.5
org.w3c.css:sac:1.3
org.webjars.npm:viz.js-for-graphviz-java:2.1.3
org.xerial.snappy:snappy-java:1.1.4
org.yaml:snakeyaml:1.17
org.xerial.snappy:snappy-java:1.1.8.4
org.yaml:snakeyaml:1.27
us.fatehi:schemacrawler-api:16.10.1
us.fatehi:schemacrawler-diagram:16.10.1
us.fatehi:schemacrawler-tools:16.10.1

View File

@@ -21,6 +21,7 @@ import com.google.common.collect.AbstractIterator;
import com.google.common.collect.ImmutableList;
import com.google.storage.onestore.v3.OnestoreEntity.EntityProto;
import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -28,6 +29,7 @@ import java.io.OutputStream;
import java.util.Iterator;
/** Utilities for working with backups. */
@DeleteAfterMigration
public class BackupUtils {
/** Keys for user metadata fields on commit log files in GCS. */
@@ -45,7 +47,7 @@ public class BackupUtils {
* OutputStream} in delimited protocol buffer format.
*/
static void serializeEntity(ImmutableObject entity, OutputStream stream) throws IOException {
EntityTranslator.convertToPb(auditedOfy().saveIgnoringReadOnly().toEntity(entity))
EntityTranslator.convertToPb(auditedOfy().saveIgnoringReadOnlyWithoutBackup().toEntity(entity))
.writeDelimitedTo(stream);
}

View File

@@ -17,11 +17,12 @@ package google.registry.backup;
import static google.registry.backup.ExportCommitLogDiffAction.LOWER_CHECKPOINT_TIME_PARAM;
import static google.registry.backup.ExportCommitLogDiffAction.UPPER_CHECKPOINT_TIME_PARAM;
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
import static google.registry.persistence.transaction.TransactionManagerFactory.ofyTm;
import static google.registry.util.DateTimeUtils.isBeforeOrAt;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.flogger.FluentLogger;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogCheckpoint;
import google.registry.model.ofy.CommitLogCheckpointRoot;
import google.registry.request.Action;
@@ -48,6 +49,7 @@ import org.joda.time.DateTime;
method = Action.Method.GET,
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public final class CommitLogCheckpointAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
@@ -65,7 +67,8 @@ public final class CommitLogCheckpointAction implements Runnable {
final CommitLogCheckpoint checkpoint = strategy.computeCheckpoint();
logger.atInfo().log(
"Generated candidate checkpoint for time: %s", checkpoint.getCheckpointTime());
tm().transact(
ofyTm()
.transact(
() -> {
DateTime lastWrittenTime = CommitLogCheckpointRoot.loadRoot().getLastWrittenTime();
if (isBeforeOrAt(checkpoint.getCheckpointTime(), lastWrittenTime)) {
@@ -74,7 +77,7 @@ public final class CommitLogCheckpointAction implements Runnable {
return;
}
auditedOfy()
.saveIgnoringReadOnly()
.saveIgnoringReadOnlyWithoutBackup()
.entities(
checkpoint, CommitLogCheckpointRoot.create(checkpoint.getCheckpointTime()));
// Enqueue a diff task between previous and current checkpoints.

View File

@@ -23,6 +23,7 @@ import static google.registry.util.DateTimeUtils.earliestOf;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
import com.googlecode.objectify.Key;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogBucket;
import google.registry.model.ofy.CommitLogCheckpoint;
import google.registry.model.ofy.CommitLogManifest;
@@ -36,14 +37,14 @@ import org.joda.time.DateTime;
/**
* Implementation of the procedure for determining point-in-time consistent commit log checkpoint.
*
* <p>This algorithm examines the recently written commit log data and uses a dual-read approach
* to determine a point-in-time consistent set of checkpoint times for the commit log buckets. By
* <p>This algorithm examines the recently written commit log data and uses a dual-read approach to
* determine a point-in-time consistent set of checkpoint times for the commit log buckets. By
* "consistent" we mean, generally speaking, that if the Datastore were restored by replaying all
* the commit logs up to the checkpoint times of the buckets, the result would be transactionally
* correct; there must be no "holes" where restored state depends on non-restored state.
*
* <p>The consistency guarantee really has two parts, only one of which is provided by this
* algorithm. The procedure below guarantees only that if the resulting checkpoint includes any
* algorithm. The procedure below guarantees only that if the resulting checkpoint includes any
* given commit log, it will also include all the commit logs that were both 1) actually written
* before that commit log "in real life", and 2) have an earlier timestamp than that commit log.
* (These criteria do not necessarily imply each other, due to the lack of a global shared clock.)
@@ -51,8 +52,8 @@ import org.joda.time.DateTime;
* that depends on state from a previous transaction does indeed have a later timestamp.
*
* <h2>Procedure description</h2>
* <pre>
* {@code
*
* <pre>{@code
* ComputeCheckpoint() -> returns a set consisting of a timestamp c(b_i) for every bucket b_i
*
* 1) read off the latest commit timestamp t(b_i) for every bucket b_i
@@ -63,35 +64,29 @@ import org.joda.time.DateTime;
* a) if S is empty, let T* = +∞ (or the "end of time")
* b) else, let T* = T - Δ, for T = min(S) and some small Δ > 0
* 4) return the set given by: min(t(b_i), T*) for all b_i
* }
* </pre>
* }</pre>
*
* <h2>Correctness proof of algorithm</h2>
*
* <p>{@literal
* As described above, the algorithm is correct as long as it can ensure the following: given a
* commit log X written at time t(X) to bucket b_x, and another commit log Y that was written "in
* real life" before X and for which t(Y) < t(X), then if X is included in the checkpoint, so is Y;
* that is, t(X) <= c(b_x) implies t(Y) <= c(b_y).
* }
* <p>{@literal As described above, the algorithm is correct as long as it can ensure the following:
* given a commit log X written at time t(X) to bucket b_x, and another commit log Y that was
* written "in real life" before X and for which t(Y) < t(X), then if X is included in the
* checkpoint, so is Y; that is, t(X) <= c(b_x) implies t(Y) <= c(b_y). }
*
* <p>{@literal
* To prove this, first note that we always have c(b_i) <= t(b_i) for every b_i, i.e. every commit
* log included in the checkpoint must have been seen in the first pass. Hence if X was included,
* then X must have been written by the time we started the second pass. But since Y was written
* "in real life" prior to X, we must have seen Y by the second pass too.
* }
* <p>{@literal To prove this, first note that we always have c(b_i) <= t(b_i) for every b_i, i.e.
* every commit log included in the checkpoint must have been seen in the first pass. Hence if X was
* included, then X must have been written by the time we started the second pass. But since Y was
* written "in real life" prior to X, we must have seen Y by the second pass too. }
*
* <p>{@literal
* Now assume towards a contradiction that X is indeed included but Y is not, i.e. that we have
* t(X) <= c(b_x) but t(Y) > c(b_y). If Y was seen in the first pass, i.e. t(Y) <= t(b_y), then by
* our assumption c(b_y) < t(Y) <= t(b_y), and therefore c(b_y) != t(b_y). By the definition of
* c(b_y) it must then equal T*, so we have T* < t(Y). However, this is a contradiction since
* t(Y) < t(X) and t(X) <= c(b_x) <= T*. If instead Y was seen in the second pass but not the
* first, t'(b_y) exists and we must have t'(b_y) <= t(Y), but then since T* < T <= t'(b_y) by
* definition, we again reach the contradiction T* < t(Y).
* }
* <p>{@literal Now assume towards a contradiction that X is indeed included but Y is not, i.e. that
* we have t(X) <= c(b_x) but t(Y) > c(b_y). If Y was seen in the first pass, i.e. t(Y) <= t(b_y),
* then by our assumption c(b_y) < t(Y) <= t(b_y), and therefore c(b_y) != t(b_y). By the definition
* of c(b_y) it must then equal T*, so we have T* < t(Y). However, this is a contradiction since
* t(Y) < t(X) and t(X) <= c(b_x) <= T*. If instead Y was seen in the second pass but not the first,
* t'(b_y) exists and we must have t'(b_y) <= t(Y), but then since T* < T <= t'(b_y) by definition,
* we again reach the contradiction T* < t(Y). }
*/
@DeleteAfterMigration
class CommitLogCheckpointStrategy {
@Inject Ofy ofy;

View File

@@ -20,6 +20,7 @@ import static google.registry.backup.BackupUtils.createDeserializingIterator;
import com.google.common.collect.ImmutableList;
import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogCheckpoint;
import google.registry.model.ofy.CommitLogManifest;
import google.registry.model.ofy.CommitLogMutation;
@@ -38,6 +39,7 @@ import java.util.Iterator;
* <p>This class is adapted from {@link RestoreCommitLogsAction}, and will be used in the initial
* population of the Cloud SQL database.
*/
@DeleteAfterMigration
public final class CommitLogImports {
private CommitLogImports() {}

View File

@@ -18,7 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static google.registry.mapreduce.MapreduceRunner.PARAM_DRY_RUN;
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
import static google.registry.persistence.transaction.TransactionManagerFactory.ofyTm;
import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;
@@ -35,6 +35,7 @@ import google.registry.mapreduce.MapreduceRunner;
import google.registry.mapreduce.inputs.CommitLogManifestInput;
import google.registry.mapreduce.inputs.EppResourceInputs;
import google.registry.model.EppResource;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogManifest;
import google.registry.model.ofy.CommitLogMutation;
import google.registry.model.translators.CommitLogRevisionsTranslatorFactory;
@@ -68,6 +69,7 @@ import org.joda.time.Duration;
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
// No longer needed in SQL. Subject to future removal.
@Deprecated
@DeleteAfterMigration
public final class DeleteOldCommitLogsAction implements Runnable {
private static final int NUM_MAP_SHARDS = 20;
@@ -286,7 +288,8 @@ public final class DeleteOldCommitLogsAction implements Runnable {
}
DeletionResult deletionResult =
tm().transactNew(
ofyTm()
.transactNew(
() -> {
CommitLogManifest manifest = auditedOfy().load().key(manifestKey).now();
// It is possible that the same manifestKey was run twice, if a shard had to be

View File

@@ -20,10 +20,12 @@ import com.google.storage.onestore.v3.OnestoreEntity.EntityProto;
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. */
@DeleteAfterMigration
public class EntityImports {
/**

View File

@@ -40,6 +40,7 @@ import com.googlecode.objectify.Key;
import google.registry.config.RegistryConfig.Config;
import google.registry.gcs.GcsUtils;
import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogBucket;
import google.registry.model.ofy.CommitLogCheckpoint;
import google.registry.model.ofy.CommitLogManifest;
@@ -63,6 +64,7 @@ import org.joda.time.DateTime;
method = Action.Method.POST,
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public final class ExportCommitLogDiffAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View File

@@ -33,6 +33,7 @@ import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.UncheckedExecutionException;
import google.registry.backup.BackupModule.Backups;
import google.registry.gcs.GcsUtils;
import google.registry.model.annotations.DeleteAfterMigration;
import java.io.IOException;
import java.time.Duration;
import java.util.Map;
@@ -44,6 +45,7 @@ import javax.inject.Provider;
import org.joda.time.DateTime;
/** Utility class to list commit logs diff files stored on GCS. */
@DeleteAfterMigration
class GcsDiffFileLister {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
@@ -91,7 +93,7 @@ class GcsDiffFileLister {
// If we hit a gap, quit.
if (blobInfo == null) {
logger.atInfo().log(
logger.atWarning().log(
"Gap discovered in sequence terminating at %s, missing file: %s",
sequence.lastKey(), filename);
logger.atInfo().log("Found sequence from %s to %s.", checkpointTime, lastTime);
@@ -167,6 +169,10 @@ class GcsDiffFileLister {
break;
}
if (!sequence.containsKey(key)) {
// Recalculate the sequence for purely informational purposes.
logger.atWarning().log(
"Fork found in commit log history. The following sequence "
+ "is disconnected from the sequence of the final commit:");
constructDiffSequence(gcsBucket, upperBoundTimesToBlobInfo, fromTime, key, sequence);
checkForMoreExtraDiffs = true;
inconsistentFileSet = true;

View File

@@ -34,6 +34,7 @@ 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;
@@ -68,6 +69,7 @@ import org.joda.time.Seconds;
method = Method.POST,
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class ReplayCommitLogsToSqlAction implements Runnable {
static final String PATH = "/_dr/task/replayCommitLogsToSql";
@@ -264,7 +266,7 @@ public class ReplayCommitLogsToSqlAction implements Runnable {
.ifPresent(
sqlEntity -> {
sqlEntity.beforeSqlSaveOnReplay();
jpaTm().putIgnoringReadOnly(sqlEntity);
jpaTm().putIgnoringReadOnlyWithoutBackup(sqlEntity);
});
} else {
// this should never happen, but we shouldn't fail on it
@@ -297,7 +299,7 @@ public class ReplayCommitLogsToSqlAction implements Runnable {
&& !DatastoreOnlyEntity.class.isAssignableFrom(entityClass)
&& entityClass.getAnnotation(javax.persistence.Entity.class) != null) {
ReplaySpecializer.beforeSqlDelete(entityVKey);
jpaTm().deleteIgnoringReadOnly(entityVKey);
jpaTm().deleteIgnoringReadOnlyWithoutBackup(entityVKey);
}
} catch (Throwable t) {
logger.atSevere().log("Error when deleting key %s.", entityVKey);

View File

@@ -37,6 +37,7 @@ import google.registry.config.RegistryConfig.Config;
import google.registry.config.RegistryEnvironment;
import google.registry.gcs.GcsUtils;
import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogBucket;
import google.registry.model.ofy.CommitLogCheckpoint;
import google.registry.model.ofy.CommitLogCheckpointRoot;
@@ -64,6 +65,7 @@ import org.joda.time.DateTime;
method = Action.Method.POST,
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class RestoreCommitLogsAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View File

@@ -19,6 +19,7 @@ import com.google.appengine.api.datastore.EntityTranslator;
import com.google.appengine.api.datastore.Key;
import com.google.auto.value.AutoValue;
import com.google.auto.value.extension.memoized.Memoized;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogManifest;
import google.registry.model.ofy.CommitLogMutation;
import java.io.Serializable;
@@ -76,6 +77,7 @@ import javax.annotation.Nullable;
* property type in this class.
*/
@AutoValue
@DeleteAfterMigration
public abstract class VersionedEntity implements Serializable {
private static final long serialVersionUID = 1L;

View File

@@ -110,7 +110,7 @@ public final class AsyncTaskEnqueuer {
.method(Method.POST)
.header("Host", backendHostname)
.countdownMillis(etaDuration.getMillis())
.param(PARAM_RESOURCE_KEY, entityKey.getOfyKey().getString())
.param(PARAM_RESOURCE_KEY, entityKey.stringify())
.param(PARAM_REQUESTED_TIME, now.toString());
if (whenToResave.size() > 1) {
task.param(PARAM_RESAVE_TIMES, Joiner.on(',').join(whenToResave.tailSet(firstResave, false)));
@@ -131,7 +131,7 @@ public final class AsyncTaskEnqueuer {
TaskOptions task =
TaskOptions.Builder.withMethod(Method.PULL)
.countdownMillis(asyncDeleteDelay.getMillis())
.param(PARAM_RESOURCE_KEY, resourceToDelete.createVKey().getOfyKey().getString())
.param(PARAM_RESOURCE_KEY, resourceToDelete.createVKey().stringify())
.param(PARAM_REQUESTING_CLIENT_ID, requestingRegistrarId)
.param(PARAM_SERVER_TRANSACTION_ID, trid.getServerTransactionId())
.param(PARAM_IS_SUPERUSER, Boolean.toString(isSuperuser))
@@ -148,7 +148,7 @@ public final class AsyncTaskEnqueuer {
addTaskToQueueWithRetry(
asyncDnsRefreshPullQueue,
TaskOptions.Builder.withMethod(Method.PULL)
.param(PARAM_HOST_KEY, hostKey.getOfyKey().getString())
.param(PARAM_HOST_KEY, hostKey.stringify())
.param(PARAM_REQUESTED_TIME, now.toString()));
}

View File

@@ -33,10 +33,8 @@ import static google.registry.request.RequestParameters.extractSetOfDatetimePara
import com.google.appengine.api.taskqueue.Queue;
import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key;
import dagger.Module;
import dagger.Provides;
import google.registry.model.ImmutableObject;
import google.registry.request.Parameter;
import java.util.Optional;
import javax.inject.Named;
@@ -79,9 +77,8 @@ public class BatchModule {
@Provides
@Parameter(PARAM_RESOURCE_KEY)
// TODO(b/207363014): figure out if this needs to be modified for vkey string replacement
static Key<ImmutableObject> provideResourceKey(HttpServletRequest req) {
return Key.create(extractRequiredParameter(req, PARAM_RESOURCE_KEY));
static String provideResourceKey(HttpServletRequest req) {
return extractRequiredParameter(req, PARAM_RESOURCE_KEY);
}
@Provides

View File

@@ -73,6 +73,7 @@ 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;
@@ -114,6 +115,7 @@ import org.joda.time.Duration;
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);

View File

@@ -24,6 +24,7 @@ import com.googlecode.objectify.Key;
import google.registry.mapreduce.MapreduceRunner;
import google.registry.mapreduce.inputs.EppResourceInputs;
import google.registry.model.EppResource;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.request.Action;
import google.registry.request.Parameter;
import google.registry.request.Response;
@@ -56,6 +57,7 @@ import javax.inject.Inject;
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
// No longer needed in SQL. Subject to future removal.
@Deprecated
@DeleteAfterMigration
public class ResaveAllEppResourcesAction implements Runnable {
@Inject MapreduceRunner mrRunner;

View File

@@ -22,7 +22,6 @@ import static google.registry.persistence.transaction.TransactionManagerFactory.
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.flogger.FluentLogger;
import com.googlecode.objectify.Key;
import google.registry.model.EppResource;
import google.registry.model.ImmutableObject;
import google.registry.persistence.VKey;
@@ -50,7 +49,7 @@ public class ResaveEntityAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private final Key<ImmutableObject> resourceKey;
private final String resourceKey;
private final DateTime requestedTime;
private final ImmutableSortedSet<DateTime> resaveTimes;
private final AsyncTaskEnqueuer asyncTaskEnqueuer;
@@ -58,7 +57,7 @@ public class ResaveEntityAction implements Runnable {
@Inject
ResaveEntityAction(
@Parameter(PARAM_RESOURCE_KEY) Key<ImmutableObject> resourceKey,
@Parameter(PARAM_RESOURCE_KEY) String resourceKey,
@Parameter(PARAM_REQUESTED_TIME) DateTime requestedTime,
@Parameter(PARAM_RESAVE_TIMES) ImmutableSet<DateTime> resaveTimes,
AsyncTaskEnqueuer asyncTaskEnqueuer,
@@ -76,15 +75,14 @@ public class ResaveEntityAction implements Runnable {
"Re-saving entity %s which was enqueued at %s.", resourceKey, requestedTime);
tm().transact(
() -> {
// TODO(/207363014): figure out if this should modified for vkey string replacement
ImmutableObject entity = tm().loadByKey(VKey.from(resourceKey));
ImmutableObject entity = tm().loadByKey(VKey.create(resourceKey));
tm().put(
(entity instanceof EppResource)
? ((EppResource) entity).cloneProjectedAtTime(tm().getTransactionTime())
: entity);
if (!resaveTimes.isEmpty()) {
asyncTaskEnqueuer.enqueueAsyncResave(
VKey.from(resourceKey), requestedTime, resaveTimes);
VKey.create(resourceKey), requestedTime, resaveTimes);
}
});
response.setPayload("Entity re-saved.");

View File

@@ -29,6 +29,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.flogger.FluentLogger;
import google.registry.config.RegistryConfig.Config;
import google.registry.config.RegistryEnvironment;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.request.Action;
import google.registry.request.Response;
import google.registry.request.auth.Auth;
@@ -45,6 +46,7 @@ import javax.inject.Inject;
service = Action.Service.BACKEND,
path = "/_dr/task/wipeOutDatastore",
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class WipeoutDatastoreAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View File

@@ -175,7 +175,7 @@ public final class RegistryJpaIO {
* JpaTransactionManager#setDatabaseSnapshot}.
*/
// TODO(b/193662898): vendor-independent support for richer transaction semantics.
public Read<R, T> withSnapshot(String snapshotId) {
public Read<R, T> withSnapshot(@Nullable String snapshotId) {
return toBuilder().snapshotId(snapshotId).build();
}

View File

@@ -23,6 +23,7 @@ import google.registry.config.RegistryConfig.ConfigModule;
import google.registry.persistence.PersistenceModule;
import google.registry.persistence.PersistenceModule.BeamBulkQueryJpaTm;
import google.registry.persistence.PersistenceModule.BeamJpaTm;
import google.registry.persistence.PersistenceModule.BeamReadOnlyReplicaJpaTm;
import google.registry.persistence.PersistenceModule.TransactionIsolationLevel;
import google.registry.persistence.transaction.JpaTransactionManager;
import google.registry.privileges.secretmanager.SecretManagerModule;
@@ -59,6 +60,13 @@ public interface RegistryPipelineComponent {
@BeamBulkQueryJpaTm
Lazy<JpaTransactionManager> getBulkQueryJpaTransactionManager();
/**
* A {@link JpaTransactionManager} that uses the Postgres read-only replica if configured (uses
* the standard DB otherwise).
*/
@BeamReadOnlyReplicaJpaTm
Lazy<JpaTransactionManager> getReadOnlyReplicaJpaTransactionManager();
@Component.Builder
interface Builder {

View File

@@ -56,6 +56,10 @@ public class RegistryPipelineWorkerInitializer implements JvmInitializer {
case BULK_QUERY:
transactionManagerLazy = registryPipelineComponent.getBulkQueryJpaTransactionManager();
break;
case READ_ONLY_REPLICA:
transactionManagerLazy =
registryPipelineComponent.getReadOnlyReplicaJpaTransactionManager();
break;
case REGULAR:
default:
transactionManagerLazy = registryPipelineComponent.getJpaTransactionManager();
@@ -63,7 +67,8 @@ public class RegistryPipelineWorkerInitializer implements JvmInitializer {
TransactionManagerFactory.setJpaTmOnBeamWorker(transactionManagerLazy::get);
// Masquerade all threads as App Engine threads so we can create Ofy keys in the pipeline. Also
// loads all ofy entities.
new AppEngineEnvironment("Beam").setEnvironmentForAllThreads();
new AppEngineEnvironment("s~" + registryPipelineComponent.getProjectId())
.setEnvironmentForAllThreads();
// Set the system property so that we can call IdService.allocateId() without access to
// datastore.
SystemPropertySetter.PRODUCTION_IMPL.setProperty(PROPERTY, "true");

View File

@@ -0,0 +1,193 @@
// 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

@@ -0,0 +1,147 @@
// 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, 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() {
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 = findMostRecentExportMetadataFile(bucketName, 2);
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 bucket-relative path of the overall export metadata file, in the given bucket,
* searching back up to {@code lookBackDays} days, 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> findMostRecentExportMetadataFile(String bucketName, 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()) {
return metaFilePath;
}
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
return Optional.empty();
}
/** Holds information about a Datastore snapshot. */
@AutoValue
abstract static class DatastoreSnapshotInfo {
abstract String exportDir();
abstract String commitLogDir();
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

@@ -0,0 +1,539 @@
// 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

@@ -0,0 +1,244 @@
// 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.Preconditions;
import com.google.common.base.Stopwatch;
import com.google.common.flogger.FluentLogger;
import google.registry.beam.common.DatabaseSnapshot;
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.model.replay.SqlReplayCheckpoint;
import google.registry.model.server.Lock;
import google.registry.persistence.PersistenceModule.JpaTransactionManagerType;
import google.registry.persistence.PersistenceModule.TransactionIsolationLevel;
import google.registry.persistence.transaction.TransactionManagerFactory;
import google.registry.util.RequestStatusChecker;
import java.io.Serializable;
import java.util.Optional;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.PipelineResult.State;
import org.apache.beam.sdk.coders.SerializableCoder;
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 from Datastore (primary storage) to Cloud SQL
* (secondary storage).
*/
@DeleteAfterMigration
public class ValidateSqlPipeline {
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);
/**
* Name of the lock used by the commitlog replay process.
*
* <p>See {@link google.registry.backup.ReplayCommitLogsToSqlAction} for more information.
*/
private static final String COMMITLOG_REPLAY_LOCK_NAME = "ReplayCommitLogsToSqlAction";
private static final Duration REPLAY_LOCK_LEASE_LENGTH = Duration.standardHours(1);
private static final java.time.Duration REPLAY_LOCK_ACQUIRE_TIMEOUT =
java.time.Duration.ofMinutes(6);
private static final java.time.Duration REPLAY_LOCK_ACQUIRE_DELAY =
java.time.Duration.ofSeconds(30);
private final ValidateSqlPipelineOptions options;
private final DatastoreSnapshotInfo mostRecentExport;
public ValidateSqlPipeline(
ValidateSqlPipelineOptions options, DatastoreSnapshotInfo mostRecentExport) {
this.options = options;
this.mostRecentExport = mostRecentExport;
}
void run() {
run(Pipeline.create(options));
}
@VisibleForTesting
void run(Pipeline pipeline) {
// TODO(weiminyu): ensure migration stage is DATASTORE_PRIMARY or DATASTORE_PRIMARY_READ_ONLY
Optional<Lock> lock = acquireCommitLogReplayLock();
if (lock.isPresent()) {
logger.atInfo().log("Acquired CommitLog Replay lock.");
} else {
throw new RuntimeException("Failed to acquire CommitLog Replay lock.");
}
try {
DateTime latestCommitLogTime =
TransactionManagerFactory.jpaTm().transact(() -> SqlReplayCheckpoint.get());
Preconditions.checkState(
latestCommitLogTime.isAfter(mostRecentExport.exportInterval().getEnd()),
"Cannot recreate Datastore snapshot since target time is in the middle of an export.");
try (DatabaseSnapshot databaseSnapshot = DatabaseSnapshot.createSnapshot()) {
// Eagerly release the commitlog replay lock so that replay can resume.
lock.ifPresent(Lock::releaseSql);
lock = Optional.empty();
setupPipeline(pipeline, Optional.of(databaseSnapshot.getSnapshotId()), latestCommitLogTime);
State state = pipeline.run().waitUntilFinish();
if (!State.DONE.equals(state)) {
throw new IllegalStateException("Unexpected pipeline state: " + state);
}
}
} finally {
lock.ifPresent(Lock::releaseSql);
}
}
void setupPipeline(
Pipeline pipeline, Optional<String> sqlSnapshotId, DateTime latestCommitLogTime) {
pipeline
.getCoderRegistry()
.registerCoderForClass(SqlEntity.class, SerializableCoder.of(Serializable.class));
Optional<DateTime> compareStartTime =
Optional.ofNullable(options.getComparisonStartTimestamp()).map(DateTime::parse);
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.");
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());
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(ValidateSqlPipeline::getPrimaryKeyString).withKeyType(strings()))
.apply("Group by primary key " + clazz.getSimpleName(), GroupByKey.create())
.apply("Compare " + clazz.getSimpleName(), ParDo.of(new CompareSqlEntity()));
}
}
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();
}
private static Optional<Lock> acquireCommitLogReplayLock() {
Stopwatch stopwatch = Stopwatch.createStarted();
while (stopwatch.elapsed().minus(REPLAY_LOCK_ACQUIRE_TIMEOUT).isNegative()) {
Optional<Lock> lock = tryAcquireCommitLogReplayLock();
if (lock.isPresent()) {
return lock;
}
logger.atInfo().log("Failed to acquired CommitLog Replay lock. Will retry...");
try {
Thread.sleep(REPLAY_LOCK_ACQUIRE_DELAY.toMillis());
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new RuntimeException("Interrupted.");
}
}
return Optional.empty();
}
private static Optional<Lock> tryAcquireCommitLogReplayLock() {
return Lock.acquireSql(
COMMITLOG_REPLAY_LOCK_NAME,
null,
REPLAY_LOCK_LEASE_LENGTH,
getLockingRequestStatusChecker(),
false);
}
/**
* Returns a fake implementation of {@link RequestStatusChecker} that is required for lock
* acquisition. The default implementation is AppEngine-specific and is unusable on GCE.
*/
private static RequestStatusChecker getLockingRequestStatusChecker() {
return new RequestStatusChecker() {
@Override
public String getLogId() {
return "ValidateSqlPipeline";
}
@Override
public boolean isRunning(String requestLogId) {
return true;
}
};
}
public static void main(String[] args) {
ValidateSqlPipelineOptions options =
PipelineOptionsFactory.fromArgs(args).withValidation().as(ValidateSqlPipelineOptions.class);
// Defensively set important options.
options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ);
options.setJpaTransactionManagerType(JpaTransactionManagerType.BULK_QUERY);
// Reuse Dataflow worker initialization code to set up JPA in the pipeline harness.
new RegistryPipelineWorkerInitializer().beforeProcessing(options);
DatastoreSnapshotInfo mostRecentExport =
DaggerLatestDatastoreSnapshotFinder_LatestDatastoreSnapshotFinderFinderComponent.create()
.datastoreSnapshotInfoFinder()
.getSnapshotInfo();
new ValidateSqlPipeline(options, mostRecentExport).run(Pipeline.create(options));
}
}

View File

@@ -0,0 +1,34 @@
// 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 google.registry.beam.common.RegistryPipelineOptions;
import google.registry.model.annotations.DeleteAfterMigration;
import javax.annotation.Nullable;
import org.apache.beam.sdk.options.Description;
/** BEAM pipeline options for {@link ValidateSqlPipeline}. */
@DeleteAfterMigration
public interface ValidateSqlPipelineOptions extends RegistryPipelineOptions {
@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);
}

View File

@@ -0,0 +1,387 @@
// 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.flogger.FluentLogger;
import google.registry.beam.initsql.Transforms;
import google.registry.config.RegistryEnvironment;
import google.registry.model.BackupGroupRoot;
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 java.lang.reflect.Field;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
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;
/** Helpers for use by {@link ValidateSqlPipeline}. */
@DeleteAfterMigration
final class ValidateSqlUtils {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
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 ValidateSqlPipeline} 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>>, Void> {
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 volatile boolean logPrinted = false;
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));
}
/**
* 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.
*/
void logDiff(String key, Object entry0, Object entry1) {
if (logPrinted) {
return;
}
logPrinted = true;
Map<String, Object> fields0 = ((ImmutableObject) entry0).toDiffableFieldMap();
Map<String, Object> fields1 = ((ImmutableObject) entry1).toDiffableFieldMap();
StringBuilder sb = new StringBuilder();
fields0.forEach(
(field, value) -> {
if (fields1.containsKey(field)) {
if (!Objects.equals(value, fields1.get(field))) {
sb.append(field + " not match: " + value + " -> " + fields1.get(field) + "\n");
}
} else {
sb.append(field + "Not found in entity 2\n");
}
});
fields1.forEach(
(field, value) -> {
if (!fields0.containsKey(field)) {
sb.append(field + "Not found in entity 1\n");
}
});
logger.atWarning().log(key + " " + sb.toString());
}
@ProcessElement
public void processElement(@Element KV<String, Iterable<SqlEntity>> kv) {
ImmutableList<SqlEntity> entities = ImmutableList.copyOf(kv.getValue());
verify(!entities.isEmpty(), "Can't happen: no value for key %s.", kv.getKey());
verify(entities.size() <= 2, "Unexpected duplicates for key %s", kv.getKey());
String counterKey = getCounterKey(entities.get(0).getClass());
ensureCounterExists(counterKey);
totalCounters.get(counterKey).inc();
if (entities.size() == 1) {
if (isSpecialCaseProberEntity(entities.get(0))) {
return;
}
missingCounters.get(counterKey).inc();
// Temporary debugging help. See logDiff() above.
if (!logPrinted) {
logPrinted = true;
logger.atWarning().log("Unexpected single entity: %s", kv.getKey());
}
return;
}
SqlEntity entity0;
SqlEntity entity1;
try {
entity0 = normalizeEntity(entities.get(0));
entity1 = normalizeEntity(entities.get(1));
} catch (Exception e) {
// Temporary debugging help. See logDiff() above.
if (!logPrinted) {
logPrinted = true;
badEntityCounters.get(counterKey).inc();
}
return;
}
if (!Objects.equals(entity0, entity1)) {
unequalCounters.get(counterKey).inc();
logDiff(kv.getKey(), entities.get(0), entities.get(1));
}
}
}
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 {
if (isSpecialCaseProberEntity(eppResource)) {
// Clearing some timestamps. See isSpecialCaseProberEntity() for reasons.
Field lastUpdateTime = BackupGroupRoot.class.getDeclaredField("updateTimestamp");
lastUpdateTime.setAccessible(true);
lastUpdateTime.set(eppResource, null);
Field deletionTime = EppResource.class.getDeclaredField("deletionTime");
deletionTime.setAccessible(true);
deletionTime.set(eppResource, null);
}
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

@@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableSortedSet;
import com.google.common.flogger.FluentLogger;
import com.google.datastore.v1.Entity;
import google.registry.config.RegistryEnvironment;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Iterator;
import java.util.Map;
import org.apache.beam.sdk.Pipeline;
@@ -79,6 +80,7 @@ import org.apache.beam.sdk.values.TupleTagList;
* types in the Datastore using the {@code --numOfKindsHint} argument. If the default value for this
* parameter is too low, performance will suffer.
*/
@DeleteAfterMigration
public class BulkDeleteDatastorePipeline {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View File

@@ -53,6 +53,7 @@ import com.google.datastore.v1.client.DatastoreOptions;
import com.google.datastore.v1.client.QuerySplitter;
import com.google.protobuf.Int32Value;
import com.google.rpc.Code;
import google.registry.model.annotations.DeleteAfterMigration;
import java.io.Serializable;
import java.util.List;
import java.util.NoSuchElementException;
@@ -80,6 +81,7 @@ import org.joda.time.Duration;
* Contains an adaptation of {@link org.apache.beam.sdk.io.gcp.datastore.DatastoreV1.Read}. See
* {@link MultiRead} for details.
*/
@DeleteAfterMigration
public class DatastoreV1 {
// A package-private constructor to prevent direct instantiation from outside of this package

View File

@@ -21,12 +21,14 @@ import static com.google.common.base.Strings.isNullOrEmpty;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Streams;
import google.registry.model.annotations.DeleteAfterMigration;
import org.joda.time.DateTime;
/**
* Helpers for determining the fully qualified paths to Nomulus backup files. A backup consists of a
* Datastore export and Nomulus CommitLogs that overlap with the export.
*/
@DeleteAfterMigration
public final class BackupPaths {
private BackupPaths() {}

View File

@@ -18,9 +18,11 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import com.google.appengine.api.datastore.Entity;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Objects;
/** Helper for manipulating {@code DomainBase} when migrating from Datastore to SQL database */
@DeleteAfterMigration
final class DomainBaseUtil {
private DomainBaseUtil() {}

View File

@@ -23,6 +23,7 @@ import com.googlecode.objectify.Key;
import google.registry.backup.VersionedEntity;
import google.registry.beam.common.RegistryJpaIO;
import google.registry.beam.initsql.Transforms.RemoveDomainBaseForeignKeys;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.billing.BillingEvent;
import google.registry.model.common.Cursor;
import google.registry.model.contact.ContactResource;
@@ -94,6 +95,7 @@ import org.joda.time.DateTime;
* may start writing {@code DomainBase} entities before all {@code Registry}, {@code Registrar} and
* {@code ContactResource} entities have been persisted.
*/
@DeleteAfterMigration
public class InitSqlPipeline implements Serializable {
/**

View File

@@ -15,10 +15,12 @@
package google.registry.beam.initsql;
import google.registry.beam.common.RegistryPipelineOptions;
import google.registry.model.annotations.DeleteAfterMigration;
import org.apache.beam.sdk.options.Description;
import org.apache.beam.sdk.options.Validation;
/** Pipeline options for {@link InitSqlPipeline} */
@DeleteAfterMigration
public interface InitSqlPipelineOptions extends RegistryPipelineOptions {
@Description("The root directory of the export to load.")

View File

@@ -37,6 +37,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Streams;
import google.registry.backup.CommitLogImports;
import google.registry.backup.VersionedEntity;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.billing.BillingEvent.Flag;
import google.registry.model.billing.BillingEvent.Reason;
import google.registry.model.domain.DomainBase;
@@ -80,6 +81,7 @@ import org.joda.time.DateTime;
* {@link PTransform Pipeline transforms} used in pipelines that load from both Datastore export
* files and Nomulus CommitLog files.
*/
@DeleteAfterMigration
public final class Transforms {
private Transforms() {}
@@ -101,8 +103,9 @@ public final class Transforms {
}
/**
* Composite {@link PTransform transform} that loads the Datastore snapshot at {@code
* commitLogToTime} for caller specified {@code kinds}.
* Composite {@link PTransform transform} that loads the Datastore snapshot right before {@code
* commitLogToTime} for caller specified {@code kinds}. The resulting snapshot has all changes
* that happened before {@code commitLogToTime}, and none at or after {@code commitLogToTime}.
*
* <p>Caller must provide the location of a Datastore export that started AFTER {@code
* commitLogFromTime} and completed BEFORE {@code commitLogToTime}, as well as the root directory
@@ -260,16 +263,19 @@ public final class Transforms {
.iterator()));
}
// Production data repair configs go below. See b/185954992.
// Production data repair configs go below. See b/185954992. Note that the CommitLog replay
// process does not filter out the ignored entities listed below, a mistake that we do not fix
// for operational convenience. Instead, the Database comparison tool will filter them out. See
// ValidateSqlUtils.java for more information.
// Prober domains in bad state, without associated contacts, hosts, billings, and non-synthesized
// history. They can be safely ignored.
private static final ImmutableSet<String> IGNORED_DOMAINS =
public static final ImmutableSet<String> IGNORED_DOMAINS =
ImmutableSet.of("6AF6D2-IQCANT", "2-IQANYT");
// Prober hosts referencing phantom registrars. They and their associated history entries can be
// safely ignored.
private static final ImmutableSet<String> IGNORED_HOSTS =
public static final ImmutableSet<String> IGNORED_HOSTS =
ImmutableSet.of(
"4E21_WJ0TEST-GOOGLE",
"4E21_WJ1TEST-GOOGLE",
@@ -278,7 +284,7 @@ public final class Transforms {
// Prober contacts referencing phantom registrars. They and their associated history entries can
// be safely ignored.
private static final ImmutableSet<String> IGNORED_CONTACTS =
public static final ImmutableSet<String> IGNORED_CONTACTS =
ImmutableSet.of(
"1_WJ0TEST-GOOGLE", "1_WJ1TEST-GOOGLE", "1_WJ2TEST-GOOGLE", "1_WJ3TEST-GOOGLE");
@@ -299,6 +305,13 @@ public final class Transforms {
return !IGNORED_HOSTS.contains(roid);
}
if (entity.getKind().equals("HistoryEntry")) {
// DOMAIN_APPLICATION_CREATE is deprecated type and should not be migrated.
// The Enum name DOMAIN_APPLICATION_CREATE no longer exists in Java and cannot
// be deserialized.
if (Objects.equals(entity.getProperty("type"), "DOMAIN_APPLICATION_CREATE")) {
return false;
}
// Remove production bad data: Histories of ignored EPP resources:
com.google.appengine.api.datastore.Key parentKey = entity.getKey().getParent();
if (parentKey.getKind().equals("ContactResource")) {
@@ -314,14 +327,6 @@ public final class Transforms {
return !IGNORED_DOMAINS.contains(domainRoid);
}
}
// End of production-specific checks.
if (entity.getKind().equals("HistoryEntry")) {
// DOMAIN_APPLICATION_CREATE is deprecated type and should not be migrated.
// The Enum name DOMAIN_APPLICATION_CREATE no longer exists in Java and cannot
// be deserialized.
return !Objects.equals(entity.getProperty("type"), "DOMAIN_APPLICATION_CREATE");
}
return true;
}
@@ -363,7 +368,7 @@ public final class Transforms {
* to make Optional work with BEAM)
*/
@Nullable
public static Object convertVersionedEntityToSqlEntity(VersionedEntity dsEntity) {
public static SqlEntity convertVersionedEntityToSqlEntity(VersionedEntity dsEntity) {
return dsEntity
.getEntity()
.filter(Transforms::isMigratable)

View File

@@ -167,13 +167,13 @@ public class RdeIO {
Optional.ofNullable(key.revision())
.orElseGet(() -> RdeRevision.getNextRevision(tld, watermark, mode));
String id = RdeUtil.timestampToId(watermark);
String prefix = options.getJobName();
String basename = RdeNamingUtils.makeRydeFilename(tld, watermark, mode, 1, revision);
String prefix =
options.getJobName()
+ '/'
+ RdeNamingUtils.makeRydeFilename(tld, watermark, mode, 1, revision);
if (key.manual()) {
checkState(key.directoryWithTrailingSlash() != null, "Manual subdirectory not specified");
prefix = prefix + "/manual/" + key.directoryWithTrailingSlash() + basename;
} else {
prefix = prefix + '/' + basename;
prefix = "manual/" + key.directoryWithTrailingSlash() + prefix;
}
BlobId xmlFilename = BlobId.of(rdeBucket, prefix + ".xml.ghostryde");
// This file will contain the byte length (ASCII) of the raw unencrypted XML.

View File

@@ -33,6 +33,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedMap;
import dagger.Module;
import dagger.Provides;
import google.registry.persistence.transaction.JpaTransactionManager;
import google.registry.util.TaskQueueUtils;
import google.registry.util.YamlUtils;
import java.lang.annotation.Documented;
@@ -392,19 +393,26 @@ public final class RegistryConfig {
@Provides
@Config("cloudSqlJdbcUrl")
public static String providesCloudSqlJdbcUrl(RegistryConfigSettings config) {
public static String provideCloudSqlJdbcUrl(RegistryConfigSettings config) {
return config.cloudSql.jdbcUrl;
}
@Provides
@Config("cloudSqlInstanceConnectionName")
public static String providesCloudSqlInstanceConnectionName(RegistryConfigSettings config) {
public static String provideCloudSqlInstanceConnectionName(RegistryConfigSettings config) {
return config.cloudSql.instanceConnectionName;
}
@Provides
@Config("cloudSqlReplicaInstanceConnectionName")
public static Optional<String> provideCloudSqlReplicaInstanceConnectionName(
RegistryConfigSettings config) {
return Optional.ofNullable(config.cloudSql.replicaInstanceConnectionName);
}
@Provides
@Config("cloudSqlDbInstanceName")
public static String providesCloudSqlDbInstance(RegistryConfigSettings config) {
public static String provideCloudSqlDbInstance(RegistryConfigSettings config) {
// Format of instanceConnectionName: project-id:region:instance-name
int lastColonIndex = config.cloudSql.instanceConnectionName.lastIndexOf(':');
return config.cloudSql.instanceConnectionName.substring(lastColonIndex + 1);
@@ -1524,6 +1532,31 @@ public final class RegistryConfig {
return CONFIG_SETTINGS.get().hibernate.hikariIdleTimeout;
}
/**
* JDBC-specific: driver default batch size is 0, which means that every INSERT statement will be
* sent to the database individually. Batching allows us to group together multiple inserts into
* one single INSERT statement which can dramatically increase speed in situations with many
* inserts.
*
* <p>Hibernate docs, i.e.
* https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html,
* recommend between 10 and 50.
*/
public static String getHibernateJdbcBatchSize() {
return CONFIG_SETTINGS.get().hibernate.jdbcBatchSize;
}
/**
* Returns the JDBC fetch size.
*
* <p>Postgresql-specific: driver default fetch size is 0, which disables streaming result sets.
* Here we set a small default geared toward Nomulus server transactions. Large queries can
* override the defaults using {@link JpaTransactionManager#setQueryFetchSize}.
*/
public static String getHibernateJdbcFetchSize() {
return CONFIG_SETTINGS.get().hibernate.jdbcFetchSize;
}
/** Returns the roid suffix to be used for the roids of all contacts and hosts. */
public static String getContactAndHostRoidSuffix() {
return CONFIG_SETTINGS.get().registryPolicy.contactAndHostRoidSuffix;

View File

@@ -120,6 +120,8 @@ public class RegistryConfigSettings {
public String hikariMinimumIdle;
public String hikariMaximumPoolSize;
public String hikariIdleTimeout;
public String jdbcBatchSize;
public String jdbcFetchSize;
}
/** Configuration for Cloud SQL. */
@@ -128,6 +130,7 @@ public class RegistryConfigSettings {
// TODO(05012021): remove username field after it is removed from all yaml files.
public String username;
public String instanceConnectionName;
public String replicaInstanceConnectionName;
}
/** Configuration for Apache Beam (Cloud Dataflow). */

View File

@@ -221,6 +221,17 @@ hibernate:
hikariMinimumIdle: 1
hikariMaximumPoolSize: 10
hikariIdleTimeout: 300000
# The batch size is basically the number of insertions / updates in a single
# transaction that will be batched together into one INSERT/UPDATE statement.
# A larger batch size is useful when inserting or updating many entities in a
# single transaction. Hibernate docs
# (https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html)
# recommend between 10 and 50.
jdbcBatchSize: 50
# The fetch size is the number of entities retrieved at a time from the
# database cursor. Here we set a small default geared toward Nomulus server
# transactions. Large queries can override the defaults on a per-query basis.
jdbcFetchSize: 20
cloudSql:
# jdbc url for the Cloud SQL database.
@@ -231,6 +242,10 @@ cloudSql:
jdbcUrl: jdbc:postgresql://localhost
# This name is used by Cloud SQL when connecting to the database.
instanceConnectionName: project-id:region:instance-id
# If non-null, we will use this instance for certain read-only actions or
# pipelines, e.g. RDE, in order to offload some work from the primary
# instance. Expect any write actions on this instance to fail.
replicaInstanceConnectionName: null
cloudDns:
# Set both properties to null in Production.

View File

@@ -30,7 +30,6 @@ import static google.registry.cron.CronModule.RUN_IN_EMPTY_PARAM;
import static google.registry.model.tld.Registries.getTldsOfType;
import static google.registry.model.tld.Registry.TldType.REAL;
import static google.registry.model.tld.Registry.TldType.TEST;
import static java.util.concurrent.TimeUnit.SECONDS;
import com.google.cloud.tasks.v2.Task;
import com.google.common.collect.ArrayListMultimap;
@@ -39,7 +38,6 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap;
import com.google.common.collect.Streams;
import com.google.common.flogger.FluentLogger;
import com.google.protobuf.Timestamp;
import google.registry.request.Action;
import google.registry.request.Action.Service;
import google.registry.request.Parameter;
@@ -49,9 +47,7 @@ import google.registry.request.Response;
import google.registry.request.auth.Auth;
import google.registry.util.Clock;
import google.registry.util.CloudTasksUtils;
import java.time.Instant;
import java.util.Optional;
import java.util.Random;
import java.util.stream.Stream;
import javax.inject.Inject;
@@ -100,8 +96,6 @@ public final class TldFanoutAction implements Runnable {
EXCLUDE_PARAM,
JITTER_SECONDS_PARAM);
private static final Random random = new Random();
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
@Inject Clock clock;
@@ -165,22 +159,7 @@ public final class TldFanoutAction implements Runnable {
params = ArrayListMultimap.create(params);
params.put(RequestParameters.PARAM_TLD, tld);
}
Instant scheduleTime =
Instant.ofEpochMilli(
clock
.nowUtc()
.plusMillis(
jitterSeconds
.map(seconds -> random.nextInt((int) SECONDS.toMillis(seconds)))
.orElse(0))
.getMillis());
return Task.newBuilder(
CloudTasksUtils.createPostTask(endpoint, Service.BACKEND.toString(), params))
.setScheduleTime(
Timestamp.newBuilder()
.setSeconds(scheduleTime.getEpochSecond())
.setNanos(scheduleTime.getNano())
.build())
.build();
return CloudTasksUtils.createPostTask(
endpoint, Service.BACKEND.toString(), params, clock, jitterSeconds);
}
}

View File

@@ -208,6 +208,15 @@
<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

@@ -211,6 +211,15 @@
</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.
-->

View File

@@ -349,6 +349,15 @@
<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,6 +120,15 @@
<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>

View File

@@ -247,6 +247,15 @@
<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

@@ -21,12 +21,14 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Ordering;
import com.googlecode.objectify.Key;
import google.registry.model.EntityClasses;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.InCrossTld;
import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.ReportedOn;
import google.registry.model.annotations.VirtualEntity;
/** Constants related to export code. */
@DeleteAfterMigration
public final class AnnotatedEntities {
/** Returns the names of kinds to include in Datastore backups. */

View File

@@ -21,6 +21,7 @@ import com.google.common.flogger.FluentLogger;
import google.registry.config.RegistryConfig;
import google.registry.export.datastore.DatastoreAdmin;
import google.registry.export.datastore.Operation;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.request.Action;
import google.registry.request.HttpException.InternalServerErrorException;
import google.registry.request.Response;
@@ -46,6 +47,7 @@ import javax.inject.Inject;
method = POST,
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class BackupDatastoreAction implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View File

@@ -33,6 +33,7 @@ import com.google.common.collect.Sets;
import com.google.common.flogger.FluentLogger;
import google.registry.export.datastore.DatastoreAdmin;
import google.registry.export.datastore.Operation;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.request.Action;
import google.registry.request.HttpException;
import google.registry.request.HttpException.BadRequestException;
@@ -60,6 +61,7 @@ import org.joda.time.format.PeriodFormat;
method = {POST, GET},
automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class CheckBackupAction implements Runnable {
/** Parameter names for passing parameters into this action. */

View File

@@ -26,7 +26,6 @@ import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Streams;
import com.google.common.flogger.FluentLogger;
import com.google.common.net.MediaType;
import google.registry.config.RegistryConfig.Config;
@@ -143,7 +142,7 @@ public class ExportPremiumTermsAction implements Runnable {
PremiumListDao.getLatestRevision(premiumListName).isPresent(),
"Could not load premium list for " + tld);
SortedSet<String> premiumTerms =
Streams.stream(PremiumListDao.loadAllPremiumEntries(premiumListName))
PremiumListDao.loadAllPremiumEntries(premiumListName).stream()
.map(PremiumEntry::toString)
.collect(ImmutableSortedSet.toImmutableSortedSet(String::compareTo));

View File

@@ -26,6 +26,7 @@ import com.google.appengine.api.taskqueue.TaskOptions.Method;
import com.google.common.flogger.FluentLogger;
import google.registry.bigquery.CheckedBigquery;
import google.registry.config.RegistryConfig.Config;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.request.Action;
import google.registry.request.HttpException.InternalServerErrorException;
import google.registry.request.Parameter;
@@ -40,6 +41,7 @@ import javax.inject.Inject;
path = UpdateSnapshotViewAction.PATH,
method = POST,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class UpdateSnapshotViewAction implements Runnable {
/** Headers for passing parameters into the servlet. */

View File

@@ -39,6 +39,7 @@ import google.registry.bigquery.BigqueryUtils.WriteDisposition;
import google.registry.bigquery.CheckedBigquery;
import google.registry.config.RegistryConfig.Config;
import google.registry.export.BigqueryPollJobAction.BigqueryPollJobEnqueuer;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.request.Action;
import google.registry.request.HttpException.BadRequestException;
import google.registry.request.HttpException.InternalServerErrorException;
@@ -53,6 +54,7 @@ import javax.inject.Inject;
path = UploadDatastoreBackupAction.PATH,
method = POST,
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@DeleteAfterMigration
public class UploadDatastoreBackupAction implements Runnable {
/** Parameter names for passing parameters into the servlet. */

View File

@@ -26,6 +26,7 @@ import com.google.api.client.json.JsonFactory;
import com.google.api.client.util.Key;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Collection;
import java.util.Optional;
@@ -33,6 +34,7 @@ import java.util.Optional;
* Java client to <a href="https://cloud.google.com/datastore/docs/reference/admin/rest/">Cloud
* Datastore Admin REST API</a>.
*/
@DeleteAfterMigration
public class DatastoreAdmin extends AbstractGoogleJsonClient {
private static final String ROOT_URL = "https://datastore.googleapis.com/v1/";

View File

@@ -18,11 +18,13 @@ import dagger.Module;
import dagger.Provides;
import google.registry.config.CredentialModule;
import google.registry.config.RegistryConfig;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.util.GoogleCredentialsBundle;
import javax.inject.Singleton;
/** Dagger module that configures provision of {@link DatastoreAdmin}. */
@Module
@DeleteAfterMigration
public abstract class DatastoreAdminModule {
@Singleton

View File

@@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import com.google.api.client.json.GenericJson;
import com.google.api.client.util.Key;
import com.google.common.collect.ImmutableList;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Collection;
import java.util.List;
@@ -29,6 +30,7 @@ import java.util.List;
* <p>Please note that properties not used by Domain Registry are not included, e.g., {@code
* namespaceIds}.
*/
@DeleteAfterMigration
public class EntityFilter extends GenericJson {
@Key private List<String> kinds = ImmutableList.of();

View File

@@ -22,6 +22,7 @@ import com.google.api.client.util.Key;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import google.registry.export.datastore.DatastoreAdmin.Get;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.util.Clock;
import java.util.List;
import java.util.Optional;
@@ -34,6 +35,7 @@ import org.joda.time.Duration;
*
* <p>{@link Operation} instances are parsed from the JSON payload in Datastore response messages.
*/
@DeleteAfterMigration
public class Operation extends GenericJson {
private static final String STATE_SUCCESS = "SUCCESSFUL";

View File

@@ -42,6 +42,7 @@ import javax.inject.Inject;
* <p>This flows can check the existence of multiple contacts simultaneously.
*
* @error {@link google.registry.flows.exceptions.TooManyResourceChecksException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
*/
@ReportingSpec(ActivityReportField.CONTACT_CHECK)
public final class ContactCheckFlow implements Flow {
@@ -55,9 +56,9 @@ public final class ContactCheckFlow implements Flow {
@Inject ContactCheckFlow() {}
@Override
public final EppResponse run() throws EppException {
extensionManager.validate(); // There are no legal extensions for this flow.
public EppResponse run() throws EppException {
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate(); // There are no legal extensions for this flow.
ImmutableList<String> targetIds = ((Check) resourceCommand).getTargetIds();
verifyTargetIdCount(targetIds, maxChecks);
ImmutableSet<String> existingIds =

View File

@@ -51,6 +51,7 @@ import org.joda.time.DateTime;
* An EPP flow that creates a new contact.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link ResourceAlreadyExistsForThisClientException}
* @error {@link ResourceCreateContentionException}
* @error {@link ContactFlowUtils.BadInternationalizedPostalInfoException}
@@ -69,10 +70,10 @@ public final class ContactCreateFlow implements TransactionalFlow {
@Inject ContactCreateFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
Create command = (Create) resourceCommand;
DateTime now = tm().getTransactionTime();
verifyResourceDoesNotExist(ContactResource.class, targetId, now, registrarId);

View File

@@ -61,6 +61,7 @@ import org.joda.time.DateTime;
* with the success or failure message when the process is complete.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
* @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException}
@@ -89,10 +90,10 @@ public final class ContactDeleteFlow implements TransactionalFlow {
ContactDeleteFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
checkLinkedDomains(targetId, now, ContactResource.class, DomainBase::getReferencedContacts);
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);

View File

@@ -46,6 +46,7 @@ import org.joda.time.DateTime;
* ever been transferred. Any registrar can see any contact's information, but the authInfo is only
* visible to the registrar that owns the contact or to a registrar that already supplied it.
*
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
*/
@@ -64,10 +65,10 @@ public final class ContactInfoFlow implements Flow {
ContactInfoFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
DateTime now = clock.nowUtc();
extensionManager.validate(); // There are no legal extensions for this flow.
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate(); // There are no legal extensions for this flow.
ContactResource contact = loadAndVerifyExistence(ContactResource.class, targetId, now);
if (!isSuperuser) {
verifyResourceOwnership(registrarId, contact);

View File

@@ -55,6 +55,7 @@ import org.joda.time.DateTime;
* explicitly approve the transfer request, which then becomes effective immediately.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
@@ -73,14 +74,14 @@ public final class ContactTransferApproveFlow implements TransactionalFlow {
@Inject ContactTransferApproveFlow() {}
/**
* <p>The logic in this flow, which handles client approvals, very closely parallels the logic in
* The logic in this flow, which handles client approvals, very closely parallels the logic in
* {@link ContactResource#cloneProjectedAtTime} which handles implicit server approvals.
*/
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);
verifyOptionalAuthInfo(authInfo, existingContact);

View File

@@ -55,6 +55,7 @@ import org.joda.time.DateTime;
* withdraw the transfer request.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.exceptions.NotPendingTransferException}
@@ -75,8 +76,8 @@ public final class ContactTransferCancelFlow implements TransactionalFlow {
@Override
public final EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);
verifyOptionalAuthInfo(authInfo, existingContact);

View File

@@ -40,11 +40,12 @@ import javax.inject.Inject;
*
* <p>The "gaining" registrar requests a transfer from the "losing" (aka current) registrar. The
* losing registrar has a "transfer" time period to respond (by default five days) after which the
* transfer is automatically approved. This flow can be used by the gaining or losing registrars
* (or anyone with the correct authId) to see the status of a transfer, which may still be pending
* or may have been approved, rejected, cancelled or implicitly approved by virtue of the transfer
* transfer is automatically approved. This flow can be used by the gaining or losing registrars (or
* anyone with the correct authId) to see the status of a transfer, which may still be pending or
* may have been approved, rejected, cancelled or implicitly approved by virtue of the transfer
* period expiring.
*
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.exceptions.NoTransferHistoryToQueryException}
@@ -62,9 +63,9 @@ public final class ContactTransferQueryFlow implements Flow {
@Inject ContactTransferQueryFlow() {}
@Override
public final EppResponse run() throws EppException {
extensionManager.validate(); // There are no legal extensions for this flow.
public EppResponse run() throws EppException {
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate(); // There are no legal extensions for this flow.
ContactResource contact =
loadAndVerifyExistence(ContactResource.class, targetId, clock.nowUtc());
verifyOptionalAuthInfo(authInfo, contact);

View File

@@ -54,6 +54,7 @@ import org.joda.time.DateTime;
* reject the transfer request.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
@@ -71,10 +72,10 @@ public final class ContactTransferRejectFlow implements TransactionalFlow {
@Inject ContactTransferRejectFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);
verifyOptionalAuthInfo(authInfo, existingContact);

View File

@@ -64,6 +64,7 @@ import org.joda.time.Duration;
* request.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.exceptions.AlreadyPendingTransferException}
@@ -91,10 +92,10 @@ public final class ContactTransferRequestFlow implements TransactionalFlow {
@Inject ContactTransferRequestFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(gainingClientId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);
verifyAuthInfoPresentForResourceTransfer(authInfo);

View File

@@ -56,6 +56,7 @@ import org.joda.time.DateTime;
* An EPP flow that updates a contact.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.AddRemoveSameValueException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
@@ -88,10 +89,10 @@ public final class ContactUpdateFlow implements TransactionalFlow {
@Inject ContactUpdateFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
Update command = (Update) resourceCommand;
DateTime now = tm().getTransactionTime();
ContactResource existingContact = loadAndVerifyExistence(ContactResource.class, targetId, now);

View File

@@ -85,6 +85,7 @@ import org.joda.time.DateTime;
* <p>This flow also supports the EPP fee extension and can return pricing information.
*
* @error {@link google.registry.flows.exceptions.TooManyResourceChecksException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.FlowUtils.UnknownCurrencyEppException}
* @error {@link DomainFlowUtils.BadDomainNameCharacterException}
* @error {@link DomainFlowUtils.BadDomainNamePartsCountException}
@@ -134,8 +135,8 @@ public final class DomainCheckFlow implements Flow {
extensionManager.register(
FeeCheckCommandExtension.class, LaunchCheckExtension.class, AllocationTokenExtension.class);
flowCustomLogic.beforeValidation();
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
ImmutableList<String> domainNames = ((Check) resourceCommand).getTargetIds();
verifyTargetIdCount(domainNames, maxChecks);
DateTime now = clock.nowUtc();

View File

@@ -57,13 +57,14 @@ import org.joda.time.DateTime;
* An EPP flow that checks whether domain labels are trademarked.
*
* @error {@link google.registry.flows.exceptions.TooManyResourceChecksException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link DomainFlowUtils.BadCommandForRegistryPhaseException}
* @error {@link DomainFlowUtils.ClaimsPeriodEndedException}
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
* @error {@link DomainFlowUtils.TldDoesNotExistException}
* @error {@link DomainClaimsCheckNotAllowedWithAllocationTokens}
*/
@ReportingSpec(ActivityReportField.DOMAIN_CHECK) // Claims check is a special domain check.
@ReportingSpec(ActivityReportField.DOMAIN_CHECK) // Claims check is a special domain check.
public final class DomainClaimsCheckFlow implements Flow {
@Inject ExtensionManager extensionManager;
@@ -81,8 +82,8 @@ public final class DomainClaimsCheckFlow implements Flow {
@Override
public EppResponse run() throws EppException {
extensionManager.register(LaunchCheckExtension.class, AllocationTokenExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
if (eppInput.getSingleExtension(AllocationTokenExtension.class).isPresent()) {
throw new DomainClaimsCheckNotAllowedWithAllocationTokens();
}

View File

@@ -139,6 +139,7 @@ import org.joda.time.Duration;
* @error {@link ResourceCreateContentionException}
* @error {@link google.registry.flows.EppException.UnimplementedExtensionException}
* @error {@link google.registry.flows.ExtensionManager.UndeclaredServiceExtensionException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.FlowUtils.UnknownCurrencyEppException}
* @error {@link DomainCreateFlow.AnchorTenantCreatePeriodException}
* @error {@link DomainCreateFlow.MustHaveSignedMarksInCurrentPhaseException}
@@ -197,7 +198,7 @@ import org.joda.time.Duration;
* @error {@link DomainPricingLogic.AllocationTokenInvalidForPremiumNameException}
*/
@ReportingSpec(ActivityReportField.DOMAIN_CREATE)
public class DomainCreateFlow implements TransactionalFlow {
public final class DomainCreateFlow implements TransactionalFlow {
/** Anchor tenant creates should always be for 2 years, since they get 2 years free. */
private static final int ANCHOR_TENANT_CREATE_VALID_YEARS = 2;
@@ -218,7 +219,7 @@ public class DomainCreateFlow implements TransactionalFlow {
@Inject DomainCreateFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(
FeeCreateCommandExtension.class,
SecDnsCreateExtension.class,
@@ -226,9 +227,9 @@ public class DomainCreateFlow implements TransactionalFlow {
LaunchCreateExtension.class,
AllocationTokenExtension.class);
flowCustomLogic.beforeValidation();
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
verifyRegistrarIsActive(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
DomainCommand.Create command = cloneAndLinkReferences((Create) resourceCommand, now);
Period period = command.getPeriod();

View File

@@ -105,6 +105,7 @@ import org.joda.time.Duration;
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.EppException.UnimplementedExtensionException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
* @error {@link google.registry.flows.exceptions.OnlyToolCanPassMetadataException}
@@ -137,12 +138,12 @@ public final class DomainDeleteFlow implements TransactionalFlow {
@Inject DomainDeleteFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(
MetadataExtension.class, SecDnsCreateExtension.class, DomainDeleteSuperuserExtension.class);
flowCustomLogic.beforeValidation();
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
// Loads the target resource if it exists
DomainBase existingDomain = loadAndVerifyExistence(DomainBase.class, targetId, now);

View File

@@ -63,6 +63,7 @@ import org.joda.time.DateTime;
* domain, will get a rich result with all of the domain's fields. All other requests will be
* answered with a minimal result containing only basic information about the domain.
*
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.FlowUtils.UnknownCurrencyEppException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
@@ -90,11 +91,11 @@ public final class DomainInfoFlow implements Flow {
DomainInfoFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(FeeInfoCommandExtensionV06.class);
flowCustomLogic.beforeValidation();
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = clock.nowUtc();
DomainBase domain = verifyExistence(
DomainBase.class, targetId, loadByForeignKey(DomainBase.class, targetId, now));

View File

@@ -95,6 +95,7 @@ import org.joda.time.Duration;
* expired.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.FlowUtils.UnknownCurrencyEppException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
@@ -134,12 +135,12 @@ public final class DomainRenewFlow implements TransactionalFlow {
@Inject DomainRenewFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(FeeRenewCommandExtension.class, MetadataExtension.class);
flowCustomLogic.beforeValidation();
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
verifyRegistrarIsActive(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
Renew command = (Renew) resourceCommand;
// Loads the target resource if it exists

View File

@@ -95,6 +95,7 @@ import org.joda.time.DateTime;
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.EppException.UnimplementedExtensionException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.FlowUtils.UnknownCurrencyEppException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
@@ -127,14 +128,14 @@ public final class DomainRestoreRequestFlow implements TransactionalFlow {
@Inject DomainRestoreRequestFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(
FeeUpdateCommandExtension.class,
MetadataExtension.class,
RgpUpdateExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
verifyRegistrarIsActive(registrarId);
extensionManager.validate();
Update command = (Update) resourceCommand;
DateTime now = tm().getTransactionTime();
DomainBase existingDomain = loadAndVerifyExistence(DomainBase.class, targetId, now);

View File

@@ -79,6 +79,7 @@ import org.joda.time.DateTime;
* those speculative objects are deleted and replaced with new ones with the correct approval time.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException}
@@ -98,14 +99,14 @@ public final class DomainTransferApproveFlow implements TransactionalFlow {
@Inject DomainTransferApproveFlow() {}
/**
* <p>The logic in this flow, which handles client approvals, very closely parallels the logic in
* The logic in this flow, which handles client approvals, very closely parallels the logic in
* {@link DomainBase#cloneProjectedAtTime} which handles implicit server approvals.
*/
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
DomainBase existingDomain = loadAndVerifyExistence(DomainBase.class, targetId, now);
verifyOptionalAuthInfo(authInfo, existingDomain);

View File

@@ -66,6 +66,7 @@ import org.joda.time.DateTime;
* those speculative objects are deleted.
*
* @error {@link google.registry.flows.EppException.ReadOnlyModeEppException}
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.exceptions.NotPendingTransferException}
@@ -85,10 +86,10 @@ public final class DomainTransferCancelFlow implements TransactionalFlow {
@Inject DomainTransferCancelFlow() {}
@Override
public final EppResponse run() throws EppException {
public EppResponse run() throws EppException {
extensionManager.register(MetadataExtension.class);
extensionManager.validate();
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate();
DateTime now = tm().getTransactionTime();
DomainBase existingDomain = loadAndVerifyExistence(DomainBase.class, targetId, now);
verifyOptionalAuthInfo(authInfo, existingDomain);

View File

@@ -44,11 +44,12 @@ import org.joda.time.DateTime;
*
* <p>The "gaining" registrar requests a transfer from the "losing" (aka current) registrar. The
* losing registrar has a "transfer" time period to respond (by default five days) after which the
* transfer is automatically approved. This flow can be used by the gaining or losing registrars
* (or anyone with the correct authId) to see the status of a transfer, which may still be pending
* or may have been approved, rejected, cancelled or implicitly approved by virtue of the transfer
* transfer is automatically approved. This flow can be used by the gaining or losing registrars (or
* anyone with the correct authId) to see the status of a transfer, which may still be pending or
* may have been approved, rejected, cancelled or implicitly approved by virtue of the transfer
* period expiring.
*
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
* @error {@link google.registry.flows.ResourceFlowUtils.BadAuthInfoForResourceException}
* @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException}
* @error {@link google.registry.flows.exceptions.NoTransferHistoryToQueryException}
@@ -66,9 +67,9 @@ public final class DomainTransferQueryFlow implements Flow {
@Inject DomainTransferQueryFlow() {}
@Override
public final EppResponse run() throws EppException {
extensionManager.validate(); // There are no legal extensions for this flow.
public EppResponse run() throws EppException {
validateRegistrarIsLoggedIn(registrarId);
extensionManager.validate(); // There are no legal extensions for this flow.
DateTime now = clock.nowUtc();
DomainBase domain = loadAndVerifyExistence(DomainBase.class, targetId, now);
verifyOptionalAuthInfo(authInfo, domain);

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