Skip to content

Commit

Permalink
adding profiles
Browse files Browse the repository at this point in the history
  • Loading branch information
ctoestreich committed Jul 20, 2017
1 parent 60eb25d commit feae678
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 0 deletions.
20 changes: 20 additions & 0 deletions initializr-app/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1146,6 +1146,26 @@ initializr:
groupId: org.springframework.boot
artifactId: spring-boot-starter-logging
description: Spring boot starter logging includes all the goodies
- name: Swagger
content:
- name: Spring Fox Swagger
groupId: io.springfox
artifactId: springfox-swagger2
id: springfox
description: Spring fox swagger core libs
version: 2.7.0
- name: Spring Fox Swagger UI
groupId: io.springfox
artifactId: springfox-swagger-ui
id: springfoxui
description: Spring fox swagger ui
version: 2.7.0
- name: Spring Fox Validators
groupId: io.springfox
artifactId: springfox-bean-validators
id: springfoxbean
description: Spring fox swagger support for javax.validation
version: 2.7.0
types:
- name: Maven Project
id: maven-project
Expand Down
93 changes: 93 additions & 0 deletions initializr-web/src/main/resources/static/js/start.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,18 @@
}());

$(function () {

function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
arr2[i] = arr[i];
}
return arr2;
} else {
return Array.from(arr);
}
}

if (navigator.appVersion.indexOf("Mac") != -1) {
$(".btn-primary").append("<kbd>&#8984; + &#9166;</kbd>");
}
Expand Down Expand Up @@ -154,6 +166,10 @@ $(function () {
}
});
engine.add(data.dependencies);
if (!initialLoad) {
$("#archetype").val('MICRO').trigger('change').blur();
initialLoad = true;
}
});
};
var generatePackageName = function() {
Expand Down Expand Up @@ -256,6 +272,83 @@ $(function () {
removeTag(value);
}
});

var savedPrefix = '';
var savedSuffix = '';
var currentPackageName = '';
var currentDomainName = '';
var initialLoad = false;

function getNameValueParsed() {
var convertToEmpty = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;

var replacement = convertToEmpty ? '' : '-';
return $("#name").val().trim().replace(/ +/g, ' ').replace(/ /g, replacement).replace(/_/g, replacement).replace(/-/g, replacement);
}

function setArtifactIdAndBaseDir(prefix, suffix) {
var replaceDash = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
savedPrefix = prefix;
savedSuffix = suffix;
var name = prefix + getNameValueParsed(replaceDash).toLowerCase() + suffix;
$("#artifactId").val(name);
$("#baseDir").val(name);
}

function alignArtifactAndPackageNames() {
$("#packageName").val(currentPackageName + '.' + (currentDomainName ? currentDomainName + '.' : '') + getNameValueParsed().toLowerCase());
$("#groupId").val(currentPackageName);
}

function setDefaultPackageName(defaultPkgName) {
currentPackageName = defaultPkgName;
alignArtifactAndPackageNames();
}

var base = ['springboot', 'spring-test', 'logging', 'spock'];
var common = [].concat(base);
var data = ['dbsync', 'mysql', 'jdbc'];
var data_jpa = ['data-jpa'];
var web = ['web', 'actuator', 'payload-client', 'sba-client', 'cloud-hystrix', 'cloud-hystrix-dashboard', 'springfox', 'springfoxui', 'springfoxbean', 'restdocs', 'cloud-starter-zipkin'];
var all = [].concat(web, _toConsumableArray(common), data, data_jpa);

$("#archetype").on("change", function () {
$("#starters div").remove();
$("#dependencies input").prop('checked', false);
var results = [];
var val = $('#archetype').val();
if (val === 'LIBRARY') {
setDefaultPackageName('org.grails.conf');
setArtifactIdAndBaseDir('', '');
results = starters.get([].concat(common));
} else if (val === 'MICRO_RABBIT') {
setDefaultPackageName('org.grails.conf.service');
setArtifactIdAndBaseDir('rabbit-', '-service');
results = starters.get(['cloud-stream-binder-rabbit'].concat(_toConsumableArray(all)));
} else if (val === 'MICRO_KAFKA') {
setDefaultPackageName('org.grails.conf.service');
setArtifactIdAndBaseDir('kafka-', '-service');
results = starters.get(['cloud-stream-binder-kafka'].concat(_toConsumableArray(all)));
} else if (val === 'MICRO') {
setDefaultPackageName('org.grails.conf.service');
setArtifactIdAndBaseDir('', '-service');
results = starters.get([].concat(_toConsumableArray(all)));
} else if (val === "APP_WEB_DATA") {
setDefaultPackageName('org.grails.conf');
setArtifactIdAndBaseDir('app-', '');
results = starters.get([].concat(_toConsumableArray(all)));
} else {
setDefaultPackageName('org.grails.conf');
setArtifactIdAndBaseDir('', '', false);
results = starters.get(['']);
}

for (var i = 0; i < results.length; i++) {
addTag(results[i].id, results[i].name, results[i].topic, results[i].description);
$('#dependencies input[value=\'' + results[i].id + '\']').prop('checked', true);
}
});

Mousetrap.bind(['command+enter', 'alt+enter'], function (e) {
$("#form").submit();
return false;
Expand Down
19 changes: 19 additions & 0 deletions initializr-web/src/main/resources/templates/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,25 @@ <h2>Project Metadata</h2>
</div>
</div>
<div class="col-sm-12 col-md-6">

<h2>Project Type</h2>
<p>Select type to generate and dependencies will be auto selected for you</p>

<!-- begin custom stuff -->
<div class="form-group">
<label for="archetype" class="control-label">Select a Starter Archetype</label>&nbsp;
<select id="archetype" name="archetype">
<option value="CUSTOM">Blank Project</option>
<option value="LIBRARY">Library</option>
<option value="NOTHING">---------</option>
<option value="MICRO">Microservice</option>
<option value="MICRO_RABBIT">Microservice (Rabbit)</option>
<option value="MICRO_KAFKA">Microservice (Kafka)</option>
<option value="NOTHING">---------</option>
<option value="APP_WEB_DATA">App Module (Web/Data)</option>
</select>
</div>

<h2>Dependencies</h2>

<p>Add Spring Boot Starters and dependencies to your application</p>
Expand Down

0 comments on commit feae678

Please sign in to comment.