rollback swagger-static template

This commit is contained in:
wing328 2015-06-09 12:58:41 +08:00
parent f2ee63da3b
commit d8060f47a8
11 changed files with 5674 additions and 8754 deletions

View File

@ -1,309 +1,308 @@
.line-numbers { .line-numbers {
margin-right: 1.0em; margin-right: 1.0em;
} }
.content { .content {
padding-bottom: 100px; padding-bottom: 100px;
} }
.column_header_name { .column_header_name {
width: 150px; width: 150px;
} }
.column_header_path { .column_header_path {
width: 350px; width: 350px;
} }
.column_header_name .column_header_param_type .column_header_data_type .column_header_return_type { .column_header_name .column_header_param_type .column_header_data_type .column_header_return_type {
width: 200px; width: 200px;
} }
.expandable { .expandable {
display: none; display: none;
} }
.main_content { .main_content {
margin-top: 80px; margin-top: 80px;
margin-left: 25px; margin-left: 25px;
margin-right: 25px; margin-right: 25px;
} }
.model { .model {
float: left; float: left;
} }
.model-container { .model-container {
float: left; float: left;
width: 500px; width: 500px;
padding: 0px; padding: 0px;
} }
.model-detail-container { .model-detail-container {
clear: left; clear: left;
float: left; float: left;
width: 500px; width: 500px;
margin-left: 40px; margin-left: 40px;
} }
.model-detail-popup { .model-detail-popup {
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px; box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px;
border-style: solid; border-style: solid;
border-width: 1px; border-width: 1px;
border-color: black; border-color: black;
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
padding-top: 10px; padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
background-color: white; background-color: white;
opacity: 0.99; opacity: 0.99;
z-index: 1; z-index: 1;
overflow: scroll; overflow: scroll;
width: 400px; width: 400px;
} }
.model-detail-popup .code { .model-detail-popup .code {
background-color: #E4F5FF; background-color: #E4F5FF;
font-family: monospace; font-family: monospace;
white-space: pre; white-space: pre;
margin: 10px; margin: 10px;
overflow: auto; overflow: auto;
} }
.model-detail-popup h2 { .model-detail-popup h2 {
margin-top: 0px; margin-top: 0px;
padding-top: 0px; padding-top: 0px;
} }
.model-detail-popup li { .model-detail-popup li {
padding-bottom: 5px; padding-bottom: 5px;
} }
.model-detail-popup .param-reqiured-true { .model-detail-popup .param-reqiured-true {
font-family: monospace; font-family: monospace;
font-weight: bold; font-weight: bold;
clear: left; clear: left;
display: block; display: block;
float: left; float: left;
width: 100%; width: 100%;
} }
.model-detail-popup .param-required-false { .model-detail-popup .param-required-false {
font-family: monospace; font-family: monospace;
clear: left; clear: left;
display: block; display: block;
float: left; float: left;
width: 100%; width: 100%;
} }
.model-detail-popup .param-description { .model-detail-popup .param-description {
margin-left: 50px; margin-left: 50px;
float: left; float: left;
} }
.section-header { .section-header {
border-bottom: 2px; border-bottom: 2px;
font-weight: bold; font-weight: bold;
font-size: 15px; font-size: 15px;
padding: 6px 0; padding: 6px 0;
color: rgb(57, 57, 57); color: rgb(57,57,57);
} }
.content { .content {
padding-top: 100px; padding-top: 100px;
} }
.content h1 { .content h1 {
font-size: 43px; font-size: 43px;
text-align: center; text-align: center;
margin-top: 40px; margin-top: 40px;
margin-bottom: 40px; margin-bottom: 40px;
} }
.sidebar { .sidebar {
box-sizing: border-box; box-sizing: border-box;
float: left; float: left;
display: block; display: block;
width: 240px; width: 240px;
overflow: scroll; overflow: scroll;
position: fixed; position: fixed;
} }
.section-box { .section-box {
border-bottom-style: solid; border-bottom-style: solid;
border-bottom: 10px; border-bottom: 10px;
} }
.section-box ul li { .section-box ul li {
list-style: none; list-style: none;
margin-left: 0px; margin-left: 0px;
} }
.non-sidebar { .non-sidebar {
box-sizing: border-box; box-sizing: border-box;
display: block; display: block;
margin-left: 240px; margin-left: 240px;
margin-right: 0px; margin-right: 0px;
width: 638px; width: 638px;
} }
.non-sidebar h2 { .non-sidebar h2 {
clear: left; clear: left;
padding-top: 20px; padding-top: 20px;
} }
li.parameter { li.parameter {
list-style: none; list-style: none;
display: block; display: block;
padding-left: 1em; padding-left: 1em;
} }
.param { .param{
display: block; display: block;
} }
.param-name { .param-name {
margin-left: 1em; margin-left: 1em;
} }
.param-in { .param-in {
font-weight: bold; font-weight: bold;
font-size: 1.1em; font-size: 1.1em;
} }
.param-type { .param-type {
margin-left: 1em; margin-left: 1em;
font-style: italic; font-style: italic;
} }
.param-description { .param-description {
display: block; display: block;
font-family: 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif; font-family: 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif;
} }
.param-optional-flag { .param-optional-flag {
font-style: italic; font-style: italic;
} }
.section { .section {
font-weight: normal; font-weight: normal;
clear: left; clear: left;
} }
.section a { .section a {
text-decoration: underline; text-decoration: underline;
} }
.code { .code {
background-color: #E4F5FF; background-color: #E4F5FF;
font-family: monospace; font-family: monospace;
white-space: pre; white-space: pre;
margin: 10px; margin: 10px;
overflow: auto; overflow: auto;
width: 600px; width: 600px;
} }
.header { .header {
position: fixed; position: fixed;
text-align: left; text-align: left;
background-color: black; background-color: black;
float: left; float: left;
top: 0; top: 0;
width: 100%; width: 100%;
height: 70px auto; height: 70px auto;
padding-bottom: 20px; padding-bottom: 20px;
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px; box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px 5px;
} }
.top-bar h1 a { .top-bar h1 a {
width: auto; width: auto;
} }
.top-bar h1#logo a { .top-bar h1#logo a {
width: auto; width: auto;
display: block; display: block;
clear: none; clear: none;
float: left; float: left;
background-position: left;; background-position: left;;
color: white; color: white;
text-decoration: none; text-decoration: none;
} }
.top-bar ul li { .top-bar ul li {
list-style: none; list-style: none;
} }
.top-bar h1#logo span { .top-bar h1#logo span {
display: block; display: block;
clear: none; clear: none;
float: left; float: left;
padding-top: 10px; padding-top: 10px;
padding-left: 10px; padding-left: 10px;
margin: 0px; margin: 0px;
} }
.top-bar h1#logo a span.light { .top-bar h1#logo a span.light {
color: #ffc97a; color: #ffc97a;
color: #666666; color: #666666;
padding-left: 0px; padding-left: 0px;
} }
.top-bar ul#nav { .top-bar ul#nav {
float: none; float: none;
clear: both; clear: both;
overflow: hidden; overflow: hidden;
margin: 0; margin: 0;
padding: 0; padding: 0;
display: block; display: block;
float: right; float: right;
clear: none; clear: none;
} }
.top-bar ul#nav li { .top-bar ul#nav li {
float: left; float: left;
clear: none; clear: none;
margin: 0; margin: 0;
padding: 2px 10px; padding: 2px 10px;
border-right: 1px solid #dddddd; border-right: 1px solid #dddddd;
} }
.top-bar ul#nav li:first-child, .top-bar ul#nav li.first { .top-bar ul#nav li:first-child, .top-bar ul#nav li.first {
padding-left: 0; padding-left: 0;
} }
.top-bar ul#nav li:last-child, .top-bar ul#nav li.last { .top-bar ul#nav li:last-child, .top-bar ul#nav li.last {
padding-right: 0; padding-right: 0;
border-right: none; border-right: none;
} }
.top-bar ul#nav li { .top-bar ul#nav li {
border: none; border: none;
padding: 0 5px; padding: 0 5px;
} }
.top-bar ul#nav li a { .top-bar ul#nav li a {
display: block; display: block;
padding: 8px 10px 8px 10px; padding: 8px 10px 8px 10px;
color: #999999; color: #999999;
text-decoration: none; text-decoration: none;
} }
.top-bar ul#nav li a.strong { .top-bar ul#nav li a.strong {
color: white; color: white;
} }
.top-bar ul#nav li a:active, .top-bar ul#nav li a.active, .top-bar ul#nav li a:hover { .top-bar ul#nav li a:active, .top-bar ul#nav li a.active, .top-bar ul#nav li a:hover {
-moz-border-radius: 4px; -moz-border-radius: 4px;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
-o-border-radius: 4px; -o-border-radius: 4px;
-ms-border-radius: 4px; -ms-border-radius: 4px;
-khtml-border-radius: 4px; -khtml-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
background-image: -webkit-gradient(linear, 0% 100%, 0% 0%, color-stop(0%, #ff5401), color-stop(100%, #ffa014)); background-image: -webkit-gradient(linear, 0% 100%, 0% 0%, color-stop(0%, #ff5401), color-stop(100%, #ffa014));
background-image: -moz-linear-gradient(bottom, #ff5401 0%, #ffa014 100%); background-image: -moz-linear-gradient(bottom, #ff5401 0%, #ffa014 100%);
background-image: linear-gradient(bottom, #ff5401 0%, #ffa014 100%); background-image: linear-gradient(bottom, #ff5401 0%, #ffa014 100%);
color: white; color: white;
} }
.top-bar ul#nav:hover li { .top-bar ul#nav:hover li {
border-color: #222222; border-color: #222222;
} }

File diff suppressed because one or more lines are too long

View File

@ -1,69 +1,70 @@
window.onhashchange = function () { window.onhashchange = function() {
choose(window.location.href.toString()); choose(window.location.href.toString());
} }
var selectionImage; var selectionImage;
function choose(url) { function choose(url) {
var f = url.split("/").slice(-1)[0].split("?")[0]; var f = url.split("/").slice(-1)[0].split("?")[0];
if (f.match(/#/g) && f.match(/#/g).length > 0) { if(f.match(/#/g) && f.match(/#/g).length > 0) {
f = f.split("#")[0]; f = f.split("#")[0];
}
$('div.non-sidebar').empty();
$('div.non-sidebar').load("operations/" + f + ".html", function(){
goToAnchor();
// rebind the models
$(".model a").on("click", function(e){
e.preventDefault();
var model = $(this).parent().attr("data-model")
var parentOffset = $(this).parent().offset();
var encodedWord = encodeURI(model);
if(!selectionImage) {
selectionImage = $('<div>').attr({
title: 'Model detail',
target: '_blank',
class: 'model-detail-popup'
}).hide();
$('div.model-container').append(selectionImage);
}
selectionImage.load("models/" + encodedWord + ".html")
selectionImage.attr('href',url.replace('{term}',encodeURI(model))).css({
left: e.pageX + 20,
top: e.pageY - 10,
position: "absolute"
}).fadeIn();
})
});
$("body").on("click",function(e) {
var target = $(e.target);
if (target.parents(".model-detail-popup").length == 0 && target.parents('.model').length != 1) {
if(document.querySelector('.model-detail-popup')) {
document.querySelector('.model-detail-popup').style.display = 'none';
}
} }
$('div.non-sidebar').empty(); });
$('div.non-sidebar').load("operations/" + f + ".html", function () {
goToAnchor();
// rebind the models
$(".model a").on("click", function (e) {
e.preventDefault();
var model = $(this).parent().attr("data-model")
var parentOffset = $(this).parent().offset();
var encodedWord = encodeURI(model);
if (!selectionImage) {
selectionImage = $('<div>').attr({
title: 'Model detail',
target: '_blank',
class: 'model-detail-popup'
}).hide();
$('div.model-container').append(selectionImage);
}
selectionImage.load("models/" + encodedWord + ".html")
selectionImage.attr('href', url.replace('{term}', encodeURI(model))).css({
left: e.pageX + 20,
top: e.pageY - 10,
position: "absolute"
}).fadeIn();
})
});
$("body").on("click", function (e) {
var target = $(e.target);
if (target.parents(".model-detail-popup").length == 0 && target.parents('.model').length != 1) {
if (document.querySelector('.model-detail-popup')) {
document.querySelector('.model-detail-popup').style.display = 'none';
}
}
});
} }
function goToAnchor() { function goToAnchor() {
var doARead = $($('a')[0]).offset(); var doARead = $($('a')[0]).offset();
var anchorArr = window.location.href.toString().split("#"); var anchorArr = window.location.href.toString().split("#");
if (anchorArr.length > 2) { if(anchorArr.length > 2) {
var anchor = anchorArr[anchorArr.length - 1]; var anchor = anchorArr[anchorArr.length-1];
window.scrollTo(0, $('a[name=' + anchor + ']').offset().top - 80); window.scrollTo(0,$('a[name='+anchor+']').offset().top - 80);
} }
} }
function resize() { function resize()
$(".sidebar").css('height', $(window).height() - 60); {
$("#content-window").css('height', $(window).height() - 60); $(".sidebar").css('height', $(window).height() -60);
$("#content-window").css('height', $(window).height() -60);
} }
$(function () { $(function(){
window.onresize = resize; window.onresize = resize;
resize(); resize();
$(window).bind('hashchange', function () { $(window).bind('hashchange', function() {
choose(window.location.href.toString()); choose(window.location.href.toString());
}); });
}); });

View File

@ -1,60 +1,58 @@
<!DOCTYPE html> <!DOCTYPE html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css" media="screen"> <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap-responsive.css" media="screen"> <link rel="stylesheet" type="text/css" href="assets/css/bootstrap-responsive.css" media="screen">
<link rel="stylesheet" type="text/css" href="assets/css/style.css"> <link rel="stylesheet" type="text/css" href="assets/css/style.css">
<script src="assets/js/jquery-1.8.3.min.js" type="text/javascript"></script> <script src="assets/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="assets/js/main.js" type="text/javascript"></script> <script src="assets/js/main.js" type="text/javascript"></script>
<title>REST API Resources</title> <title>REST API Resources</title>
</head> </head>
<body> <body>
<div class="header"> <div class="header">
<div class="top-bar"> <div class="top-bar">
<h1 id="logo"><a class="logo" href="/"><span>Swagger</span><span class="light">API Docs</span></a></h1> <h1 id="logo"><a class="logo" href="/"><span>Swagger</span><span class="light">API Docs</span></a></h1>
</div> </div>
</div> </div>
<div class="model-container"></div> <div class="model-container"></div>
<div class="content"> <div class="content">
<div class="box clearfix"> <div class="box clearfix">
<div class="sidebar"> <div class="sidebar">
<div class="section-box"> <div class="section-box">
<div class="section-header"> <div class="section-header">
Overview Overview
</div> </div>
<ul> <ul>
<li>Getting Started</li> <li>Getting Started</li>
</ul> </ul>
</div>
{{#apiInfo}}
{{#apis}}
<div class="section-box">
<div class="section-header">
<a href="#!/{{classname}}">{{classname}}</a>
</div>
<ul>
{{#operations}}
{{#operation}}
<li><a href="#!/{{classname}}#{{nickname}}">{{nickname}}</a></li>
{{/operation}}
{{/operations}}
</ul>
</div>
{{/apis}}
{{/apiInfo}}
</div> </div>
<div class="non-sidebar"> {{#apiInfo}}
<div class="main-content"> {{#apis}}
<h2>Getting Started</h2> <div class="section-box">
<div class="section-header">
<p>To begin using your fancy HTTP API, follow the steps below.</p> <a href="#!/{{classname}}">{{classname}}</a>
</div>
<p>You can add some helpful tips, here</p> <ul>
</div> {{#operations}}
{{#operation}}
<li><a href="#!/{{classname}}#{{nickname}}">{{nickname}}</a></li>
{{/operation}}
{{/operations}}
</ul>
</div> </div>
{{/apis}}
{{/apiInfo}}
</div>
<div class="non-sidebar">
<div class="main-content">
<h2>Getting Started</h2>
<p>To begin using your fancy HTTP API, follow the steps below.</p>
<p>You can add some helpful tips, here</p>
</div>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -1,13 +1,13 @@
{{#models}} {{#models}}
{{#model}} {{#model}}
<h2>{{classname}}</h2> <h2>{{classname}}</h2>
{{#vars}} {{#vars}}
<ul class="parameter"> <ul class="parameter">
<li class="param-required-{{required}}">{{name}} : {{datatype}} <li class="param-required-{{required}}">{{name}} : {{datatype}}
<br/>{{description}} <br/>{{description}}
</li> </li>
</ul> </ul>
{{/vars}} {{/vars}}
{{/model}} {{/model}}
{{/models}} {{/models}}

View File

@ -1,39 +1,35 @@
<div class="main-content"> <div class="main-content">
<h2><a name="{{className}}"></a>{{className}}</h2> <h2><a name="{{className}}"></a>{{className}}</h2>
<p>This is the {{className}} API</p>
<p>This is the {{className}} API</p> {{#operations}}
{{#operation}}
{{#operations}} <h2><a name="{{nickname}}"></a>{{nickname}}</h2>
{{#operation}} <hr>
<h2><a name="{{nickname}}"></a>{{nickname}}</h2> <p>{{description}}</p>
<hr> {{#notes}}<p>{{notes}}</p>{{/notes}}
<p>{{description}}</p> <h3 class="section">URL</h3>
{{#notes}}<p>{{notes}}</p>{{/notes}} <code>{{basePath}}{{path}}</code>
<h3 class="section">URL</h3> <h3 class="section">HTTP Method</h3>
<code>{{basePath}}{{path}}</code> <code>{{httpMethod}}</code>
<h3 class="section">Response Type</h3>
<h3 class="section">HTTP Method</h3> <div class="model" data-model="{{returnBaseType}}"><a href="">{{returnType}}</a></div>
<code>{{httpMethod}}</code> <h3 class="section">Parameters</h3>
<ul>
<h3 class="section">Response Type</h3> {{#allParams}}
<li class="parameter">
<div class="model" data-model="{{returnBaseType}}"><a href="">{{returnType}}</a></div> {{#isFormParam}}<span class="param-in">Form: </span>{{/isFormParam}}
<h3 class="section">Parameters</h3> {{#isQueryParam}}<span class="param-in">Query: </span>{{/isQueryParam}}
<ul> {{#isPathParam}}<span class="param-in">Path: </span>{{/isPathParam}}
{{#allParams}} {{#isHeaderParam}}<span class="param-in">Header: </span>{{/isHeaderParam}}
<li class="parameter"> {{#isBodyParam}}<span class="param-in">Body: </span>{{/isBodyParam}}
{{#isFormParam}}<span class="param-in">Form: </span>{{/isFormParam}} <span class="param-name">{{paramName}}</span>
{{#isQueryParam}}<span class="param-in">Query: </span>{{/isQueryParam}} <span class="param-type">{{dataType}}{{#baseType}}({{baseType}}){{/baseType}}</span>
{{#isPathParam}}<span class="param-in">Path: </span>{{/isPathParam}} {{#optional}}<span class="param-optional-flag">(optional)</span>{{/optional}}
{{#isHeaderParam}}<span class="param-in">Header: </span>{{/isHeaderParam}} <p class="param-description">{{description}}</p>
{{#isBodyParam}}<span class="param-in">Body: </span>{{/isBodyParam}} </li>
<span class="param-name">{{paramName}}</span> {{/allParams}}
<span class="param-type">{{dataType}}{{#baseType}}({{baseType}}){{/baseType}}</span> </ul>
{{#optional}}<span class="param-optional-flag">(optional)</span>{{/optional}} {{/operation}}
<p class="param-description">{{description}}</p> {{/operations}}
</li>
{{/allParams}}
</ul>
{{/operation}}
{{/operations}}
</div> </div>

View File

@ -1,12 +1,12 @@
{ {
"name": "swagger-docs", "name": "swagger-docs",
"version": "1.0.0", "version": "1.0.0",
"main": "main.js", "main": "main.js",
"engines": { "engines": {
"node": ">= 0.8.x" "node": ">= 0.8.x"
}, },
"dependencies": { "dependencies": {
"express": "3.x" "express": "3.x"
}, },
"license": "apache 2.0" "license": "apache 2.0"
} }

View File

@ -1,100 +1,100 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>
<artifactId>swagger-demo</artifactId> <artifactId>swagger-demo</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>swagger-demo</name> <name>swagger-demo</name>
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-SNAPSHOT</version>
<prerequisites> <prerequisites>
<maven>2.2.0</maven> <maven>2.2.0</maven>
</prerequisites> </prerequisites>
<build> <build>
<sourceDirectory>src/main/scala</sourceDirectory> <sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins> <plugins>
<plugin> <plugin>
<groupId>net.alchim31.maven</groupId> <groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId> <artifactId>scala-maven-plugin</artifactId>
<version>${maven-plugin.version}</version> <version>${maven-plugin.version}</version>
<executions> <executions>
<execution> <execution>
<goals> <goals>
<goal>compile</goal> <goal>compile</goal>
<goal>testCompile</goal> <goal>testCompile</goal>
</goals> </goals>
</execution> </execution>
</executions> </executions>
<configuration> <configuration>
<jvmArgs> <jvmArgs>
<jvmArg>-Xms64m</jvmArg> <jvmArg>-Xms64m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg> <jvmArg>-Xmx1024m</jvmArg>
</jvmArgs> </jvmArgs>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<configuration> <configuration>
<forkMode>once</forkMode> <forkMode>once</forkMode>
<useFile>false</useFile> <useFile>false</useFile>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-dependency-plugin</artifactId> <artifactId>maven-dependency-plugin</artifactId>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
<goals> <goals>
<goal>copy-dependencies</goal> <goal>copy-dependencies</goal>
</goals> </goals>
<configuration> <configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory> <outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.mortbay.jetty</groupId> <groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId> <artifactId>jetty-maven-plugin</artifactId>
<version>${jetty-version}</version> <version>${jetty-version}</version>
<configuration> <configuration>
<webAppConfig> <webAppConfig>
<contextPath>/</contextPath> <contextPath>/</contextPath>
</webAppConfig> </webAppConfig>
<connectors> <connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8000</port> <port>8000</port>
<maxIdleTime>60000</maxIdleTime> <maxIdleTime>60000</maxIdleTime>
<confidentialPort>8443</confidentialPort> <confidentialPort>8443</confidentialPort>
</connector> </connector>
</connectors> </connectors>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
<id>start-jetty</id> <id>start-jetty</id>
<phase>pre-integration-test</phase> <phase>pre-integration-test</phase>
<goals> <goals>
<goal>run</goal> <goal>run</goal>
</goals> </goals>
<configuration> <configuration>
<scanIntervalSeconds>0</scanIntervalSeconds> <scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon> <daemon>true</daemon>
</configuration> </configuration>
</execution> </execution>
<execution> <execution>
<id>stop-jetty</id> <id>stop-jetty</id>
<phase>post-integration-test</phase> <phase>post-integration-test</phase>
<goals> <goals>
<goal>stop</goal> <goal>stop</goal>
</goals> </goals>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<properties> <properties>
<maven-plugin.version>3.1.0</maven-plugin.version> <maven-plugin.version>3.1.0</maven-plugin.version>
<jetty-version>7.6.0.v20120127</jetty-version> <jetty-version>7.6.0.v20120127</jetty-version>
</properties> </properties>
</project> </project>