azkaban-developers
Changes
src/less/azkaban-graph.less 57(+31 -26)
src/less/flow.less 171(+91 -80)
src/less/Makefile 2(+1 -1)
src/less/project.less 27(+18 -9)
src/web/js/azkaban/view/flow-job.js 87(+60 -27)
src/web/js/azkaban/view/main.js 10(+2 -8)
unit/build.xml 69(+35 -34)
Details
diff --git a/src/java/azkaban/execapp/AzkabanExecutorServer.java b/src/java/azkaban/execapp/AzkabanExecutorServer.java
index 41681c0..50be4f6 100644
--- a/src/java/azkaban/execapp/AzkabanExecutorServer.java
+++ b/src/java/azkaban/execapp/AzkabanExecutorServer.java
@@ -109,6 +109,12 @@ public class AzkabanExecutorServer {
runnerManager.setGlobalProps(executorGlobalProps);
configureMBeanServer();
+
+ File statsDir = new File(props.getString("azkaban.stats.dir", "stats"));
+ if (!statsDir.exists()) {
+ statsDir.mkdir();
+ }
+ props.put("azkaban.stats.dir", statsDir.getCanonicalPath());
try {
server.start();
diff --git a/src/java/azkaban/webapp/AzkabanWebServer.java b/src/java/azkaban/webapp/AzkabanWebServer.java
index c24ea11..52e8d7c 100644
--- a/src/java/azkaban/webapp/AzkabanWebServer.java
+++ b/src/java/azkaban/webapp/AzkabanWebServer.java
@@ -197,6 +197,12 @@ public class AzkabanWebServer extends AzkabanServer {
tempDir = new File(props.getString("azkaban.temp.dir", "temp"));
+ File statsDir = new File(props.getString("azkaban.stats.dir", "stats"));
+ if (!statsDir.exists()) {
+ statsDir.mkdir();
+ }
+ props.put("azkaban.stats.dir", statsDir.getCanonicalPath());
+
// Setup time zone
if (props.containsKey(DEFAULT_TIMEZONE_ID)) {
String timezone = props.getString(DEFAULT_TIMEZONE_ID);
@@ -588,8 +594,8 @@ public class AzkabanWebServer extends AzkabanServer {
}
/**
- *
- */
+ *
+ */
public ExecutorManager getExecutorManager() {
return executorManager;
}
@@ -1098,10 +1104,11 @@ public class AzkabanWebServer extends AzkabanServer {
obj = constructor.newInstance(pluginProps);
} catch (Exception e) {
logger.error(e);
+ logger.error(e.getCause());
}
if (!(obj instanceof AbstractAzkabanServlet)) {
- logger.error("The object is not an AbstractViewerServlet");
+ logger.error("The object is not an AbstractAzkabanServlet");
continue;
}
diff --git a/src/java/azkaban/webapp/servlet/velocity/executingflowpage.vm b/src/java/azkaban/webapp/servlet/velocity/executingflowpage.vm
index 4e6f5cc..76919a1 100644
--- a/src/java/azkaban/webapp/servlet/velocity/executingflowpage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/executingflowpage.vm
@@ -42,7 +42,6 @@
</script>
<link rel="stylesheet" type="text/css" href="${context}/css/jquery-ui-1.10.1.custom.css" />
- <link rel="stylesheet" type="text/css" href="${context}/css/azkaban-graph.css" />
</head>
<body>
diff --git a/src/java/azkaban/webapp/servlet/velocity/flowgraphview.vm b/src/java/azkaban/webapp/servlet/velocity/flowgraphview.vm
index 44d6654..4ef618d 100644
--- a/src/java/azkaban/webapp/servlet/velocity/flowgraphview.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/flowgraphview.vm
@@ -17,24 +17,20 @@
## Graph view.
- <div class="container-full container-fill" id="graphView">
+ <div class="container-full container-fill" id="graphView">
<div class="row row-offcanvas row-offcanvas-left">
<div class="col-xs-6 col-sm-3 sidebar-offcanvas graph-sidebar">
- <div class="panel panel-default" id="jobList">
- <div class="panel-heading">
- <input id="filter" type="text" placeholder="Job Filter" class="form-control">
- </div>
- <div id="joblist" class="list-group"></div>
- <div class="panel-footer">
- <div id="autoPanZoom" class="checkbox">
- <label>
- <input type="checkbox" id="autoPanZoomCheckbox" class="autoPanZoom" value="autoPanZoom" />Auto Pan Zoom
- </label>
- </div>
- <button type="button" class="btn btn-sm btn-default" id="resetPanZoomBtn">Reset Pan Zoom</button>
- </div>
- </div><!-- /.panel -->
- </div><!-- /.col-sidebar -->
+ <div class="panel panel-default" id="jobList">
+ <div class="panel-heading">
+ <input id="filter" type="text" placeholder="Job Filter" class="form-control">
+ </div>
+ <div id="joblist"></div>
+ <div class="panel-footer">
+ <button type="button" class="btn btn-sm btn-default" id="resetPanZoomBtn">Reset Pan Zoom</button>
+ <button type="button" class="btn btn-sm btn-default" id="autoPanZoomBtn" data-toggle="button">Auto Pan Zoom</button>
+ </div>
+ </div><!-- /.panel -->
+ </div><!-- /.col-sidebar -->
<div class="col-xs-12 col-sm-9 col-content">
<div id="svgDiv" class="well well-clear well-sm">
<svg id="flow-graph" xmlns="http://www.w3.org/2000/svg" version="1.1" shape-rendering="optimize-speed" text-rendering="optimize-speed">
@@ -42,4 +38,4 @@
</div>
</div>
</div>
- </div>
+ </div>
diff --git a/src/java/azkaban/webapp/servlet/velocity/index.vm b/src/java/azkaban/webapp/servlet/velocity/index.vm
index 9cbe273..3e8eef8 100644
--- a/src/java/azkaban/webapp/servlet/velocity/index.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/index.vm
@@ -102,15 +102,9 @@
</div>
<div class="clearfix"></div>
<div class="project-flows" id="${project.name}-child">
- <table class="table">
- <thead>
- <tr>
- <th class="tb-name">Flows</th>
- </tr>
- </thead>
- <tbody id="${project.name}-tbody">
- </tbody>
- </table>
+ <h5>Flows</h5>
+ <div class="list-group" id="${project.name}-tbody">
+ </div>
</div>
</li>
#end
diff --git a/src/java/azkaban/webapp/servlet/velocity/projectpage.vm b/src/java/azkaban/webapp/servlet/velocity/projectpage.vm
index 4f5fd38..631ec0e 100644
--- a/src/java/azkaban/webapp/servlet/velocity/projectpage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/projectpage.vm
@@ -22,7 +22,6 @@
#parse ("azkaban/webapp/servlet/velocity/javascript.vm")
#parse ("azkaban/webapp/servlet/velocity/svgflowincludes.vm")
<link rel="stylesheet" type="text/css" href="${context}/css/bootstrap-datetimepicker.css" />
- <link rel="stylesheet" type="text/css" href="${context}/css/azkaban-svg.css" />
<script type="text/javascript" src="${context}/js/moment.min.js"></script>
<script type="text/javascript" src="${context}/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="${context}/js/azkaban/view/project.js"></script>
src/less/flow.less 171(+91 -80)
diff --git a/src/less/flow.less b/src/less/flow.less
index e08f0af..5b1a957 100644
--- a/src/less/flow.less
+++ b/src/less/flow.less
@@ -148,85 +148,96 @@ td {
// TODO: Rename this as #job-list
#joblist {
height: 100%;
- ul {
- list-style-type: none;
- padding-left: 0px;
-
- li {
- &.active > a {
- background-color: #D9EDFF;
- }
-
- ul {
- padding-left: 20px;
- }
-
- &.subFilter > a > .expandarrow {
- color : #3398cc;
- }
-
- > a {
- clear:both;
- border-bottom-width: 0;
-
- &.nodedisabled,
- &.DISABLED {
- opacity: 0.3;
- }
-
- &.DISABLED .icon {
- background-position: 16px 0px;
- }
-
- &.READY .icon {
- background-position: 16px 0px;
- }
-
- &.QUEUED .icon {
- opacity: 0.5;
- background-position: 32px 0px;
- }
-
- &.RUNNING .icon {
- background-position: 32px 0px;
- }
-
- &.SUCCEEDED .icon {
- background-position: 48px 0px;
- }
-
- &.FAILED .icon {
- background-position: 0px 0px;
- }
-
- &.KILLED .icon {
- background-position: 0px 0px;
- }
-
- &.FAILED_FINISHING .icon {
- background-position: 0px 0px;
- }
-
- .icon {
- float: left;
- width: 16px;
- height: 16px;
- margin: 2px 4px 0px -5px;
- background-image: url("./images/dot-icon.png");
- background-position: 16px 0px;
- }
-
- .expandarrow {
- float: right;
- width: 16px;
- height: 16px;
- font-size: 8pt;
- }
-
- .filterHighlight {
- background-color: #FFFF00;
- }
- }
- }
+}
+ul.tree-list {
+ list-style-type: none;
+ padding-left: 0px;
+ margin: 0;
+}
+
+li.tree-list-item {
+ &.active > a {
+ background-color: #D9EDFF;
+ }
+
+ ul.tree-list {
+ padding-left: 20px;
+ }
+
+ &.subFilter > a > .expandarrow {
+ color : #3398cc;
+ }
+
+ > a {
+ clear: both;
+ position: relative;
+ display: block;
+ border-bottom-width: 0;
+ padding: 10px 15px;
+
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+ cursor: pointer;
+ }
+
+ &.nodedisabled,
+ &.DISABLED {
+ opacity: 0.3;
+ }
+
+ &.DISABLED .icon {
+ background-position: 16px 0px;
+ }
+
+ &.READY .icon {
+ background-position: 16px 0px;
+ }
+
+ &.QUEUED .icon {
+ opacity: 0.5;
+ background-position: 32px 0px;
+ }
+
+ &.RUNNING .icon {
+ background-position: 32px 0px;
+ }
+
+ &.SUCCEEDED .icon {
+ background-position: 48px 0px;
+ }
+
+ &.FAILED .icon {
+ background-position: 0px 0px;
+ }
+
+ &.KILLED .icon {
+ background-position: 0px 0px;
+ }
+
+ &.FAILED_FINISHING .icon {
+ background-position: 0px 0px;
+ }
+
+ .icon {
+ float: left;
+ width: 16px;
+ height: 16px;
+ margin: 2px 4px 0px -5px;
+ background-image: url("./images/dot-icon.png");
+ background-position: 16px 0px;
+ }
+
+ .expandarrow {
+ float: right;
+ width: 16px;
+ height: 16px;
+ font-size: 8pt;
+ }
+
+ .filterHighlight {
+ background-color: #FFFF00;
+ }
}
}
src/less/Makefile 2(+1 -1)
diff --git a/src/less/Makefile b/src/less/Makefile
index 48f04c6..a3f6fdd 100644
--- a/src/less/Makefile
+++ b/src/less/Makefile
@@ -1,7 +1,7 @@
OBJ_DIR = obj
OBJ = \
$(OBJ_DIR)/azkaban.css \
- $(OBJ_DIR)/azkaban-svg.css
+ $(OBJ_DIR)/azkaban-graph.css
all: $(OBJ)
src/less/project.less 27(+18 -9)
diff --git a/src/less/project.less b/src/less/project.less
index d7e1fb9..7875358 100644
--- a/src/less/project.less
+++ b/src/less/project.less
@@ -40,16 +40,25 @@
}
}
}
+}
- .project-flows {
- display: none;
- background-color: #f9f9f9;
- table {
- background: transparent;
- margin-bottom: 0;
- border-top: 1px solid #dddddd;
- }
- }
+.project-flows {
+ display: none;
+ background-color: #f9f9f9;
+ padding: 10px 15px 10px 15px;
+
+ h5 {
+ margin-top: 5px;
+ }
+
+ .list-group {
+ margin-bottom: 10px;
+ }
+
+ .list-group-item {
+ background: transparent;
+ padding: 7px 12px 7px 12px;
+ }
}
// Flow panel heading.
diff --git a/src/package/execserver/conf/azkaban.properties b/src/package/execserver/conf/azkaban.properties
index 3f9beda..585e208 100644
--- a/src/package/execserver/conf/azkaban.properties
+++ b/src/package/execserver/conf/azkaban.properties
@@ -8,7 +8,7 @@ azkaban.jobtype.plugin.dir=plugins/jobtypes
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
-azkaban.stats.dir=
+azkaban.stats.dir=stats
database.type=mysql
mysql.port=3306
diff --git a/src/package/soloserver/conf/azkaban.properties b/src/package/soloserver/conf/azkaban.properties
index d600ed9..9ca591e 100644
--- a/src/package/soloserver/conf/azkaban.properties
+++ b/src/package/soloserver/conf/azkaban.properties
@@ -21,7 +21,7 @@ h2.path=data/azkaban
h2.create.tables=true
# Stats
-azkaban.stats.dir=
+azkaban.stats.dir=stats
# Velocity dev mode
velocity.dev.mode=false
diff --git a/src/package/webserver/conf/azkaban.properties b/src/package/webserver/conf/azkaban.properties
index 3fe43a0..97e40ae 100644
--- a/src/package/webserver/conf/azkaban.properties
+++ b/src/package/webserver/conf/azkaban.properties
@@ -22,7 +22,7 @@ mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
-azkaban.stats.dir=
+azkaban.stats.dir=stats
# Velocity dev mode
velocity.dev.mode=false
src/web/js/azkaban/view/flow-job.js 87(+60 -27)
diff --git a/src/web/js/azkaban/view/flow-job.js b/src/web/js/azkaban/view/flow-job.js
index c68e279..0e15365 100644
--- a/src/web/js/azkaban/view/flow-job.js
+++ b/src/web/js/azkaban/view/flow-job.js
@@ -19,11 +19,12 @@ azkaban.JobListView = Backbone.View.extend({
"keyup input": "filterJobs",
"click .job": "handleJobClick",
"click #resetPanZoomBtn": "handleResetPanZoom",
+ "click #autoPanZoomBtn": "handleAutoPanZoom",
"contextmenu li.listElement": "handleContextMenuClick",
- "change .autoPanZoom" : "handleAutoPanZoom",
- "click .expandarrow" : "handleToggleMenuExpand"
+ "click .expandarrow": "handleToggleMenuExpand"
},
- initialize: function(settings) {
+
+initialize: function(settings) {
this.model.bind('change:selected', this.handleSelectionChange, this);
this.model.bind('change:disabled', this.handleDisabledChange, this);
this.model.bind('change:graph', this.render, this);
@@ -33,8 +34,8 @@ azkaban.JobListView = Backbone.View.extend({
this.list = $(this.el).find("#joblist");
this.contextMenu = settings.contextMenuCallback;
this.listNodes = {};
-
},
+
filterJobs: function(self) {
var filter = this.filterInput.val();
// Clear all filters first
@@ -54,28 +55,31 @@ azkaban.JobListView = Backbone.View.extend({
node.listElement = li;
var index = nodeName.indexOf(filter);
- if (index != -1) {
- var spanlabel = $(li).find("> a > span");
-
- var endIndex = index + filter.length;
- var newHTML = nodeName.substring(0, index) + "<span class=\"filterHighlight\">" +
+ if (index == -1) {
+ continue;
+ }
+
+ var spanlabel = $(li).find("> a > span");
+
+ var endIndex = index + filter.length;
+ var newHTML = nodeName.substring(0, index) + "<span class=\"filterHighlight\">" +
nodeName.substring(index, endIndex) + "</span>" +
nodeName.substring(endIndex, nodeName.length);
- $(spanlabel).html(newHTML);
-
- // Apply classes to all the included embedded flows.
- var pIndex = key.length;
- while((pIndex = key.lastIndexOf(":", pIndex - 1)) > 0) {
- var parentId = key.substr(0, pIndex);
- var parentLi = this.listNodes[parentId];
- $(parentLi).show();
- $(parentLi).addClass("subFilter");
- }
-
- $(li).show();
+ $(spanlabel).html(newHTML);
+
+ // Apply classes to all the included embedded flows.
+ var pIndex = key.length;
+ while ((pIndex = key.lastIndexOf(":", pIndex - 1)) > 0) {
+ var parentId = key.substr(0, pIndex);
+ var parentLi = this.listNodes[parentId];
+ $(parentLi).show();
+ $(parentLi).addClass("subFilter");
}
+
+ $(li).show();
}
},
+
hideAll: function(self) {
for (var key in this.listNodes) {
var li = this.listNodes[key];
@@ -85,6 +89,7 @@ azkaban.JobListView = Backbone.View.extend({
$(li).hide();
}
},
+
unfilterAll: function(self) {
for (var key in this.listNodes) {
var li = this.listNodes[key];
@@ -94,6 +99,7 @@ azkaban.JobListView = Backbone.View.extend({
$(li).show();
}
},
+
handleStatusUpdate: function(evt) {
var data = this.model.get("data");
var lastUpdateTime = this.model.get("lastUpdateTime");
@@ -101,6 +107,7 @@ azkaban.JobListView = Backbone.View.extend({
this.changeStatuses(data, lastUpdateTime);
}
},
+
changeStatuses: function(data, lastUpdateTime) {
for (var i = 0; i < data.nodes.length; ++i) {
var node = data.nodes[i];
@@ -117,17 +124,19 @@ azkaban.JobListView = Backbone.View.extend({
}
}
},
+
render: function(self) {
var data = this.model.get("data");
var nodes = data.nodes;
this.renderTree(this.list, data);
-//
-// this.assignInitialStatus(self);
+
+ //this.assignInitialStatus(self);
this.handleDisabledChange(self);
this.changeStatuses(data, 0);
},
- renderTree : function(el, data, prefix) {
+
+ renderTree: function(el, data, prefix) {
var nodes = data.nodes;
if (nodes.length == 0) {
console.log("No results");
@@ -149,9 +158,11 @@ azkaban.JobListView = Backbone.View.extend({
});
var ul = document.createElement('ul');
- for(var i=0; i < nodeArray.length; ++i) {
+ $(ul).addClass("tree-list");
+ for (var i = 0; i < nodeArray.length; ++i) {
var li = document.createElement("li");
$(li).addClass("listElement");
+ $(li).addClass("tree-list-item");
// This is used for the filter step.
var listNodeName = prefix + nodeArray[i].id;
@@ -164,7 +175,6 @@ azkaban.JobListView = Backbone.View.extend({
$(iconDiv).addClass('icon');
$(a).append(iconDiv);
- $(a).addClass('list-group-item').addClass('job');
var span = document.createElement("span");
$(span).text(nodeArray[i].id);
@@ -188,6 +198,7 @@ azkaban.JobListView = Backbone.View.extend({
$(el).append(ul);
return ul;
},
+
handleMenuExpand: function(li) {
var expandArrow = $(li).find("> a > .expandarrow");
var submenu = $(li).find("> ul");
@@ -196,6 +207,7 @@ azkaban.JobListView = Backbone.View.extend({
$(expandArrow).addClass("glyphicon-chevron-up");
$(submenu).slideDown();
},
+
handleMenuCollapse: function(li) {
var expandArrow = $(li).find("> a > .expandarrow");
var submenu = $(li).find("> ul");
@@ -204,6 +216,7 @@ azkaban.JobListView = Backbone.View.extend({
$(expandArrow).addClass("glyphicon-chevron-down");
$(submenu).slideUp();
},
+
handleToggleMenuExpand: function(evt) {
var expandarrow = evt.currentTarget;
var li = $(evt.currentTarget).closest("li.listElement");
@@ -218,12 +231,14 @@ azkaban.JobListView = Backbone.View.extend({
evt.stopImmediatePropagation();
},
+
handleContextMenuClick: function(evt) {
if (this.contextMenu) {
this.contextMenu(evt, this.model, evt.currentTarget.node);
return false;
}
},
+
handleJobClick: function(evt) {
console.log("Job clicked");
var li = $(evt.currentTarget).closest("li.listElement");
@@ -245,9 +260,11 @@ azkaban.JobListView = Backbone.View.extend({
this.model.set({"selected": node});
}
},
+
handleDisabledChange: function(evt) {
this.changeDisabled(this.model.get('data'));
},
+
changeDisabled: function(data) {
for (var i =0; i < data.nodes; ++i) {
var node = data.nodes[i];
@@ -262,6 +279,7 @@ azkaban.JobListView = Backbone.View.extend({
}
}
},
+
handleSelectionChange: function(evt) {
if (!this.model.hasChanged("selected")) {
return;
@@ -279,6 +297,7 @@ azkaban.JobListView = Backbone.View.extend({
this.propagateExpansion(current.listElement);
}
},
+
propagateExpansion: function(li) {
var li = $(li).parent().closest("li.listElement")[0];
if (li) {
@@ -286,10 +305,24 @@ azkaban.JobListView = Backbone.View.extend({
this.handleMenuExpand(li);
}
},
+
handleResetPanZoom: function(evt) {
this.model.trigger("resetPanZoom");
},
+
handleAutoPanZoom: function(evt) {
- this.model.set({"autoPanZoom": $(evt.currentTarget).is(':checked')});
+ var target = evt.currentTarget;
+ if ($(target).hasClass('btn-default')) {
+ $(target).removeClass('btn-default');
+ $(target).addClass('btn-info');
+ }
+ else if ($(target).hasClass('btn-info')) {
+ $(target).removeClass('btn-info');
+ $(target).addClass('btn-default');
+ }
+
+ // Using $().hasClass('active') does not use here because it appears that
+ // this is called before the Bootstrap toggle completes.
+ this.model.set({"autoPanZoom": $(target).hasClass('btn-info')});
}
});
src/web/js/azkaban/view/main.js 10(+2 -8)
diff --git a/src/web/js/azkaban/view/main.js b/src/web/js/azkaban/view/main.js
index b6aac48..bf5e9a9 100644
--- a/src/web/js/azkaban/view/main.js
+++ b/src/web/js/azkaban/view/main.js
@@ -96,18 +96,12 @@ azkaban.ProjectTableView = Backbone.View.extend({
var requestURL = contextURL + "/manager?project=" + data.project + "&flow=";
for (var i = 0; i < flows.length; ++i) {
var id = flows[i].flowId;
- var tr = document.createElement("tr");
- var idtd = document.createElement("td");
- $(idtd).addClass("tb-name");
-
var ida = document.createElement("a");
ida.project = data.project;
$(ida).text(id);
$(ida).attr("href", requestURL + id);
-
- $(idtd).append(ida);
- $(tr).append(idtd);
- $(innerTable).append(tr);
+ $(ida).addClass('list-group-item');
+ $(innerTable).append(ida);
}
}
});
unit/build.xml 69(+35 -34)
diff --git a/unit/build.xml b/unit/build.xml
index c9f3f20..f0fa718 100644
--- a/unit/build.xml
+++ b/unit/build.xml
@@ -7,9 +7,7 @@
<property name="dist.packages.dir" value="${base.dir}/dist/unit/packages" />
<property name="java.src.dir" value="${base.dir}/unit/java" />
- <property name="job.conf.dir" value="${base.dir}/unit/executions/exectest1" />
- <property name="job.conf.dir2" value="${base.dir}/unit/executions/exectest2" />
- <property name="animal.conf.dir" value="${base.dir}/unit/executions/animal" />
+ <property name="job.conf.dir" value="${base.dir}/unit/executions" />
<property environment="env" />
@@ -24,7 +22,7 @@
<!-- set the build number based on environment variable, otherwise blank -->
<property environment="env" description="System environment variables (including those set by Hudson)" />
- <target name="all" depends="clean, jars" description="Builds all jars" />
+ <target name="all" depends="clean, package" description="Builds and packages" />
<target name="clean" description="Delete generated files.">
<echo message="Deleting generated files in dist" />
@@ -54,59 +52,62 @@
</jar>
</target>
- <target name="package-testjob" depends="jars" description="Creates a test zip">
- <delete dir="${dist.packages.dir}" />
- <mkdir dir="${dist.packages.dir}" />
-
+ <target name="package-exectest1" depends="jars" description="Creates a test zip">
<!-- Tarball it -->
- <zip destfile="${dist.packages.dir}/testjob.zip">
+ <zip destfile="${dist.packages.dir}/exectest1.zip">
<zipfileset dir="${dist.jar.dir}" />
- <zipfileset dir="${job.conf.dir}" />
+ <zipfileset dir="${job.conf.dir}/exectest1" />
</zip>
</target>
<target name="package-exectest2" depends="jars" description="Creates a test zip">
- <delete dir="${dist.packages.dir}" />
- <mkdir dir="${dist.packages.dir}" />
-
<!-- Tarball it -->
<zip destfile="${dist.packages.dir}/exectest2.zip">
<zipfileset dir="${dist.jar.dir}" />
- <zipfileset dir="${job.conf.dir2}" />
+ <zipfileset dir="${job.conf.dir}/exectest2" />
</zip>
</target>
<target name="package-animal" depends="jars" description="Creates a test zip">
- <delete dir="${dist.packages.dir}" />
- <mkdir dir="${dist.packages.dir}" />
-
<!-- Tarball it -->
- <zip destfile="${dist.packages.dir}/animals.zip">
+ <zip destfile="${dist.packages.dir}/animal.zip">
<zipfileset dir="${dist.jar.dir}" />
- <zipfileset dir="${animal.conf.dir}" />
+ <zipfileset dir="${job.conf.dir}/animal" />
</zip>
</target>
<target name="package-embedded" depends="jars" description="Creates a test zip">
- <delete dir="${dist.packages.dir}" />
- <mkdir dir="${dist.packages.dir}" />
-
<!-- Tarball it -->
<zip destfile="${dist.packages.dir}/embedded.zip">
<zipfileset dir="${dist.jar.dir}" />
- <zipfileset dir="${base.dir}/unit/executions/embedded" />
+ <zipfileset dir="${job.conf.dir}/embedded" />
</zip>
</target>
- <target name="package-embedded3" depends="jars" description="Creates a test zip">
- <delete dir="${dist.packages.dir}" />
- <mkdir dir="${dist.packages.dir}" />
-
- <!-- Tarball it -->
- <zip destfile="${dist.packages.dir}/embedded.zip">
- <zipfileset dir="${dist.jar.dir}" />
- <zipfileset dir="${base.dir}/unit/executions/embedded3" />
- </zip>
-
- </target>
+ <target name="package-embedded2" depends="jars" description="Creates a test zip">
+ <!-- Tarball it -->
+ <zip destfile="${dist.packages.dir}/embedded2.zip">
+ <zipfileset dir="${dist.jar.dir}" />
+ <zipfileset dir="${job.conf.dir}/embedded2" />
+ </zip>
+ </target>
+
+ <target name="package-embedded3" depends="jars" description="Creates a test zip">
+ <!-- Tarball it -->
+ <zip destfile="${dist.packages.dir}/embedded3.zip">
+ <zipfileset dir="${dist.jar.dir}" />
+ <zipfileset dir="${job.conf.dir}/embedded3" />
+ </zip>
+ </target>
+
+ <target name="package-embeddedBad" depends="jars" description="Creates a test zip">
+ <!-- Tarball it -->
+ <zip destfile="${dist.packages.dir}/embeddedBad.zip">
+ <zipfileset dir="${dist.jar.dir}" />
+ <zipfileset dir="${job.conf.dir}/embeddedBad" />
+ </zip>
+ </target>
+
+ <target name="package" depends="package-exectest1, package-exectest2, package-animal, package-embedded, package-embedded2, package-embedded3, package-embeddedBad" description="Creates all packages">
+ </target>
</project>