Skip to content
This repository has been archived by the owner on May 12, 2020. It is now read-only.

Make project an OSGI bundle #143

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<artifactId>postgresql-embedded</artifactId>
<version>2.10-SNAPSHOT</version>
<name>Embedded PostgreSQL (based on Flapdoodle-OSS embedded services)</name>
<packaging>bundle</packaging>

<description>An embedded PostgreSQL...</description>

Expand Down Expand Up @@ -102,6 +103,12 @@
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<version>3.5.0</version>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import de.flapdoodle.embed.process.distribution.Platform;
import de.flapdoodle.embed.process.io.directories.FixedPath;
import de.flapdoodle.embed.process.runtime.ICommandLinePostProcessor;
import de.flapdoodle.embed.process.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.config.AbstractPostgresConfig;
import ru.yandex.qatools.embed.postgresql.config.PostgresDownloadConfigBuilder;
import ru.yandex.qatools.embed.postgresql.config.PostgresConfig;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
import de.flapdoodle.embed.process.runtime.Executable;
import de.flapdoodle.embed.process.runtime.ProcessControl;
import de.flapdoodle.embed.process.store.IArtifactStore;
import de.flapdoodle.embed.process.store.IMutableArtifactStore;
import de.flapdoodle.embed.process.store.PostgresArtifactStore;
import de.flapdoodle.embed.process.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.IMutableArtifactStore;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStore;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStoreBuilder;
import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;
import ru.yandex.qatools.embed.postgresql.config.IMutableDownloadConfig;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import de.flapdoodle.embed.process.io.progress.Slf4jProgressListener;
import de.flapdoodle.embed.process.runtime.ICommandLinePostProcessor;
import ru.yandex.qatools.embed.postgresql.Command;
import de.flapdoodle.embed.process.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStoreBuilder;

/**
* Configuration builder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.config.store.FileSet;
import de.flapdoodle.embed.process.config.store.FileType;
Expand All @@ -8,6 +8,8 @@
import de.flapdoodle.embed.process.extract.ITempNaming;
import de.flapdoodle.embed.process.extract.ImmutableExtractedFileSet.Builder;
import de.flapdoodle.embed.process.io.directories.IDirectory;
import de.flapdoodle.embed.process.store.IDownloader;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.config.store.FileType;
import de.flapdoodle.embed.process.extract.IExtractedFileSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.config.store.IDownloadConfig;
import de.flapdoodle.embed.process.store.IArtifactStore;

public interface IMutableArtifactStore extends IArtifactStore {
void setDownloadConfig(IDownloadConfig downloadConfig);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.store.IArtifactStore;

public class NonCachedPostgresArtifactStoreBuilder extends PostgresArtifactStoreBuilder {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.config.store.FileSet;
import de.flapdoodle.embed.process.config.store.FileType;
Expand All @@ -11,6 +11,9 @@
import de.flapdoodle.embed.process.extract.IExtractor;
import de.flapdoodle.embed.process.extract.ITempNaming;
import de.flapdoodle.embed.process.io.directories.IDirectory;
import de.flapdoodle.embed.process.store.ArtifactStore;
import de.flapdoodle.embed.process.store.IDownloader;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -24,18 +27,17 @@
* @author Ilya Sadykov
* Hacky ArtifactStore. Just to override the default FilesToExtract with PostgresFilesToExtract
*/
public class PostgresArtifactStore implements IMutableArtifactStore {
public class PostgresArtifactStore extends ArtifactStore implements IMutableArtifactStore {
private static final Logger LOGGER = LoggerFactory.getLogger(PostgresArtifactStore.class);
private IDownloadConfig downloadConfig;
private IDirectory tempDirFactory;
private ITempNaming executableNaming;
private IDownloader downloader;

PostgresArtifactStore(IDownloadConfig downloadConfig, IDirectory tempDirFactory, ITempNaming executableNaming, IDownloader downloader) {
super(downloadConfig, tempDirFactory, executableNaming, downloader);
this.downloadConfig = downloadConfig;
this.tempDirFactory = tempDirFactory;
this.executableNaming = executableNaming;
this.downloader = downloader;
}

public IDirectory getTempDir() {
Expand All @@ -60,14 +62,6 @@ public void removeFileSet(Distribution distribution, IExtractedFileSet all) {
}
}

@Override
public boolean checkDistribution(Distribution distribution) throws IOException {
if (!LocalArtifactStore.checkArtifact(downloadConfig, distribution)) {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looked to me the only reason you used the flapdoodle package was to use the LocalArtifactStore. It seemed to me though that this method was identical to the one in the flapdoodle ArtificatStore class. This means we can just extend the ArtifactStore and override the methods we want to override and remove the need to override the checkDistribution method. This allows us to remove the usage of the flapdoodle package and solve the split package problem.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@smecsia it looks like all the checks have passed for the pull request. Are you able to review it and merge or offer suggestions? Thanks in advance!

return LocalArtifactStore.store(downloadConfig, distribution, downloader.download(downloadConfig, distribution));
}
return true;
}

public IDownloadConfig getDownloadConfig() {
return downloadConfig;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.extract.UUIDTempNaming;
import de.flapdoodle.embed.process.store.Downloader;
import de.flapdoodle.embed.process.store.IArtifactStore;
import ru.yandex.qatools.embed.postgresql.Command;
import ru.yandex.qatools.embed.postgresql.config.PostgresDownloadConfigBuilder;
import ru.yandex.qatools.embed.postgresql.ext.SubdirTempDir;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.flapdoodle.embed.process.store;
package ru.yandex.qatools.embed.postgresql.store;

import de.flapdoodle.embed.process.config.store.FileSet;
import de.flapdoodle.embed.process.config.store.FileType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.yandex.qatools.embed.postgresql;

import de.flapdoodle.embed.process.config.IRuntimeConfig;
import de.flapdoodle.embed.process.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.config.AbstractPostgresConfig;
import ru.yandex.qatools.embed.postgresql.config.PostgresConfig;
import ru.yandex.qatools.embed.postgresql.config.PostgresDownloadConfigBuilder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import de.flapdoodle.embed.process.distribution.IVersion;
import de.flapdoodle.embed.process.distribution.Platform;
import de.flapdoodle.embed.process.store.IArtifactStore;
import de.flapdoodle.embed.process.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStoreBuilder;
import org.junit.Test;
import ru.yandex.qatools.embed.postgresql.distribution.Version;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import de.flapdoodle.embed.process.config.IRuntimeConfig;
import de.flapdoodle.embed.process.io.directories.FixedPath;
import de.flapdoodle.embed.process.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.PostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.config.PostgresDownloadConfigBuilder;
import ru.yandex.qatools.embed.postgresql.config.RuntimeConfigBuilder;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import de.flapdoodle.embed.process.config.IRuntimeConfig;
import de.flapdoodle.embed.process.io.progress.LoggingProgressListener;
import de.flapdoodle.embed.process.store.NonCachedPostgresArtifactStoreBuilder;
import ru.yandex.qatools.embed.postgresql.store.NonCachedPostgresArtifactStoreBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Expand Down