Skip to content

Add margin to bottom and sides for cloud pages #13281

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 77 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
5a1a245
add 'classnames' utility npm package
dizel852 May 25, 2022
ac84526
fix bottom margin on create source/destination pages
dizel852 May 25, 2022
664f579
Merge branch 'master' into vlad/12780-add-bottom-margin-for-cloud-pages
dizel852 May 26, 2022
74d4248
Merge branch 'master' into vlad/12780-add-bottom-margin-for-cloud-pages
dizel852 May 27, 2022
2b2b2fd
Add padding to bottom and convert styles to scss
dizel852 May 27, 2022
396e1ea
remove padding from 'skip onboarding' button
dizel852 May 27, 2022
20961f1
replace icon style with scss
dizel852 May 27, 2022
262e0d1
add side margin to pages and change style to scss
dizel852 May 27, 2022
50ece0c
Merge branch 'master' into vlad/12780-add-bottom-margin-for-cloud-pages
dizel852 May 31, 2022
bdf6ba8
🎉Source Hubspot: Associated line items to deals (#13383)
lazebnyi Jun 2, 2022
39de331
Bump Airbyte version from 0.39.7-alpha to 0.39.8-alpha (#13402)
octavia-squidington-iii Jun 2, 2022
834b252
Merge branch 'master' into vlad/12780-add-bottom-margin-for-cloud-pages
dizel852 Jun 2, 2022
a0c21a8
return removed accidentally padding
dizel852 Jun 2, 2022
d0d74ec
🎉Source Hubspot: Fix connector incremental state handling (#13320)
grubberr Jun 2, 2022
7fbe6da
[Low code CDK] add support for iterating over parent stream slices (#…
girarda Jun 2, 2022
d053600
Prepare to remove fat jar. (#13427)
davinchia Jun 2, 2022
6ca4989
move repeated bottom margin size to variable
dizel852 Jun 2, 2022
b73713e
run source acceptance tests against image built from branch (#13401)
brianjlai Jun 2, 2022
9648a5c
Update postgres doc about cdc publication (#13433)
tuliren Jun 2, 2022
b5b43d3
Source MSSQL: correct enum Standard method (#13419)
marcosmarxm Jun 2, 2022
bf0a1c3
Updates error view with new design (#13197)
edmundito Jun 2, 2022
a7b6487
Source Google Ads: drop schema field that filters out the data from s…
davydov-d Jun 2, 2022
faab304
Add more pr actions to tag pull requests (#13437)
bleonard Jun 2, 2022
7b7b073
#11758: Source Google Ads to GA (#13441)
davydov-d Jun 2, 2022
537c9ba
🐛 Source HubSpot: Transform `contact_lists` data to comply with schem…
grubberr Jun 2, 2022
3072298
Helm chart dependencies fix (#13432)
spezam Jun 2, 2022
88390f2
Improve kube deploy process. (#13397)
lmossman Jun 2, 2022
19a20f0
🐛 Source Google Sheets: Retry on server errors (#13446)
girarda Jun 3, 2022
d30716a
Change stage to `beta` (#13422)
roman-romanov-o Jun 3, 2022
c3170f9
airbyte-api: add jackson model annotations to remove null values from…
alafanechere Jun 3, 2022
0f61411
helm chart: Support nodeSelector, tolerations and affinity on the boo…
jfouchard Jun 3, 2022
568057a
Prepare YamlSeedConfigPersistence for dependency injection (#13384)
jdpgrailsdev Jun 3, 2022
75e4114
🎉 Source Freshdesk: Added new streams (#13332)
lgomezm Jun 3, 2022
bdeadfc
Fixed reverted PR: Fix cancel button when it doesn't provide feedback…
dizel852 Jun 3, 2022
4fe65c6
🐛 Source Mixpanel: publish v0.1.17 (#13450)
Jun 3, 2022
94dc191
🐛 Source Amplitude: Fixed JSON Validator `date-time` validation (#13…
Jun 3, 2022
850ff58
Highlight removed and added streams in Connection form (#13392)
teallarson Jun 3, 2022
609541d
Migrate cypress tests and commands to TypeScript (#13091)
edmundito Jun 3, 2022
ac01bd3
Bump Airbyte version from 0.39.8-alpha to 0.39.9-alpha (#13454)
octavia-squidington-iii Jun 3, 2022
8076b56
ESLint rule for interface over type (#13451)
Jun 3, 2022
74f620c
Helm Chart: enable setting resource limits for bootloader and tempora…
rcheatham-q Jun 3, 2022
9fd4bba
Cleaner migration wait logic (#13290)
jdpgrailsdev Jun 3, 2022
071a8e9
Destination Redshift: fixed array contents verification for SUPER (#1…
adam-bloom Jun 3, 2022
d292192
Check for invalidFields size before accessing (#13457)
alovew Jun 3, 2022
1225f80
Source hubspot: filter out streams we don't have access to (#13455)
girarda Jun 3, 2022
adf4b6d
run gradlew add headers, correct formatting (#13460)
marcosmarxm Jun 3, 2022
b4921af
Edit getting started docs (#13463)
sophia-wiley Jun 3, 2022
9aa0220
revert redshift and json operations (#13465)
marcosmarxm Jun 3, 2022
12f51b7
Bump Airbyte version from 0.39.9-alpha to 0.39.10-alpha (#13470)
octavia-squidington-iii Jun 4, 2022
83a89aa
Fat Jar: Rename Dir Part 1 (#13476)
davinchia Jun 5, 2022
dd6d263
Update generate script to use new protocol models directory. (#13479)
davinchia Jun 5, 2022
eb99f47
Fat Jar: Rename Dir Part 2 (#13478)
davinchia Jun 5, 2022
e9a9439
Fat Jar: Rename Dir Part 3 (#13480)
davinchia Jun 5, 2022
7788594
Start publishing proper artifacts. (#13484)
davinchia Jun 6, 2022
adc590e
Update publishing scripts after renaming dirs. (#13486)
davinchia Jun 6, 2022
7800b52
🐛 Source Hubspot: scope `crm.objects.feedback_submissions.read` added…
grubberr Jun 6, 2022
c8eb3bd
Bumped release stage version (#13307)
lazebnyi Jun 6, 2022
0aa21dd
Bump Airbyte version from 0.39.10-alpha to 0.39.11-alpha (#13490)
octavia-squidington-iii Jun 6, 2022
a2f98ab
Update slack-code-of-conduct.md (#13481)
johnlafleur Jun 6, 2022
3063f06
Create maintainer-code-of-conduct (#13482)
johnlafleur Jun 6, 2022
0342699
Normalization: rename *.sql -> *.sql.j2 (#13474)
grubberr Jun 6, 2022
73034c6
Sweep old scheduler code (#13400)
lmossman Jun 6, 2022
da22f03
remove scheduler/app from publish_docker.sh (#13507)
lmossman Jun 6, 2022
40cb78e
Fix the acceptance tests. (#13501)
davinchia Jun 6, 2022
4b266c1
🐛 Source Postgres: write hstore as json (#13367)
yurii-bidiuk Jun 6, 2022
ab735e2
Fix lost schedule when editing connection name and ensure connection …
edmundito Jun 6, 2022
574e9cf
Bump Airbyte version from 0.39.11-alpha to 0.39.12-alpha (#13509)
octavia-squidington-iii Jun 6, 2022
0ce18fb
Auto-add connector docs pages to catalog sidebar and update checklist…
sherifnada Jun 6, 2022
53c95bf
Bump Airbyte version from 0.39.12-alpha to 0.39.13-alpha (#13513)
octavia-squidington-iii Jun 6, 2022
5e0cb28
Add stream key and stream reset persistence methods (#13502)
alovew Jun 6, 2022
5e1ee8c
Fix customer.io template ordering for auto-disable notifications (#13…
terencecho Jun 6, 2022
5a7b1aa
Bmoric/add namespace to protocol (#13356)
benmoriceau Jun 6, 2022
0796b35
:tada: Source Stripe - to ga (#13449)
midavadim Jun 6, 2022
3ad489e
13547 Fixed integration tests source-sftp Mac OS (#13551)
suhomud Jun 7, 2022
1721827
🎉 Source Amazon Seller Partner: add financial streams (#13364)
ganpatagarwal Jun 7, 2022
8c4c8cf
Upgrade all non major dependencies (#13553)
Jun 7, 2022
0cad643
resolve conflicts
dizel852 Jun 7, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 1 addition & 3 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.39.7-alpha
current_version = 0.39.13-alpha
commit = False
tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-[a-z]+)?
Expand All @@ -16,8 +16,6 @@ serialize =

[bumpversion:file:airbyte-metrics/reporter/Dockerfile]

[bumpversion:file:airbyte-scheduler/app/Dockerfile]

[bumpversion:file:airbyte-server/Dockerfile]

[bumpversion:file:airbyte-webapp/package.json]
Expand Down
6 changes: 1 addition & 5 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@


### SHARED ###
VERSION=0.39.7-alpha
VERSION=0.39.13-alpha

# When using the airbyte-db via default docker image
CONFIG_ROOT=/data
Expand Down Expand Up @@ -77,10 +77,6 @@ SENTRY_DSN="https://[email protected]/6


### APPLICATIONS ###
# Scheduler #
# Relevant to scaling.
SUBMITTER_NUM_THREADS=10

# Worker #
# Relevant to scaling.
MAX_SYNC_WORKERS=5
Expand Down
1 change: 0 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ Expand the relevant checklist and delete the others.
- [ ] Documentation updated
- [ ] Connector's `README.md`
- [ ] Connector's `bootstrap.md`. See [description and examples](https://docs.google.com/document/d/1ypdgmwmEHWv-TrO4_YOQ7pAJGVrMp5BOkEVh831N260/edit?usp=sharing)
- [ ] `docs/SUMMARY.md`
- [ ] `docs/integrations/<source or destination>/<name>.md` including changelog. See changelog [example](https://docs.airbyte.io/integrations/sources/stripe#changelog)
- [ ] `docs/integrations/README.md`
- [ ] `airbyte-integrations/builds.md`
Expand Down
30 changes: 15 additions & 15 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -521,11 +521,11 @@ jobs:
label: ${{ needs.start-platform-build-runner.outputs.label }}
ec2-instance-id: ${{ needs.start-platform-build-runner.outputs.ec2-instance-id }}

## Kube Acceptance Tests (with scheduler v2 - both temporal changes and container orchestrator)
## Kube Acceptance Tests
# Docker acceptance tests run as part of the build job.
# In case of self-hosted EC2 errors, remove this block.
start-kube-acceptance-test-runner-v2:
name: "Platform: Start Scheduler V2 Kube Acceptance Test Runner"
start-kube-acceptance-test-runner:
name: "Platform: Start Kube Acceptance Test Runner"
needs:
- changes
- find_valid_pat
Expand All @@ -548,11 +548,11 @@ jobs:
aws-access-key-id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
github-token: ${{ needs.find_valid_pat.outputs.pat }}
kube-acceptance-test-v2:
name: "Platform: Acceptance Tests (Kube v2)"
kube-acceptance-test:
name: "Platform: Acceptance Tests (Kube)"
# In case of self-hosted EC2 errors, removed the `needs` line and switch back to running on ubuntu-latest.
needs: start-kube-acceptance-test-runner-v2 # required to start the main job when the runner is ready
runs-on: ${{ needs.start-kube-acceptance-test-runner-v2.outputs.label }} # run the job on the newly created runner
needs: start-kube-acceptance-test-runner # required to start the main job when the runner is ready
runs-on: ${{ needs.start-kube-acceptance-test-runner.outputs.label }} # run the job on the newly created runner
environment: more-secrets
timeout-minutes: 90
steps:
Expand Down Expand Up @@ -631,17 +631,17 @@ jobs:
name: Kubernetes Logs
path: /tmp/kubernetes_logs/*
# In case of self-hosted EC2 errors, remove this block.
stop-kube-acceptance-test-runner-v2:
stop-kube-acceptance-test-runner:
name: "Platform: Stop Kube Acceptance Test EC2 Runner"
timeout-minutes: 10
needs:
- start-kube-acceptance-test-runner-v2 # required to get output from the start-runner job
- kube-acceptance-test-v2 # required to wait when the main job is done
- start-kube-acceptance-test-runner # required to get output from the start-runner job
- kube-acceptance-test # required to wait when the main job is done
- find_valid_pat
runs-on: ubuntu-latest
# Always is required to stop the runner even if the previous job has errors. However always() runs even if the previous step is skipped.
# Thus, we check for skipped here.
if: ${{ always() && needs.start-kube-acceptance-test-runner-v2.result != 'skipped'}}
if: ${{ always() && needs.start-kube-acceptance-test-runner.result != 'skipped'}}
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
Expand All @@ -654,8 +654,8 @@ jobs:
with:
mode: stop
github-token: ${{ needs.find_valid_pat.outputs.pat }}
label: ${{ needs.start-kube-acceptance-test-runner-v2.outputs.label }}
ec2-instance-id: ${{ needs.start-kube-acceptance-test-runner-v2.outputs.ec2-instance-id }}
label: ${{ needs.start-kube-acceptance-test-runner.outputs.label }}
ec2-instance-id: ${{ needs.start-kube-acceptance-test-runner.outputs.ec2-instance-id }}

notify-failure-slack-channel:
name: "Notify Slack Channel on Build Failures"
Expand All @@ -665,7 +665,7 @@ jobs:
- frontend-build
- octavia-cli-build
- platform-build
- kube-acceptance-test-v2
- kube-acceptance-test
if: ${{ failure() && github.ref == 'refs/heads/master' }}
steps:
- name: Publish to OSS Build Failure Slack Channel
Expand All @@ -689,7 +689,7 @@ jobs:
- frontend-build
- octavia-cli-build
- platform-build
- kube-acceptance-test-v2
- kube-acceptance-test
if: success()
steps:
- name: Get Previous Workflow Status
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/shared-pulls.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: "Shared Pull Requests"
on:
pull_request_target:
types: [opened]
types: [opened, labeled, unlabeled, ready_for_review, synchronize, reopened]

jobs:
shared-pulls:
Expand Down
6 changes: 4 additions & 2 deletions airbyte-analytics/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ dependencies {
implementation 'com.segment.analytics.java:analytics:2.1.1'


implementation project(':airbyte-config:models')
implementation project(':airbyte-config:persistence')
implementation project(':airbyte-config:config-models')
implementation project(':airbyte-config:config-persistence')
implementation project(':airbyte-json-validation')
}

Task publishArtifactsTask = getPublishArtifactsTask("$rootProject.ext.version", project)
11 changes: 10 additions & 1 deletion airbyte-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,15 @@ task generateApiServer(type: GenerateTask) {
configOptions = [
dateLibrary : "java8",
generatePom : "false",
interfaceOnly: "true"
interfaceOnly: "true",
/*
JAX-RS generator does not respect nullable properties defined in the OpenApi Spec.
It means that if a field is not nullable but not set it is still returning a null value for this field in the serialized json.
The below Jackson annotation is made to only keep non null values in serialized json.
We are not yet using nullable=true properties in our OpenApi so this is a valid workaround at the moment to circumvent the default JAX-RS behavior described above.
Feel free to read the conversation on https://github.com/airbytehq/airbyte/pull/13370 for more details.
*/
additionalModelTypeAnnotations: "\[email protected](com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)"
]
}
compileJava.dependsOn tasks.generateApiServer
Expand Down Expand Up @@ -143,3 +151,4 @@ sourceSets {
}
}

Task publishArtifactsTask = getPublishArtifactsTask("$rootProject.ext.version", project)
11 changes: 0 additions & 11 deletions airbyte-api/src/main/openapi/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2323,7 +2323,6 @@ components:
type: string
CustomerioNotificationConfiguration:
type: object
nullable: true
NotificationType:
type: string
enum:
Expand Down Expand Up @@ -3141,7 +3140,6 @@ components:
sourceCatalogId:
type: string
format: uuid
nullable: true
WebBackendConnectionCreate:
type: object
required:
Expand Down Expand Up @@ -3222,7 +3220,6 @@ components:
sourceCatalogId:
type: string
format: uuid
nullable: true
WebBackendConnectionUpdate:
type: object
required:
Expand Down Expand Up @@ -3309,7 +3306,6 @@ components:
sourceCatalogId:
type: string
format: uuid
nullable: true
ConnectionSearch:
type: object
properties:
Expand Down Expand Up @@ -3387,7 +3383,6 @@ components:
ConnectionSchedule:
description: if null, then no schedule is set.
type: object
nullable: true
required:
- units
- timeUnit
Expand Down Expand Up @@ -3519,7 +3514,6 @@ components:
#- unnesting
OperatorDbt:
type: object
nullable: true
required:
- gitRepoUrl
properties:
Expand Down Expand Up @@ -3600,7 +3594,6 @@ components:
sourceDefinedCursor:
description: If the source defines the cursor field, then any other cursor field inputs will be ignored. If it does not, either the user_provided one is used, or the default one is used as a backup.
type: boolean
nullable: true
defaultCursorField:
description: Path to the field that will be used to determine if a record is new or modified since the last sync. If not provided by the source, the end user will have to specify the comparable themselves.
type: array
Expand All @@ -3615,7 +3608,6 @@ components:
type: string
namespace:
type: string
nullable: true
description: Optional Source-defined namespace. Airbyte streams from the same sources should have the same namespace. Currently only used by JDBC destinations to determine what schema to write to.
StreamJsonSchema:
type: object
Expand Down Expand Up @@ -3796,7 +3788,6 @@ components:
$ref: "#/components/schemas/AttemptFailureSummary"
AttemptStats:
type: object
nullable: true
properties:
recordsEmitted:
type: integer
Expand All @@ -3822,7 +3813,6 @@ components:
$ref: "#/components/schemas/AttemptStats"
AttemptFailureSummary:
type: object
nullable: true
required:
- failures
properties:
Expand Down Expand Up @@ -4036,7 +4026,6 @@ components:
ResourceRequirements:
description: optional resource requirements to run workers (blank for unbounded allocations)
type: object
nullable: true
properties:
cpu_request:
type: string
Expand Down
2 changes: 1 addition & 1 deletion airbyte-bootloader/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ARG JDK_VERSION=17.0.1
ARG JDK_IMAGE=openjdk:${JDK_VERSION}-slim
FROM ${JDK_IMAGE}

ARG VERSION=0.39.7-alpha
ARG VERSION=0.39.13-alpha

ENV APPLICATION airbyte-bootloader
ENV VERSION ${VERSION}
Expand Down
58 changes: 7 additions & 51 deletions airbyte-bootloader/build.gradle
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
plugins {
id 'application'
id 'maven-publish'
id 'com.github.johnrengelman.shadow' version '7.1.0'
}

dependencies {
implementation project(':airbyte-config:init')
implementation project(':airbyte-config:models')
implementation project(':airbyte-config:persistence')
implementation project(':airbyte-db:lib')
implementation project(':airbyte-config:config-models')
implementation project(':airbyte-config:config-persistence')
implementation project(':airbyte-db:db-lib')
implementation project(":airbyte-json-validation")
implementation project(':airbyte-protocol:models')
implementation project(':airbyte-scheduler:persistence')
implementation project(':airbyte-protocol:protocol-models')
implementation project(':airbyte-scheduler:scheduler-persistence')

implementation 'io.temporal:temporal-sdk:1.8.1'
implementation libs.flyway.core
Expand All @@ -26,50 +24,6 @@ application {
applicationDefaultJvmArgs = ['-XX:+ExitOnOutOfMemoryError', '-XX:MaxRAMPercentage=75.0']
}

// Publish this so Airbyte Cloud can consume and extend the classes within this jar.
// This needs to be a shadow jar as none of the other modules are published.
shadowJar {
preserveFileTimestamps = false
reproducibleFileOrder = true
zip64 true
mergeServiceFiles()
exclude 'META-INF/*.RSA'
exclude 'META-INF/*.SF'
exclude 'META-INF/*.DSA'
// Not stubbing this out adds 'all' to the end of the jar's name.
classifier = ''
}

publishing {
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
}
}

repositories {
publications {
// This block is present so Gradle knows to publish a Maven jar.
maven(MavenPublication) {
from components.java
// Gradle will by default use the subproject path as the group id and the subproject name as the artifact id.
// e.g. the subproject :airbyte-scheduler:models is imported at io.airbyte.airbyte-config:persistence:<version-number>.
}
}

maven {
credentials {
name 'cloudrepo'
username System.getenv('CLOUDREPO_USER')
password System.getenv('CLOUDREPO_PASSWORD')
}
url 'https://airbyte.mycloudrepo.io/repositories/airbyte-public-jars'
}

mavenLocal()
}
}

task copyGeneratedTar(type: Copy) {
dependsOn copyDocker
dependsOn distTar
Expand All @@ -90,3 +44,5 @@ tasks.withType(AbstractArchiveTask) {
preserveFileTimestamps = false
reproducibleFileOrder = true
}

Task publishArtifactsTask = getPublishArtifactsTask("$rootProject.ext.version", project)
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public class BootloaderApp {
private final FeatureFlags featureFlags;
private final SecretMigrator secretMigrator;
private ConfigPersistence configPersistence;
private ConfigPersistence yamlSeedConfigPersistence;
private Database configDatabase;
private Database jobDatabase;
private JobPersistence jobPersistence;
Expand Down Expand Up @@ -122,7 +123,7 @@ public BootloaderApp(final Configs configs,

postLoadExecution = () -> {
try {
configPersistence.loadData(YamlSeedConfigPersistence.getDefault());
configPersistence.loadData(yamlSeedConfigPersistence);

if (featureFlags.forceSecretMigration() || !jobPersistence.isSecretMigrated()) {
if (this.secretMigrator != null) {
Expand Down Expand Up @@ -190,6 +191,10 @@ private static ConfigPersistence getConfigPersistence(final Database configDatab
return DatabaseConfigPersistence.createWithValidation(configDatabase, jsonSecretsProcessor);
}

private static ConfigPersistence getYamlSeedConfigPersistence() throws IOException {
return new YamlSeedConfigPersistence(YamlSeedConfigPersistence.DEFAULT_SEED_DEFINITION_RESOURCE_CLASS);
}

private static Database getJobDatabase(final DSLContext dslContext) throws IOException {
return new Database(dslContext);
}
Expand All @@ -202,6 +207,7 @@ private void initPersistences(final DSLContext configsDslContext, final DSLConte
try {
configDatabase = getConfigDatabase(configsDslContext);
configPersistence = getConfigPersistence(configDatabase);
yamlSeedConfigPersistence = getYamlSeedConfigPersistence();
jobDatabase = getJobDatabase(jobsDslContext);
jobPersistence = getJobPersistence(jobDatabase);
} catch (final IOException e) {
Expand Down
Loading