Copy sources maven plugin

Maven pluguin to copy and repackage sources to reduce library dependencies

License

License

Categories

Categories

Maven Build Tools
GroupId

GroupId

org.bytemechanics.maven
ArtifactId

ArtifactId

copysource-maven-plugin
Last Version

Last Version

1.3.2
Release Date

Release Date

Type

Type

maven-plugin
Description

Description

Copy sources maven plugin
Maven pluguin to copy and repackage sources to reduce library dependencies
Project Organization

Project Organization

Byte Mechanics
Source Code Management

Source Code Management

https://github.com/bytemechanics/standalone-ignite

Download copysource-maven-plugin

How to add to project

<plugin>
    <groupId>org.bytemechanics.maven</groupId>
    <artifactId>copysource-maven-plugin</artifactId>
    <version>1.3.2</version>
</plugin>

Dependencies

compile (6)

Group / Artifact Type Version
org.apache.maven : maven-plugin-api jar 3.6.3
org.apache.maven : maven-core jar 3.6.3
org.apache.maven : maven-artifact jar 3.6.3
org.apache.maven : maven-model jar 3.6.3
org.apache.maven : maven-repository-metadata jar 3.6.3
org.apache.maven.shared : maven-artifact-transfer jar 0.12.0

provided (1)

Group / Artifact Type Version
org.apache.maven.plugin-tools : maven-plugin-annotations jar 3.6.0

test (4)

Group / Artifact Type Version
org.junit.jupiter : junit-jupiter-api jar 5.5.2
org.junit.jupiter : junit-jupiter-params jar 5.5.2
org.junit.jupiter : junit-jupiter-engine jar 5.5.2
org.jmockit : jmockit jar 1.48

Project Modules

There are no modules declared in this project.

Standalone ignite

Latest version Quality Gate Coverage License

Library to reduce the code necessary to start and make a controlled shutdown of standalone applications. The scope of this library is to provide solutions for:

  • Easy parse of command line parameters
  • Easy start and stop daemons (standalone services) inside your standalone application
  • Easy detection of O.S. stop requirement to make a graceful shutdown

Motivation

Some times make something so simple as batch generates a lot of boilerplate source with this library we intend to make this startup easier and faster as well as keeping the control of all startup process.

Requirements

JDK8

Quick start

(Please read our Javadoc for further information)

  1. First of all include the Jar file in your compile and execution classpath.

Maven

	<dependency>
		<groupId>org.bytemechanics</groupId>
		<artifactId>standalone-ignite</artifactId>
		<version>X.X.X</version>
	</dependency>

Graddle

dependencies {
    compile 'org.bytemechanics:standalone-ignite:X.X.X'
}
  1. Create the standalone application main class
package mypackage;
  1. If some parameters are needed, create an enumerate with all necessary parameters
package mypackage;

import java.util.Optional;
import java.util.function.Function;
import org.bytemechanics.standalone.ignite.beans.DefaultParameterContainer;

public enum StandaloneAppTestParameter implements Parameter{

	BOOLEANVALUE(boolean.class,"boolean value"),
	INTVALUE(int.class,"int value"),
	LONGVALUE(long.class,"long value"),
	FLOATVALUE(float.class,"float value"),
	DOUBLEVALUE(double.class,"double value"),
	STRINGVALUE(String.class,"string value"),
	;
	
	private final DefaultParameterContainer container;
	
	<T extends Object> StandaloneAppTestParameter(final Class<T> _type,final String _description){
		this(_type,_description,null,null);
	}
	<T extends Object> StandaloneAppTestParameter(final Class<T> _type,final String _description,final String _default){
		this(_type,_description,_default,null);
	}
	<T extends Object> StandaloneAppTestParameter(final Class<T> _type,final String _description,final String _default,final Function<String,T> _parser){
		this.container=DefaultParameterContainer.builder()
												.name(name())
												.type(_type)
												.description(_description)
												.defaultValue(_default)
												.parser((Function<String,Object>)_parser)
											.build();
	}

	@Override
	public Class getType() {
		return this.container.getType();
	}

	@Override
	public Function<String, Object> getParser() {
		return this.container.getParser();
	}

	@Override
	public Optional<Object> getValue() {
		return this.container.getValue();
	}

	@Override
	public Parameter setValue(Object _value) {
		return this.container.setValue(_value);
	}

	@Override
	public Optional<String> getDefaultValue() {
		return this.container.getDefaultValue();
	}

	@Override
	public String getDescription() {
		return this.container.getDescription();
	}
}
  1. Into your main instantiate Standalone
package mypackage;

import java.util.Optional;
import java.util.function.Function;
import org.bytemechanics.standalone.ignite.beans.DefaultParameterContainer;


public final class StandaloneApp implements Ignitable{

	@Override
	public void beforeStartup() {
		System.out.println("before-startup");
	}
	@Override
	public void startup() {
		System.out.println("startup");
	}
	@Override
	public void afterStartup() {
		System.out.println("after-startup");
	}


	@Override
	public void beforeShutdown() {
		System.out.println("before-shutdown");
	}
	@Override
	public void shutdown() {
		System.out.println("shutdown");
	}
	@Override
	public void afterShutdown() {
		System.out.println("after-shutdown");
	}

	(...)

	public static final void main(final String... _args){
		Standalone.builder()
					.arguments(_args)
					.supplier(StandaloneApp::new)
					(...)
					.parameters(StandaloneAppTestParameter.class)
					(...)
				.build();
		(...)
	}
}
  1. Into your main instantiate launch standalone calling ignite() method
package mypackage;

import java.util.Optional;
import java.util.function.Function;
import org.bytemechanics.standalone.ignite.beans.DefaultParameterContainer;


public final class StandaloneApp implements Ignitable{

	(...)

	public static final void main(final String... _args){
		Standalone.builder()
					.arguments(_args)
					.supplier(StandaloneApp::new)
					.parameters(StandaloneAppTestParameter.class)
					(...)
				.build()
					.ignite();
	}
}
org.bytemechanics.maven

ByteMechanics Foundation

Foundation dedicated to provide opensource libraries and resources to simplify developers life

Versions

Version
1.3.2
1.3.1
1.3.0
1.2.0
1.1.0
1.0.0