Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to replace "Application Groups" and "ResourceGroups" with user defined terms in the UI #83

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
88a8cff
Adding ability to rename Application Groups and Resource Groups in UI
Dec 24, 2013
a8c0318
Ability to rename resource groups and application groups in ice.js
Dec 31, 2013
1547339
Fix in the breakdown view to support parameterised Resource/Applicati…
Jan 2, 2014
a8b1e13
Adding endpoints in the DashboardController to retrieve the App/Resou…
Jan 6, 2014
bf44747
Removing endpoints in the dashboard controller and passing the app/re…
Jan 8, 2014
248d308
Bugfix: The edit and delete columns were not being displayed in the b…
Jan 9, 2014
ef350fd
Fix code block spacing to enable formatting.
grahamc Jan 19, 2015
99ec888
Add new South America AZ(sa-east-1c) and some extra debugging so that…
ansoni Feb 26, 2015
3505dd6
Merge pull request #154 from slgmibu/feature/sa-east-1c
vfilanovsky Feb 26, 2015
0851776
Update README.md
Mar 13, 2015
8662a29
Upgrade to Grails 2.4.4
orieg Mar 20, 2015
9787fd6
Merge pull request #159 from orieg/master
vfilanovsky Mar 25, 2015
bf8eb7e
Fix NullPointer that occurs when we don't have recent billing data
ansoni Mar 30, 2015
a7f351e
Merge pull request #167 from slgmibu/feature/DashboardNullPointer
vfilanovsky Apr 14, 2015
da248e8
Merge pull request #136 from slgmibu/feature/unblended_support
vfilanovsky Apr 14, 2015
88a4f61
Merge pull request #161 from ma78/patch-2
vfilanovsky Apr 14, 2015
9dbeaa1
Merge pull request #134 from grahamc/patch-1
vfilanovsky Apr 14, 2015
c319d16
Adding ability to rename Application Groups and Resource Groups in UI
Dec 24, 2013
80076c5
Ability to rename resource groups and application groups in ice.js
Dec 31, 2013
635d38a
Fix in the breakdown view to support parameterised Resource/Applicati…
Jan 2, 2014
2136556
Adding endpoints in the DashboardController to retrieve the App/Resou…
Jan 6, 2014
fe6c550
Removing endpoints in the dashboard controller and passing the app/re…
Jan 8, 2014
621eb87
Bugfix: The edit and delete columns were not being displayed in the b…
Jan 9, 2014
48bb1d3
Merge branch 'master' of github.com:oliviervg1/ice
oliviervg1 Apr 28, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ When representing the cost profile for individual resources, Ice will factor the
##Prerequisite:

1. First sign up for Amazon's programmatic billing access [here](http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/detailed-billing-reports.html) to receive detailed billing(hourly) reports. Verify you receive monthly billing file in the following format: `<accountid>-aws-billing-detailed-line-items-<year>-<month>.csv.zip`.
2. Install Grails 2.2.1 and set GRAILS_HOME and JAVA_HOME
2. Install Grails 2.4.4 and set GRAILS_HOME and JAVA_HOME
3. Ice uses [highstock](http://www.highcharts.com/) to generate interactive graphs. Please make sure you acquire the proper license before using it.


Expand Down Expand Up @@ -177,15 +177,19 @@ Options with * require writing your own code.
2.1 Set ice.reservationCapacityPoller=true in ice.properties

2.2 Make sure you set up reservation owner accounts in ice.properties. For example:

ice.owneraccount.account1=
ice.owneraccount.account2=account3,account4
ice.owneraccount.account5=account6

2.3 If you need to poll reservation capacity of different accounts, set up IAM roles. Then specify the assumed roles and external ids in ice.properties. For example, if assumed role "ice" is used:

ice.owneraccount.account1.role=ice
ice.owneraccount.account2.role=ice
ice.owneraccount.account5.role=ice

If you use external id too, specify it like following:

ice.owneraccount.account1.externalId=


Expand All @@ -207,6 +211,7 @@ Options with * require writing your own code.
All linked accounts under the same payer account can share each other's reservations (see http://docs.aws.amazon.com/awsaccountbilling/latest/about/AboutConsolidatedBilling.html).

If reserved instances are shared among accounts, please specify them in ice.properties. For example:

# set reservation owner accounts. In the example below, account1, account2, account3 and account4 are linked under the same payer account. account5, account6 are linked under the same payer account.
# if reservation capacity poller is enabled, the poller will try to poll reservation capacity through ec2 API (desribeReservedInstances) for each reservation owner account.
ice.owneraccount.account1_name=account2_name,account3_name,account4_name
Expand All @@ -230,6 +235,10 @@ Options with * require writing your own code.
ice.customTags=tag1,tag2

You will need to ensure that any tag you wish to use in ICE is ticked in the "Manage Cost allocation report" page here: https://portal.aws.amazon.com/gp/aws/developer/account?ie=UTF8&action=cost-allocation-report

Any tag that you have created yourself (as opposed to being automatically generated by AWS) will require you to use the ice.customTags= parameter in the following way. See this example:

ice.customTags=user:CostCenter,User:Environment


7. Weekly cost email per application group (*)
Expand Down
5 changes: 1 addition & 4 deletions application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

app.grails.version=2.2.1
app.grails.version=2.4.4
app.name=ice
app.servlet.version=2.4
app.version=1.1.0
Expand All @@ -30,6 +30,3 @@ log4j.category.httpclient=ERROR
log4j.category.org.codehaus.groovy=WARN
log4j.category.sun.reflect=WARN
log4j.rootLogger=INFO, stdout

plugins.tomcat=2.2.1

4 changes: 4 additions & 0 deletions grails-app/conf/BootStrap.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,10 @@ class BootStrap {
properties.setProperty(IceOptions.CURRENCY_SIGN, prop.getProperty(IceOptions.CURRENCY_SIGN));
if (prop.getProperty(IceOptions.HIGHSTOCK_URL) != null)
properties.setProperty(IceOptions.HIGHSTOCK_URL, prop.getProperty(IceOptions.HIGHSTOCK_URL));
if (prop.getProperty(IceOptions.RESOURCE_GROUP) != null)
properties.setProperty(IceOptions.RESOURCE_GROUP, prop.getProperty(IceOptions.RESOURCE_GROUP));
if (prop.getProperty(IceOptions.APPLICATION_GROUP) != null)
properties.setProperty(IceOptions.APPLICATION_GROUP, prop.getProperty(IceOptions.APPLICATION_GROUP));

ResourceService resourceService = StringUtils.isEmpty(properties.getProperty(IceOptions.CUSTOM_TAGS)) ? null : new BasicResourceService();
ApplicationGroupService applicationGroupService = new BasicS3ApplicationGroupService();
Expand Down
5 changes: 4 additions & 1 deletion grails-app/conf/BuildConfig.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ grails.project.test.class.dir = 'target/test-classes'
grails.project.test.reports.dir = 'target/test-reports'
grails.project.war.file = "target/${appName}.war"

grails.project.dependency.resolver = "maven"

grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
Expand Down Expand Up @@ -113,6 +115,7 @@ grails.project.dependency.resolution = {
}

plugins {
build ":tomcat:$grailsVersion"
//runtime ":hibernate4:4.3.6.1"
build ":tomcat:8.0.20"
}
}
23 changes: 21 additions & 2 deletions grails-app/controllers/com/netflix/ice/DashboardController.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,23 @@ class DashboardController {
return [status: 200, start: 0, data: [:], stats: [:], groupBy: "None"];
}

TagType groupBy = query.getString("groupBy").equals("None") ? null : TagType.valueOf(query.getString("groupBy"));
TagType groupBy = null;
String groupByParam = query.getString("groupBy");
switch(groupByParam) {
case getConfig().resourceGroup:
groupBy = TagType.valueOf("ResourceGroup");
break;
case getConfig().applicationGroup:
groupBy = TagType.valueOf("ApplicationGroup");
break;
case "None":
break;
default:
groupBy = TagType.valueOf(query.getString("groupBy"));
break;
}

//TagType groupBy = query.getString("groupBy").equals("None") ? null : TagType.valueOf(query.getString("groupBy"));
boolean isCost = query.getBoolean("isCost");
boolean breakdown = query.getBoolean("breakdown");
boolean showsps = query.getBoolean("showsps");
Expand Down Expand Up @@ -428,7 +444,10 @@ class DashboardController {
start = dateFormatter.parseDateTime(query.getString("start"));

Interval interval = new Interval(start, end);
interval = tagGroupManager.getOverlapInterval(interval);
Interval overlap_interval = tagGroupManager.getOverlapInterval(interval);
if (overlap_interval != null) {
interval = overlap_interval
}
if (interval.getEnd().getMonthOfYear() == new DateTime(DateTimeZone.UTC).getMonthOfYear()) {
DateTime curMonth = new DateTime(DateTimeZone.UTC).withDayOfMonth(1).withMillisOfDay(0);
int hoursWithData = getManagers().getUsageManager(null, ConsolidateType.hourly).getDataLength(curMonth);
Expand Down
6 changes: 4 additions & 2 deletions grails-app/views/dashboard/appgroup.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,18 @@

--%>

<%@ page import="com.netflix.ice.reader.ReaderConfig" %>

<%@ page contentType="text/html;charset=UTF-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main"/>
<title>Application Group {{appgroup.name}}</title>
<title>${ReaderConfig.getInstance().applicationGroup} {{appgroup.name}}</title>
</head>
<body>
<div class="" style="margin: auto; width: 1652px; padding: 10px 30px" ng-controller="appgroupCtrl">

<h1>Application Group <b>{{appgroup.name}}</b>
<h1>${ReaderConfig.getInstance().applicationGroup} <b>{{appgroup.name}}</b>
<a href="editappgroup#{{appgroup.name}}" style="font-weight: normal; font-size: 12px; text-decoration: underline; float: right">Edit Application Group</a>
</h1>

Expand Down
12 changes: 7 additions & 5 deletions grails-app/views/dashboard/breakdown.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

--%>

<%@ page import="com.netflix.ice.reader.ReaderConfig" %>

<%@ page contentType="text/html;charset=UTF-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Expand Down Expand Up @@ -89,8 +91,8 @@
<table>
<thead>
<tr>
<th rowspan="2" ng-show="groupBy.name == 'ApplicationGroup'" style="text-align: center; width: 35px">Edit</th>
<th rowspan="2" ng-show="groupBy.name == 'ApplicationGroup'" style="text-align: center; width: 40px">Delete</th>
<th rowspan="2" ng-show="groupBy.name == '${ReaderConfig.getInstance().applicationGroup}'" style="text-align: center; width: 35px">Edit</th>
<th rowspan="2" ng-show="groupBy.name == '${ReaderConfig.getInstance().applicationGroup}'" style="text-align: center; width: 40px">Delete</th>
<th rowspan="2" ng-click="order('name')">{{groupBy.name}}</th>
<th colspan="2" ng-repeat="period in periods" style="text-align: center;">{{dayFormat(period)}} {{getConsolidateName(data_consolidate)}}</th>
</tr>
Expand All @@ -100,14 +102,14 @@
</thead>
<tbody>
<tr ng-repeat="row in data | filter:filter_legend" class="{{getTrClass($index)}}">
<td ng-show="groupBy.name == 'ApplicationGroup'" style="text-align: center;">
<td ng-show="groupBy.name == '${ReaderConfig.getInstance().applicationGroup}'" style="text-align: center;">
<a ng-href="editappgroup#{{row.name}}"><img src="${resource(dir: '/')}images/tango/16/tools/draw-freehand.png" alt="Edit"></a>
</td>
<td ng-show="groupBy.name == 'ApplicationGroup'" style="text-align: center;">
<td ng-show="groupBy.name == '${ReaderConfig.getInstance().applicationGroup}'" style="text-align: center;">
<a href="javascript:void(0)" ng-click="deleteAppGroup(row.name);"><img src="${resource(dir: '/')}images/tango/16/places/user-trash.png" alt="Delete"></a>
</td>
<td ng-switch on="groupBy.name">
<a ng-switch-when="ResourceGroup" ng-href="detail#showResourceGroups=true&groupBy=UsageType&start={{dataStart}}&end={{dataEnd}}&usage_cost={{usage_cost}}&resourceGroup={{row.name}}">{{row.name}}</a>
<a ng-switch-when="${ReaderConfig.getInstance().resourceGroup}" ng-href="detail#showResourceGroups=true&groupBy=UsageType&start={{dataStart}}&end={{dataEnd}}&usage_cost={{usage_cost}}&resourceGroup={{row.name}}">{{row.name}}</a>
<a ng-switch-default ng-href="appgroup#appgroup={{row.name}}&start={{dataStart}}&end={{dataEnd}}&usage_cost={{usage_cost}}">{{row.name}}</a>
</td>
<td ng-repeat="header in headers">
Expand Down
4 changes: 3 additions & 1 deletion grails-app/views/dashboard/detail.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

--%>

<%@ page import="com.netflix.ice.reader.ReaderConfig" %>

<%@ page contentType="text/html;charset=UTF-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Expand All @@ -31,7 +33,7 @@
<td>Account</td>
<td>Region</td>
<td>Product</td>
<td ng-show="showResourceGroups">ResourceGroup</td>
<td ng-show="showResourceGroups">${ReaderConfig.getInstance().resourceGroup}</td>
<td>Operation</td>
<td>UsageType</td>
</tr>
Expand Down
8 changes: 5 additions & 3 deletions grails-app/views/dashboard/editappgroup.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,25 @@

--%>

<%@ page import="com.netflix.ice.reader.ReaderConfig" %>

<%@ page contentType="text/html;charset=UTF-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main"/>
<title>Edit Application Group</title>
<title>Edit ${ReaderConfig.getInstance().applicationGroup}</title>
</head>
<body>
<div class="" style="margin: auto; width: 1024px; padding: 20px 30px" ng-controller="editCtrl">

<div class="message" ng-show="message">{{message}}</div>

<h1><span ng-show="isCreate">Create</span><span ng-show="!isCreate">Edit</span> Application Group <b>{{appgroup.name}}</b></h1>
<h1><span ng-show="isCreate">Create</span><span ng-show="!isCreate">Edit</span> ${ReaderConfig.getInstance().applicationGroup} <b>{{appgroup.name}}</b></h1>

<div class="dialog">
<table>
<tr class="prop">
<td class="name">Group Name:</td>
<td class="name">Name:</td>
<td class="name"><input ng-model="appgroup.name" class="required" type="text"/></td>
<td></td>
</tr>
Expand Down
12 changes: 7 additions & 5 deletions grails-app/views/layouts/main.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
<ul>
<li class="menuButton"><a class="link_with_params" href="${resource(dir: 'dashboard', file: 'detail')}#{{getTimeParams()}}" ng-click="reload()">General Details</a></li>
<g:if test="${ReaderConfig.getInstance().resourceService != null}">
<li class="menuButton"><a class="link_with_params" href="${resource(dir: 'dashboard', file: 'detail')}#showResourceGroups=true&{{getTimeParams()}}" ng-click="reload()">Details With Resource Groups</a></li>
<li class="menuButton"><a class="link_with_params" href="${resource(dir: 'dashboard', file: 'detail')}#showResourceGroups=true&{{getTimeParams()}}" ng-click="reload()">Details With ${ReaderConfig.getInstance().resourceGroup}s</a></li>
</g:if>
</ul>
</li>
Expand All @@ -60,11 +60,11 @@
</li>
<g:if test="${ReaderConfig.getInstance().resourceService != null}">
<li class="menuButton dropdown">
<a class="link_with_params" href="${resource(dir: 'dashboard', file: 'breakdown')}#groupBy=ApplicationGroup&{{getTimeParams()}}" ng-click="reload()">Breakdown</a>
<a class="link_with_params" href="${resource(dir: 'dashboard', file: 'breakdown')}#groupBy=${ReaderConfig.getInstance().applicationGroup}&{{getTimeParams()}}" ng-click="reload()">Breakdown</a>
<ul>
<li class="menuButton"><a class="" href="${resource(dir: 'dashboard', file: 'breakdown')}#groupBy=ApplicationGroup&{{getTimeParams()}}" ng-click="reload()">By Application Group</a></li>
<li class="menuButton"><a class="" href="${resource(dir: 'dashboard', file: 'breakdown')}#{{getTimeParams()}}" ng-click="reload()">By Resource Group</a></li>
<li class="menuButton"><a class="" href="${resource(dir: 'dashboard', file: 'editappgroup')}" ng-click="reload()">Create New Application Group</a></li>
<li class="menuButton"><a class="" href="${resource(dir: 'dashboard', file: 'breakdown')}#groupBy=${ReaderConfig.getInstance().applicationGroup}&{{getTimeParams()}}" ng-click="reload()">By ${ReaderConfig.getInstance().applicationGroup}</a></li>
<li class="menuButton"><a class="" href="${resource(dir: 'dashboard', file: 'breakdown')}#{{getTimeParams()}}" ng-click="reload()">By ${ReaderConfig.getInstance().resourceGroup}</a></li>
<li class="menuButton"><a class="" href="${resource(dir: 'dashboard', file: 'editappgroup')}" ng-click="reload()">Create New ${ReaderConfig.getInstance().applicationGroup}</a></li>
</ul>
</li>
</g:if>
Expand All @@ -80,6 +80,8 @@
var throughput_factoredCostCurrencySign = '${ReaderConfig.getInstance().throughputMetricService == null ? "" : ReaderConfig.getInstance().throughputMetricService.getFactoredCostCurrencySign()}';
var throughput_factoredCostMultiply = '${ReaderConfig.getInstance().throughputMetricService == null ? "" : ReaderConfig.getInstance().throughputMetricService.getFactoredCostMultiply()}';
var global_currencySign = '${ReaderConfig.getInstance().currencySign}';
var application_group_name = '${ReaderConfig.getInstance().applicationGroup}';
var resource_group_name = '${ReaderConfig.getInstance().resourceGroup}';
</script>
<script type="text/javascript" src="${resource(dir: 'js', file: 'jquery-1.9.1.min.js')}"></script>
<script type="text/javascript" src="${resource(dir: 'js', file: 'jquery-ui-1.10.1.min.js')}"></script>
Expand Down
44 changes: 36 additions & 8 deletions grailsw
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ earlyInit
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
mingw=false;
case "`uname`" in
CYGWIN*)
cygwin=true
Expand All @@ -44,6 +45,10 @@ case "`uname`" in
Darwin*)
darwin=true
;;

MINGW*)
mingw=true
;;
esac

# Attempt to set JAVA_HOME if it's not already set
Expand Down Expand Up @@ -74,6 +79,15 @@ if $cygwin ; then
CP=`cygpath --path --unix "$CP"`
fi

# quick detection of JDK version without JVM startup overhead
CLASSFILE_HEADER_FILE="${JAVA_HOME}/include/classfile_constants.h"
if [ -z "$GRAILS_NO_PERMGEN" -a -f "${CLASSFILE_HEADER_FILE}" ]; then
CLASSFILE_VERSION=`cat "${CLASSFILE_HEADER_FILE}" | grep "#define JVM_CLASSFILE_MAJOR_VERSION" | awk '{ print $3 }' 2> /dev/null`
if [ 0$CLASSFILE_VERSION -ge 52 ]; then
GRAILS_NO_PERMGEN=1
fi
fi

# Remove possible trailing slash (after possible cygwin correction)
GRAILS_HOME=`echo $GRAILS_HOME | sed -e 's|/$||g'`

Expand Down Expand Up @@ -118,7 +132,7 @@ fi
if [ -z "$STARTER_CONF" ]; then
STARTER_CONF="$GRAILS_HOME/conf/groovy-starter.conf"
fi
STARTER_CLASSPATH="wrapper/grails-wrapper-runtime-2.2.1.jar:wrapper:."
STARTER_CLASSPATH="wrapper/grails-wrapper-runtime-2.4.4.jar:wrapper:."

# Allow access to Cocoa classes on OS X
if $darwin; then
Expand Down Expand Up @@ -179,18 +193,24 @@ if $cygwin ; then
AGENT_GRAILS_HOME=`cygpath --windows "$GRAILS_HOME"`
fi

if $mingw ; then
# Converts GRAILS_HOME path to Windows syntax
[ -n "$GRAILS_HOME" ] &&
AGENT_GRAILS_HOME=`cmd //C echo "$GRAILS_HOME"`
fi

if [ -z "$GRAILS_AGENT_CACHE_DIR" ]; then
GRAILS_AGENT_CACHE_DIR=~/.grails/2.2.1/
GRAILS_AGENT_CACHE_DIR=~/.grails/2.4.4/
fi
SPRINGLOADED_PARAMS=profile=grails;cacheDir=$GRAILS_AGENT_CACHE_DIR
SPRINGLOADED_PARAMS=profile=grails\;cacheDir=$GRAILS_AGENT_CACHE_DIR
if [ ! -d "$GRAILS_AGENT_CACHE_DIR" ]; then
mkdir -p "$GRAILS_AGENT_CACHE_DIR"
fi

# Process JVM args
AGENT_STRING="-javaagent:wrapper/springloaded-core-1.1.1.jar -noverify -Dspringloaded=\"$SPRINGLOADED_PARAMS\""
AGENT_STRING="-javaagent:wrapper/springloaded-1.2.1.RELEASE.jar -Xverify:none -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=$SPRINGLOADED_PARAMS"
CMD_LINE_ARGS=""
DISABLE_RELOADING=false
DISABLE_RELOADING=true

while true; do
if [ "$1" = "-cp" ] || [ "$1" = "-classpath" ]; then
Expand All @@ -201,6 +221,7 @@ while true; do

if [ "$1" = "-reloading" ]; then
AGENT=$AGENT_STRING
DISABLE_RELOADING=false
shift
break
fi
Expand Down Expand Up @@ -263,7 +284,9 @@ if $cygwin; then
GRAILS_HOME=`cygpath --path --mixed "$GRAILS_HOME"`
JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"`
STARTER_CONF=`cygpath --path --mixed "$STARTER_CONF"`
CP=`cygpath --path --mixed "$CP"`
if [ "x$CP" != "x" ] ; then
CP=`cygpath --path --mixed "$CP"`
fi
TOOLS_JAR=`cygpath --path --mixed "$TOOLS_JAR"`
STARTER_CLASSPATH=`cygpath --path --mixed "$STARTER_CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
Expand All @@ -283,7 +306,7 @@ if $cygwin; then
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
if [ $CHECK -ne 0 ] ; then
convArg=`cygpath --path --ignore --mixed "$arg"`
convArg=`cygpath --path --ignore --mixed -- "$arg"`
else
convArg=$arg
fi
Expand All @@ -302,7 +325,10 @@ startGrails() {
then
GRAILS_OPTS="$GRAILS_OPTS"
else
GRAILS_OPTS="-server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8"
GRAILS_OPTS="-server -Xmx768M -Xms64M -Dfile.encoding=UTF-8"
if [ "$GRAILS_NO_PERMGEN" != "1" ]; then
GRAILS_OPTS="$GRAILS_OPTS -XX:PermSize=32m -XX:MaxPermSize=256m"
fi
fi
JAVA_OPTS="$GRAILS_OPTS $JAVA_OPTS $AGENT"
# Start the Profiler or the JVM
Expand All @@ -314,6 +340,7 @@ startGrails() {
-classpath "$STARTER_CLASSPATH" \
-Dgrails.home="$GRAILS_HOME" \
-Dtools.jar="$TOOLS_JAR" \
-Djava.net.preferIPv4Stack=true \
$STARTER_MAIN_CLASS \
--main $CLASS \
--conf "$STARTER_CONF" \
Expand All @@ -323,6 +350,7 @@ startGrails() {
-classpath "$STARTER_CLASSPATH" \
-Dgrails.home="$GRAILS_HOME" \
-Dtools.jar="$TOOLS_JAR" \
-Djava.net.preferIPv4Stack=true \
$STARTER_MAIN_CLASS \
--main $CLASS \
--conf "$STARTER_CONF" \
Expand Down
Loading