Class RpmBuilder
- java.lang.Object
-
- org.eclipse.packager.rpm.build.RpmBuilder
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class RpmBuilder extends java.lang.Object implements java.lang.AutoCloseableBuild RPM filesThis class takes care of most tasks building RPM files. The constructor only requests the require attributes. There are a few more meta information entries which can be set using the
RpmBuilder.PackageInformationclass and the methodssetInformation(PackageInformation)andgetInformation().In order to build an RPM file, create a new instance of the
RpmBuilderclass, set package information, add files by using a context created bynewContext()and finally callbuild(). The RPM file will only be built once thebuild()method is called. Closing the instance ofRpmBuilderwill not write the RPM file, but simply clean up temporary files. Closing this instance will also not delete target RPM file.The implementation of this class uses the
PayloadRecorderto create the payload archive,Headerclass for the signature and package header and theRpmWriterto finally write the RPM file.Signature processors
The RPM builder uses a default set of
SignatureProcessors. In order to add additional ones use theaddDefaultSignatureProcessors(). It is possible to remove all already registered processors (including the default ones) usingremoveAllSignatureProcessors().- Author:
- Jens Reimann
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRpmBuilder.Featurestatic classRpmBuilder.FileEntrystatic classRpmBuilder.PackageInformationstatic classRpmBuilder.VersionKnown versions of RPM.
-
Field Summary
Fields Modifier and Type Field Description protected Header<RpmTag>headerprotected PayloadRecorderrecorder
-
Constructor Summary
Constructors Constructor Description RpmBuilder(java.lang.String name, java.lang.String version, java.lang.String release, java.lang.String architecture, java.nio.file.Path target, java.nio.file.OpenOption... openOptions)RpmBuilder(java.lang.String name, java.lang.String version, java.lang.String release, java.nio.file.Path target)RpmBuilder(java.lang.String name, RpmVersion version, java.lang.String architecture, java.nio.file.Path targetFile, java.nio.file.OpenOption... openOptions)RpmBuilder(java.lang.String name, RpmVersion version, java.lang.String architecture, java.nio.file.Path targetFile, BuilderOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddConflicts(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddDefaultSignatureProcessors()voidaddEnhances(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddObsoletes(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddProvides(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddRecommends(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddRequirement(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddSignatureProcessor(SignatureProcessor processor)voidaddSuggests(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidaddSupplements(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)voidbuild()Actually build the RPM filevoidclose()java.lang.StringgetArchitecture()static java.util.List<RpmBuilder.Feature>getFeatures()Return the list of features supported by this builder.RpmBuilder.PackageInformationgetInformation()Get the current package informationjava.lang.StringgetName()RpmBuilder.VersiongetRequiredRpmVersion()Return the minimum required version of RPM for supporting all features of this generated RPM.java.nio.file.PathgetTargetFile()RpmVersiongetVersion()BuilderContextnewContext()voidremoveAllSignatureProcessors()voidsetHeaderCustomizer(java.util.function.Consumer<Header<RpmTag>> headerCustomizer)voidsetInformation(RpmBuilder.PackageInformation information)Completely set the current package informationvoidsetLeadOverrideArchitecture(Architecture leadOverrideArchitecture)voidsetLeadOverrideOperatingSystem(OperatingSystem leadOverrideOperatingSystem)voidsetPostInstallationScript(java.lang.String script)voidsetPostInstallationScript(java.lang.String interpreter, java.lang.String script)voidsetPostRemoveScript(java.lang.String script)voidsetPostRemoveScript(java.lang.String interpreter, java.lang.String script)voidsetPostTransactionScript(java.lang.String script)voidsetPostTransactionScript(java.lang.String interpreter, java.lang.String script)voidsetPreInstallationScript(java.lang.String script)voidsetPreInstallationScript(java.lang.String interpreter, java.lang.String script)voidsetPreRemoveScript(java.lang.String script)voidsetPreRemoveScript(java.lang.String interpreter, java.lang.String script)voidsetPreTransactionScript(java.lang.String script)voidsetPreTransactionScript(java.lang.String interpreter, java.lang.String script)voidsetVerifyScript(java.lang.String script)voidsetVerifyScript(java.lang.String interpreter, java.lang.String script)
-
-
-
Field Detail
-
recorder
protected final PayloadRecorder recorder
-
-
Constructor Detail
-
RpmBuilder
public RpmBuilder(java.lang.String name, java.lang.String version, java.lang.String release, java.nio.file.Path target) throws java.io.IOException- Throws:
java.io.IOException
-
RpmBuilder
public RpmBuilder(java.lang.String name, RpmVersion version, java.lang.String architecture, java.nio.file.Path targetFile, java.nio.file.OpenOption... openOptions) throws java.io.IOException- Throws:
java.io.IOException
-
RpmBuilder
public RpmBuilder(java.lang.String name, RpmVersion version, java.lang.String architecture, java.nio.file.Path targetFile, BuilderOptions options) throws java.io.IOException- Throws:
java.io.IOException
-
RpmBuilder
public RpmBuilder(java.lang.String name, java.lang.String version, java.lang.String release, java.lang.String architecture, java.nio.file.Path target, java.nio.file.OpenOption... openOptions) throws java.io.IOException- Throws:
java.io.IOException
-
-
Method Detail
-
addSignatureProcessor
public void addSignatureProcessor(SignatureProcessor processor)
-
removeAllSignatureProcessors
public void removeAllSignatureProcessors()
-
addDefaultSignatureProcessors
public void addDefaultSignatureProcessors()
-
setLeadOverrideArchitecture
public void setLeadOverrideArchitecture(Architecture leadOverrideArchitecture)
-
setLeadOverrideOperatingSystem
public void setLeadOverrideOperatingSystem(OperatingSystem leadOverrideOperatingSystem)
-
setHeaderCustomizer
public void setHeaderCustomizer(java.util.function.Consumer<Header<RpmTag>> headerCustomizer)
-
getFeatures
public static java.util.List<RpmBuilder.Feature> getFeatures()
Return the list of features supported by this builder.- Returns:
- the list of features supported by this builder
-
getInformation
public RpmBuilder.PackageInformation getInformation()
Get the current package information- Returns:
- the current package information. Never returns
null.
-
setInformation
public void setInformation(RpmBuilder.PackageInformation information)
Completely set the current package information- Parameters:
information- the new package information, may benull, in which case the package information is reset to its defaults.
-
getTargetFile
public java.nio.file.Path getTargetFile()
-
getArchitecture
public java.lang.String getArchitecture()
-
getVersion
public RpmVersion getVersion()
-
getName
public java.lang.String getName()
-
build
public void build() throws java.io.IOExceptionActually build the RPM fileNote: this method may only be called once per instance
- Throws:
java.io.IOException- in case of any IO error
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Throws:
java.io.IOException
-
addRequirement
public void addRequirement(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addProvides
public void addProvides(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addConflicts
public void addConflicts(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addObsoletes
public void addObsoletes(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addSuggests
public void addSuggests(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addRecommends
public void addRecommends(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addSupplements
public void addSupplements(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
addEnhances
public void addEnhances(java.lang.String name, java.lang.String version, RpmDependencyFlags... flags)
-
newContext
public BuilderContext newContext()
-
setPreInstallationScript
public void setPreInstallationScript(java.lang.String interpreter, java.lang.String script)
-
setPreInstallationScript
public void setPreInstallationScript(java.lang.String script)
-
setPostInstallationScript
public void setPostInstallationScript(java.lang.String interpreter, java.lang.String script)
-
setPostInstallationScript
public void setPostInstallationScript(java.lang.String script)
-
setPreRemoveScript
public void setPreRemoveScript(java.lang.String interpreter, java.lang.String script)
-
setPreRemoveScript
public void setPreRemoveScript(java.lang.String script)
-
setPostRemoveScript
public void setPostRemoveScript(java.lang.String interpreter, java.lang.String script)
-
setPostRemoveScript
public void setPostRemoveScript(java.lang.String script)
-
setVerifyScript
public void setVerifyScript(java.lang.String interpreter, java.lang.String script)
-
setVerifyScript
public void setVerifyScript(java.lang.String script)
-
setPreTransactionScript
public void setPreTransactionScript(java.lang.String interpreter, java.lang.String script)
-
setPreTransactionScript
public void setPreTransactionScript(java.lang.String script)
-
setPostTransactionScript
public void setPostTransactionScript(java.lang.String interpreter, java.lang.String script)
-
setPostTransactionScript
public void setPostTransactionScript(java.lang.String script)
-
getRequiredRpmVersion
public RpmBuilder.Version getRequiredRpmVersion()
Return the minimum required version of RPM for supporting all features of this generated RPM.- Returns:
- After the method
build()was called it returns the minimum required version of RPM. Before it will return the default versionRpmBuilder.Version.V4_11.
-
-