nebula-core

Common classes that plugins might need

License

License

Categories

Categories

Net
GroupId

GroupId

com.netflix.nebula
ArtifactId

ArtifactId

nebula-core
Last Version

Last Version

4.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

nebula-core
Common classes that plugins might need
Project URL

Project URL

https://github.com/nebula-plugins/nebula-core
Source Code Management

Source Code Management

https://github.com/nebula-plugins/nebula-core.git

Download nebula-core

How to add to project

<!-- https://jarcasting.com/artifacts/com.netflix.nebula/nebula-core/ -->
<dependency>
    <groupId>com.netflix.nebula</groupId>
    <artifactId>nebula-core</artifactId>
    <version>4.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.netflix.nebula/nebula-core/
implementation 'com.netflix.nebula:nebula-core:4.0.1'
// https://jarcasting.com/artifacts/com.netflix.nebula/nebula-core/
implementation ("com.netflix.nebula:nebula-core:4.0.1")
'com.netflix.nebula:nebula-core:jar:4.0.1'
<dependency org="com.netflix.nebula" name="nebula-core" rev="4.0.1">
  <artifact name="nebula-core" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.netflix.nebula', module='nebula-core', version='4.0.1')
)
libraryDependencies += "com.netflix.nebula" % "nebula-core" % "4.0.1"
[com.netflix.nebula/nebula-core "4.0.1"]

Dependencies

runtime (2)

Group / Artifact Type Version
org.apache.commons : commons-lang3 jar 3.4
org.apache.httpcomponents : httpclient-cache jar 4.5.2

Project Modules

There are no modules declared in this project.

Nebula Core

Support Status Build Status Coverage Status Gitter Apache 2.0

This specific project holds some "helper" classes for testing and interacting with Gradle. It's not meant to get too big, but should serve as a central place for all plugins. This project should have no dependency and not contain any specific plugins.

Tasks

Download

A task to download a file, with incremental processing support. Current implementation is naive, but it'll be improved later. Either downloadBase and downloadFileName can be specified or a full URI as downloadUrl. The destinationDir can be specified but it's optional, though it can always be used by other tasks to reference its output.

import nebula.core.tasks.Download

task download(type: Download) {
    downloadBase = 'http://localhost'
    downloadFileName = 'file.zip'
}

task downloadFull(type: Download) {
    downloadUrl = 'http://localhost/file.zip'
}

Unzip

While unzipping comes built-in to Gradle, via ZipTree, encapsulating a few things in a task does make it easier.

import nebula.core.tasks.Unzip

task unzip(type: Unzip) {
    from(file('tmp/resources.zip'))
}

It is essentially still a Copy task, but with the added advantage of a from method to allow pulling from the output of another task. And a convenience method, firstDirectory, to return the first directory in the zip file, which is common.

import nebula.core.tasks.*

task download(type: Download) {
    downloadBase = 'http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.39/bin'
    downloadFileName = 'apache-tomcat-6.0.39.tar.gz'
}

task unzip(type: Unzip) {
    from(tasks.download)
}

task package(type: Deb) {
    into('/opt/tomcat6')
    from(tasks.unzip.firstDirectory()) // to get the apache-tomcat-6.0.39 directory out of the way
}

Untar

Task that works identically yo Unzip, but works against tar files.

com.netflix.nebula

Netflix Build Language Plugins

Versions

Version
4.0.1
4.0.0
3.1.0
3.0.1
2.2.0
1.12.2
1.12.1
1.12.0
1.12.0-RC2
1.12.0-RC1