<commit_before># Bootstrap Liferay Advanced Developer Environments(**BLADE**)

[![Build Status](https://travis-ci.org/rotty3000/blade.svg?branch=master)](https://travis-ci.org/rotty3000/blade)
[![Join the chat at https://gitter.im/rotty3000/blade](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/rotty3000/blade?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

This small experiment aims to provide bootstrap project environments for all the major build tools in common use for Java projects so that Liferay development can start quickly and easily.

# Projects
The template projects are categorized based on the build tools,

* `gradle` - these are set of Liferay projects that can be bootstrapped on to `gradle` based development environment
* `maven` - these are set of Liferay projects that can be bootstrapped on to `maven` development environment
* `bndtools` - these are set of Liferay projects that can be bootstrapped on to `bndtools` based development environment

The projects also demonstrate how to use various frameworks like:

* Blueprint
* Declarative Services(**DS**)
* OSGI API

## Gradle

* `/gradle/blade.authenticator.shiro`

> A gradle project which uses Apache Shiro for hooking auth.pipeline.pre.

* `/gradle/blade.authfailure`

> A gradle project which demonstrates a hook for auth.failure and auth.max.failures.

* `/gradle/blade.configurationaction`

> A gradle project which demonstrates integration point of ConfigurationAction.

* `/gradle/blade.gogo`

> A gradle project which contributes to felix gogo commands.

* `/gradle/blade.indexerpostprocessor`

> A gradle project which contributes to IndexerPostProcessor.

* `/gradle/blade.lifecycle.loginpreaction`

> A gradle project which makes a hook for login.events.pre.

* `/gradle/blade.pollprocessor`

> A gradle project which make a hook for PollerProcessor.

* `/gradle/blade.portlet.actioncommand`

> A gradle project which demonstrates integration point of MVCActionCommand.

* `/gradle/blade.portlet.blueprint`

> A gradle project which uses Blueprint for registering a portlet.

* `/gradle/blade.portlet.ds`

> A gradle project which uses the DS (Declarative Services) for registering a portlet.

* `/gradle/blade.portlet.filter`

> A gradle project which demonstrates integration point of PortletFilter.

* `/gradle/blade.portlet.jsp`

> A gradle project which demonstrates a simple jsp portlet.

* `/gradle/blade.portlet.osgiapi`

>A gradle project which uses the raw OSGI APIs for registering a portlet.

* `/gradle/blade.service.hook.user`

> A gradle project which makes a hook for UserLocalServiceWrapper.

* `/gradle/blade.servicebuilder.api`
* `/gradle/blade.servicebuilder.svc`
* `/gradle/blade.servicebuilder.test`
* `/gradle/blade.servicebuilder.web`

>ServiceBuilder based project, separated to 4 bundles, api bundle for interface, svc bundle for implementation, test bundle for tesing, web bundle is a portlet calling generated services. 

* `/gradle/blade.strutsaction`

> A gradle project which demonstrates integration point of StrutsAction.

* `/gradle/blade.strutsportletaction`

> A gradle project which demonstrates integration point of StrutsPortletAction.

## Maven

* `/maven/blade.portlet.blueprint`

> A maven project which uses Blueprint for registering a portlet.

* `/maven/blade.portlet.ds`

> A maven project which uses the DS (Declarative Services) for registering a portlet.

* `/maven/blade.portlet.osgiapi`

>A maven project which uses the raw OSGI APIs for registering a portlet.

Other projects' description will come soon.

## Bndtools

* `cnf`

> The Bndtools configuration project

* `/bndtools/blade.portlet.blueprint`

> A bndtools project which uses Blueprint for registering a portlet.

* `/bndtools/blade.portlet.ds`

> A bndtools project which uses the DS (Declarative Services) for registering a portlet.

* `/bndtools/blade.portlet.osgiapi`

>A bndtools project which uses the raw OSGI APIs for registering a portlet.

Other projects' description will come soon.

# Integration Points
The following are the list of Liferay Integration points that are demonstrated as part of these projects,

- [x] javax.portlet.Portlet<commit_msg>update readme by adding maven and bndtools projects' description<commit_after># Bootstrap Liferay Advanced Developer Environments(**BLADE**)

[![Build Status](https://travis-ci.org/rotty3000/blade.svg?branch=master)](https://travis-ci.org/rotty3000/blade)
[![Join the chat at https://gitter.im/rotty3000/blade](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/rotty3000/blade?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

This small experiment aims to provide bootstrap project environments for all the major build tools in common use for Java projects so that Liferay development can start quickly and easily.

# Projects
The template projects are categorized based on the build tools,

* `gradle` - these are set of Liferay projects that can be bootstrapped on to `gradle` based development environment
* `maven` - these are set of Liferay projects that can be bootstrapped on to `maven` development environment
* `bndtools` - these are set of Liferay projects that can be bootstrapped on to `bndtools` based development environment

The projects also demonstrate how to use various frameworks like:

* Blueprint
* Declarative Services(**DS**)
* OSGI API

## Gradle

* `/gradle/blade.authenticator.shiro`

> A gradle project which uses Apache Shiro for hooking auth.pipeline.pre.

* `/gradle/blade.authfailure`

> A gradle project which demonstrates a hook for auth.failure and auth.max.failures.

* `/gradle/blade.configurationaction`

> A gradle project which demonstrates integration point of ConfigurationAction.

* `/gradle/blade.gogo`

> A gradle project which contributes to felix gogo commands.

* `/gradle/blade.indexerpostprocessor`

> A gradle project which contributes to IndexerPostProcessor.

* `/gradle/blade.lifecycle.loginpreaction`

> A gradle project which makes a hook for login.events.pre.

* `/gradle/blade.pollprocessor`

> A gradle project which make a hook for PollerProcessor.

* `/gradle/blade.portlet.actioncommand`

> A gradle project which demonstrates integration point of MVCActionCommand.

* `/gradle/blade.portlet.blueprint`

> A gradle project which uses Blueprint for registering a portlet.

* `/gradle/blade.portlet.ds`

> A gradle project which uses the DS (Declarative Services) for registering a portlet.

* `/gradle/blade.portlet.filter`

> A gradle project which demonstrates integration point of PortletFilter.

* `/gradle/blade.portlet.jsp`

> A gradle project which demonstrates a simple jsp portlet.

* `/gradle/blade.portlet.osgiapi`

>A gradle project which uses the raw OSGI APIs for registering a portlet.

* `/gradle/blade.service.hook.user`

> A gradle project which makes a hook for UserLocalServiceWrapper.

* `/gradle/blade.servicebuilder.api`
* `/gradle/blade.servicebuilder.svc`
* `/gradle/blade.servicebuilder.test`
* `/gradle/blade.servicebuilder.web`

>ServiceBuilder based project, separated to 4 bundles, api bundle for interface, svc bundle for implementation, test bundle for tesing, web bundle is a portlet calling generated services. 

* `/gradle/blade.strutsaction`

> A gradle project which demonstrates integration point of StrutsAction.

* `/gradle/blade.strutsportletaction`

> A gradle project which demonstrates integration point of StrutsPortletAction.

## Maven

* `/maven/blade.authenticator.shiro`

> A maven project which uses Apache Shiro for hooking auth.pipeline.pre.

* `/maven/blade.authfailure`

> A maven project which demonstrates a hook for auth.failure and auth.max.failures.

* `/maven/blade.configurationaction`

> A maven project which demonstrates integration point of ConfigurationAction.

* `/maven/blade.gogo`

> A maven project which contributes to felix gogo commands.

* `/maven/blade.indexerpostprocessor`

> A maven project which contributes to IndexerPostProcessor.

* `/maven/blade.jsf.portlet.ds`

> A maven project which uses the DS (Declarative Services) for registering a jsf portlet.

* `/maven/blade.lifecycle.loginpreaction`

> A maven project which makes a hook for login.events.pre.

* `/maven/blade.pollprocessor`

> A maven project which make a hook for PollerProcessor.

* `/maven/blade.portlet.actioncommand`

> A maven project which demonstrates integration point of MVCActionCommand.

* `/maven/blade.portlet.blueprint`

> A maven project which uses Blueprint for registering a portlet.

* `/maven/blade.portlet.ds`

> A maven project which uses the DS (Declarative Services) for registering a portlet.

* `/maven/blade.portlet.filter`

> A maven project which demonstrates integration point of PortletFilter.

* `/maven/blade.portlet.jsp`

> A maven project which demonstrates a simple jsp portlet.

* `/maven/blade.portlet.osgiapi`

>A maven project which uses the raw OSGI APIs for registering a portlet.

* `/maven/blade.service.hook.user`

> A maven project which makes a hook for UserLocalServiceWrapper.

* `/maven/blade.servicebuilder`

>ServiceBuilder based project, separated to 4 bundles(subprojects), api bundle for interface, svc bundle for implementation, test bundle for tesing, web bundle is a portlet calling generated services.

* `/maven/blade.strutsaction`

> A maven project which demonstrates integration point of StrutsAction.

* `/maven/blade.strutsportletaction`

> A maven project which demonstrates integration point of StrutsPortletAction.

## Bndtools

* `/bndtools/cnf`

> The Bndtools configuration project

* `/bndtools/blade.authenticator.shiro`

> A bndtools project which uses Apache Shiro for hooking auth.pipeline.pre.

* `/bndtools/blade.authfailure`

> A bndtools project which demonstrates a hook for auth.failure and auth.max.failures.

* `/bndtools/blade.portlet.actioncommand`

> A bndtools project which demonstrates integration point of MVCActionCommand.

* `/bndtools/blade.portlet.blueprint`

> A bndtools project which uses Blueprint for registering a portlet.

* `/bndtools/blade.portlet.ds`

> A bndtools project which uses the DS (Declarative Services) for registering a portlet.

* `/bndtools/blade.portlet.filter`

> A bndtools project which demonstrates integration point of PortletFilter.

* `/bndtools/blade.portlet.osgiapi`

> A bndtools project which uses the raw OSGI APIs for registering a portlet.

* `/bndtools/blade.run`

> A bndtools project which can push bundles into an osgi container and run them, need biz.aQute.remote.agent-X.X.X.jar deployed first.

* `/bndtools/blade.service.hook.user`

> A bndtools project which makes a hook for UserLocalServiceWrapper.

* `/bndtools/blade.servicebuilder.api`
* `/bndtools/blade.servicebuilder.svc`
* `/bndtools/blade.servicebuilder.test`
* `/bndtools/blade.servicebuilder.web`

> ServiceBuilder based project, separated to 4 bundles, api bundle for interface, svc bundle for implementation, test bundle for tesing, web bundle is a portlet calling generated services.

# Integration Points
The following are the list of Liferay Integration points that are demonstrated as part of these projects,

- [x] javax.portlet.Portlet
{'fraction_non_alphanumeric': 0.08721656846991609, 'fraction_numerical': 0.0035707909301910374, 'mean_word_length': 4.730434782608696, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 73, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2781245', 'n_tokens_mistral': 3584, 'n_tokens_neox': 3398, 'n_words': 1150}