Skip to content

Commit b60a0a7

Browse files
Refactoring and code cleanup
1 parent 82153dd commit b60a0a7

File tree

14 files changed

+127
-118
lines changed

14 files changed

+127
-118
lines changed

multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/services/ObjectStoreFileStorage.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
public class ObjectStoreFileStorage implements FileStorage {
3939

4040
private static final Logger LOGGER = LoggerFactory.getLogger(ObjectStoreFileStorage.class);
41-
41+
private static final int MAX_RETRIES_COUNT = 3;
4242
private static final long RETRY_BASE_WAIT_TIME_IN_MILLIS = 5000L;
4343

4444
private final BlobStore blobStore;
@@ -116,15 +116,16 @@ public <T> T processArchiveEntryContent(FileContentToProcess fileContentToProces
116116
throws FileStorageException {
117117
FileEntry fileEntry = createFileEntry(fileContentToProcess.getSpaceGuid(), fileContentToProcess.getGuid());
118118
try {
119-
Payload payload = getBlobPayloadWithOffset(fileEntry, fileContentToProcess.getStartOffset(), fileContentToProcess.getEndOffset());
119+
Payload payload = getBlobPayloadWithOffset(fileEntry, fileContentToProcess.getStartOffset(),
120+
fileContentToProcess.getEndOffset());
120121
return processContent(fileContentProcessor, payload);
121122
} catch (Exception e) {
122123
throw new FileStorageException(e);
123124
}
124125
}
125126

126127
private Payload getBlobPayloadWithOffset(FileEntry fileEntry, long startOffset, long endOffset) throws FileStorageException {
127-
Blob blob = getBlobWithRetriesWithOffset(fileEntry, 3, startOffset, endOffset);
128+
Blob blob = getBlobWithRetriesWithOffset(fileEntry, MAX_RETRIES_COUNT, startOffset, endOffset);
128129
if (blob == null) {
129130
throw new FileStorageException(MessageFormat.format(Messages.FILE_WITH_ID_AND_SPACE_DOES_NOT_EXIST, fileEntry.getId(),
130131
fileEntry.getSpace()));

multiapps-controller-process/src/main/java/module-info.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
requires java.sql;
3535
requires jakarta.xml.bind;
3636
requires jakarta.inject;
37+
requires org.apache.commons.compress;
3738
requires org.apache.logging.log4j.core;
3839
requires org.apache.logging.log4j;
3940
requires org.apache.commons.collections4;
@@ -54,7 +55,7 @@
5455
requires io.netty.handler;
5556
requires io.netty.transport;
5657

58+
requires static java.compiler;
5759
requires static org.immutables.value;
58-
requires org.apache.commons.compress;
5960

6061
}

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/steps/DetermineServiceCreateUpdateServiceActionsStep.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,12 @@
5050
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
5151
public class DetermineServiceCreateUpdateServiceActionsStep extends SyncFlowableStep {
5252

53+
private final ArchiveEntryExtractor archiveEntryExtractor;
54+
5355
@Inject
54-
private ArchiveEntryExtractor archiveEntryExtractor;
56+
public DetermineServiceCreateUpdateServiceActionsStep(ArchiveEntryExtractor archiveEntryExtractor) {
57+
this.archiveEntryExtractor = archiveEntryExtractor;
58+
}
5559

5660
@Override
5761
protected StepPhase executeStep(ProcessContext context) throws Exception {
@@ -237,13 +241,13 @@ private CloudServiceInstanceExtended setServiceParameters(ProcessContext context
237241

238242
ArchiveEntryWithStreamPositions serviceBindingParametersEntry = ArchiveEntryExtractorUtil.findEntry(fileName,
239243
context.getVariable(Variables.ARCHIVE_ENTRIES_POSITIONS));
240-
byte[] serviceBindingsParametersContent = archiveEntryExtractor.readFullEntry(ImmutableFileEntryProperties.builder()
241-
.guid(appArchiveId)
242-
.name(serviceBindingParametersEntry.getName())
243-
.spaceGuid(spaceGuid)
244-
.maxFileSizeInBytes(configuration.getMaxManifestSize())
245-
.build(),
246-
serviceBindingParametersEntry);
244+
byte[] serviceBindingsParametersContent = archiveEntryExtractor.extractEntryBytes(ImmutableFileEntryProperties.builder()
245+
.guid(appArchiveId)
246+
.name(serviceBindingParametersEntry.getName())
247+
.spaceGuid(spaceGuid)
248+
.maxFileSizeInBytes(configuration.getMaxManifestSize())
249+
.build(),
250+
serviceBindingParametersEntry);
247251
try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(serviceBindingsParametersContent)) {
248252
return mergeCredentials(service, byteArrayInputStream);
249253
} catch (IOException e) {

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/steps/ProcessMtaArchiveStep.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,7 @@ private MtaArchiveHelper createMtaArchiveHelperFromManifest(ProcessContext conte
7070
List<ArchiveEntryWithStreamPositions> archiveEntriesWithStreamPositions) {
7171
ArchiveEntryWithStreamPositions mtaManifestEntry = ArchiveEntryExtractorUtil.findEntry(ArchiveHandler.MTA_MANIFEST_NAME,
7272
archiveEntriesWithStreamPositions);
73-
byte[] inflatedManifestFile = archiveEntryExtractor.readFullEntry(ImmutableFileEntryProperties.builder()
74-
.guid(appArchiveId)
75-
.name(mtaManifestEntry.getName())
76-
.spaceGuid(context.getRequiredVariable(Variables.SPACE_GUID))
77-
.maxFileSizeInBytes(configuration.getMaxMtaDescriptorSize())
78-
.build(),
79-
mtaManifestEntry);
73+
byte[] inflatedManifestFile = readEntry(context, appArchiveId, mtaManifestEntry);
8074
try (InputStream inputStream = new ByteArrayInputStream(inflatedManifestFile)) {
8175
Manifest manifest = new Manifest(inputStream);
8276
MtaArchiveHelper helper = getHelper(manifest);
@@ -87,6 +81,16 @@ private MtaArchiveHelper createMtaArchiveHelperFromManifest(ProcessContext conte
8781
}
8882
}
8983

84+
private byte[] readEntry(ProcessContext context, String appArchiveId, ArchiveEntryWithStreamPositions mtaManifestEntry) {
85+
return archiveEntryExtractor.extractEntryBytes(ImmutableFileEntryProperties.builder()
86+
.guid(appArchiveId)
87+
.name(mtaManifestEntry.getName())
88+
.spaceGuid(context.getRequiredVariable(Variables.SPACE_GUID))
89+
.maxFileSizeInBytes(configuration.getMaxMtaDescriptorSize())
90+
.build(),
91+
mtaManifestEntry);
92+
}
93+
9094
protected MtaArchiveHelper getHelper(Manifest manifest) {
9195
return new MtaArchiveHelper(manifest);
9296
}
@@ -116,13 +120,7 @@ private DeploymentDescriptor extractDeploymentDescriptor(ProcessContext context,
116120

117121
ArchiveEntryWithStreamPositions deploymentDescriptorEntry = ArchiveEntryExtractorUtil.findEntry(ArchiveHandler.MTA_DEPLOYMENT_DESCRIPTOR_NAME,
118122
archiveEntriesWithStreamPositions);
119-
byte[] inflatedDeploymentDescriptor = archiveEntryExtractor.readFullEntry(ImmutableFileEntryProperties.builder()
120-
.guid(appArchiveId)
121-
.name(deploymentDescriptorEntry.getName())
122-
.spaceGuid(context.getRequiredVariable(Variables.SPACE_GUID))
123-
.maxFileSizeInBytes(configuration.getMaxMtaDescriptorSize())
124-
.build(),
125-
deploymentDescriptorEntry);
123+
byte[] inflatedDeploymentDescriptor = readEntry(context, appArchiveId, deploymentDescriptorEntry);
126124
DescriptorParserFacade descriptorParserFacade = descriptorParserFactory.getInstance();
127125
DeploymentDescriptor deploymentDescriptor = descriptorParserFacade.parseDeploymentDescriptor(new String(inflatedDeploymentDescriptor));
128126
getStepLogger().debug(Messages.MTA_DESCRIPTOR_LENGTH_0_MESSAGE, inflatedDeploymentDescriptor.length);

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/util/ApplicationDigestCalculator.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,16 @@ private void iterateApplicationArchive(ApplicationArchiveContext applicationArch
5757
ArchiveEntryWithStreamPositions archiveEntryWithStreamPositions = ArchiveEntryExtractorUtil.findEntry(applicationArchiveContext.getModuleFileName(),
5858
applicationArchiveContext.getArchiveEntryWithStreamPositions());
5959
DigestCalculator applicationDigestCalculator = applicationArchiveContext.getDigestCalculator();
60-
archiveEntryExtractor.processFileEntryContent(ImmutableFileEntryProperties.builder()
61-
.guid(applicationArchiveContext.getAppArchiveId())
62-
.name(archiveEntryWithStreamPositions.getName())
63-
.spaceGuid(applicationArchiveContext.getSpaceId())
64-
.maxFileSizeInBytes(applicationArchiveContext.getMaxSizeInBytes())
65-
.build(),
66-
archiveEntryWithStreamPositions, (bytesBuffer, bytesRead) -> {
67-
applicationArchiveContext.calculateCurrentSizeInBytes(bytesRead);
68-
applicationDigestCalculator.updateDigest(bytesBuffer, 0, bytesRead);
69-
});
60+
archiveEntryExtractor.processFileEntryBytes(ImmutableFileEntryProperties.builder()
61+
.guid(applicationArchiveContext.getAppArchiveId())
62+
.name(archiveEntryWithStreamPositions.getName())
63+
.spaceGuid(applicationArchiveContext.getSpaceId())
64+
.maxFileSizeInBytes(applicationArchiveContext.getMaxSizeInBytes())
65+
.build(),
66+
archiveEntryWithStreamPositions, (bytesBuffer, bytesRead) -> {
67+
applicationArchiveContext.calculateCurrentSizeInBytes(bytesRead);
68+
applicationDigestCalculator.updateDigest(bytesBuffer, 0, bytesRead);
69+
});
7070
}
7171
}
7272

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/util/ApplicationZipBuilder.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.cloudfoundry.multiapps.controller.process.util;
22

3-
import java.io.FileOutputStream;
43
import java.io.IOException;
54
import java.io.InputStream;
65
import java.io.OutputStream;
@@ -43,8 +42,9 @@ public ApplicationZipBuilder(FileService fileService, ApplicationArchiveIterator
4342
}
4443

4544
public Path extractApplicationInNewArchive(ApplicationArchiveContext applicationArchiveContext) {
46-
Path appPath = createTempFile();
45+
Path appPath = null;
4746
try {
47+
appPath = createTempFile();
4848
// TODO: backwards compatibility for one tact
4949
if (applicationArchiveContext.getArchiveEntryWithStreamPositions() == null) {
5050
extractDirectoryContent(applicationArchiveContext, appPath);
@@ -122,7 +122,7 @@ private boolean isAlreadyUploaded(String zipEntryName, ApplicationArchiveContext
122122
}
123123

124124
private ZipEntry createNewZipEntry(String zipEntryName, String moduleFileName) {
125-
return new UtcAdjustedZipEntry(FileUtils.getRelativePath(moduleFileName, zipEntryName));
125+
return new ZipEntry(FileUtils.getRelativePath(moduleFileName, zipEntryName));
126126
}
127127

128128
protected void copy(InputStream input, OutputStream output, ApplicationArchiveContext applicationArchiveContext) throws IOException {
@@ -154,22 +154,22 @@ private void saveToFile(OutputStream fileOutputStream, ApplicationArchiveContext
154154
}
155155

156156
private void extractModuleContent(ApplicationArchiveContext applicationArchiveContext, Path appPath) throws IOException {
157-
try (FileOutputStream fileOutputStream = new FileOutputStream(appPath.toFile())) {
157+
try (OutputStream fileOutputStream = Files.newOutputStream(appPath)) {
158158
ArchiveEntryWithStreamPositions archiveEntryWithStreamPositions = ArchiveEntryExtractorUtil.findEntry(applicationArchiveContext.getModuleFileName(),
159159
applicationArchiveContext.getArchiveEntryWithStreamPositions());
160-
archiveEntryExtractor.processFileEntryContent(ImmutableFileEntryProperties.builder()
161-
.guid(applicationArchiveContext.getAppArchiveId())
162-
.name(archiveEntryWithStreamPositions.getName())
163-
.spaceGuid(applicationArchiveContext.getSpaceId())
164-
.maxFileSizeInBytes(applicationArchiveContext.getMaxSizeInBytes())
165-
.build(),
166-
archiveEntryWithStreamPositions,
167-
(bytesBuffer, bytesRead) -> writeModuleContent(bytesBuffer, bytesRead,
168-
fileOutputStream));
160+
archiveEntryExtractor.processFileEntryBytes(ImmutableFileEntryProperties.builder()
161+
.guid(applicationArchiveContext.getAppArchiveId())
162+
.name(archiveEntryWithStreamPositions.getName())
163+
.spaceGuid(applicationArchiveContext.getSpaceId())
164+
.maxFileSizeInBytes(applicationArchiveContext.getMaxSizeInBytes())
165+
.build(),
166+
archiveEntryWithStreamPositions,
167+
(bytesBuffer, bytesRead) -> writeModuleContent(bytesBuffer, bytesRead,
168+
fileOutputStream));
169169
}
170170
}
171171

172-
private void writeModuleContent(byte[] bytesBuffer, Integer bytesRead, FileOutputStream fileOutputStream) {
172+
private void writeModuleContent(byte[] bytesBuffer, Integer bytesRead, OutputStream fileOutputStream) {
173173
try {
174174
fileOutputStream.write(bytesBuffer, 0, bytesRead);
175175
} catch (IOException e) {

0 commit comments

Comments
 (0)