diff --git a/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java b/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java index 096f441d8..425529356 100644 --- a/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java +++ b/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java @@ -1,93 +1,93 @@ -/* - * Copyright 2002-2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.util; - -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.springframework.jmx.export.annotation.ManagedAttribute; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; -import org.springframework.util.StopWatch; - -/** - * Simple aspect that monitors call count and call invocation time. It uses JMX annotations and therefore can be - * monitored using any JMX console such as the jConsole - * - * @author Rob Harrop - * @author Juergen Hoeller - * @author Michael Isvy - * @since 2.5 - */ -@ManagedResource("petclinic:type=CallMonitor") -@Aspect -public class CallMonitoringAspect { - - private boolean enabled = true; - - private int callCount = 0; - - private long accumulatedCallTime = 0; - - - @ManagedAttribute - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - @ManagedAttribute - public boolean isEnabled() { - return enabled; - } - - @ManagedOperation - public void reset() { - this.callCount = 0; - this.accumulatedCallTime = 0; - } - - @ManagedAttribute - public int getCallCount() { - return callCount; - } - - @ManagedAttribute - public long getCallTime() { - return (this.callCount > 0 ? this.accumulatedCallTime / this.callCount : 0); - } - - - @Around("within(@org.springframework.stereotype.Repository *)") - public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable { - if (this.enabled) { - StopWatch sw = new StopWatch(joinPoint.toShortString()); - - sw.start("invoke"); - try { - return joinPoint.proceed(); - } finally { - sw.stop(); - synchronized (this) { - this.callCount++; - this.accumulatedCallTime += sw.getTotalTimeMillis(); - } - } - } else { - return joinPoint.proceed(); - } - } - -} +/* + * Copyright 2002-2013 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.util; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.jmx.export.annotation.ManagedAttribute; +import org.springframework.jmx.export.annotation.ManagedOperation; +import org.springframework.jmx.export.annotation.ManagedResource; +import org.springframework.util.StopWatch; + +/** + * Simple aspect that monitors call count and call invocation time. It uses JMX annotations and therefore can be + * monitored using any JMX console such as the jConsole + * + * @author Rob Harrop + * @author Juergen Hoeller + * @author Michael Isvy + * @since 2.5 + */ +//@ManagedResource("petclinic:type=CallMonitor") +@Aspect +public class CallMonitoringAspect { + + private boolean enabled = true; + + private int callCount = 0; + + private long accumulatedCallTime = 0; + + + @ManagedAttribute + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + @ManagedAttribute + public boolean isEnabled() { + return enabled; + } + + @ManagedOperation + public void reset() { + this.callCount = 0; + this.accumulatedCallTime = 0; + } + + @ManagedAttribute + public int getCallCount() { + return callCount; + } + + @ManagedAttribute + public long getCallTime() { + return (this.callCount > 0 ? this.accumulatedCallTime / this.callCount : 0); + } + + + @Around("within(@org.springframework.stereotype.Repository *)") + public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable { + if (this.enabled) { + StopWatch sw = new StopWatch(joinPoint.toShortString()); + + sw.start("invoke"); + try { + return joinPoint.proceed(); + } finally { + sw.stop(); + synchronized (this) { + this.callCount++; + this.accumulatedCallTime += sw.getTotalTimeMillis(); + } + } + } else { + return joinPoint.proceed(); + } + } + +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 751726a14..f1d4d2355 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,23 +1,23 @@ - - - - - true - - - - - - - - %-5level %logger{0} - %msg%n - - - - - - - - - - + + + + + true + + + + + + + + %-5level %logger{0} - %msg%n + + + + + + + + + + diff --git a/src/main/webapp/landing/58f9eaa9.favicon.ico b/src/main/webapp/landing/58f9eaa9.favicon.ico new file mode 100644 index 000000000..73961b1aa Binary files /dev/null and b/src/main/webapp/landing/58f9eaa9.favicon.ico differ diff --git a/src/main/webapp/landing/discover.html b/src/main/webapp/landing/discover.html new file mode 100644 index 000000000..b7bf14900 --- /dev/null +++ b/src/main/webapp/landing/discover.html @@ -0,0 +1,280 @@ + + + + +Pet Clinic - Discover Pet Owners on your Neigborhood + + + + + + + + + +
+
+
+
+

Discover Pet Owners

+

Helping you discover pet owners near you and connect.

+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+ Generic placeholder image +
+

Thumbnail + label

+

Even the all-powerful Pointing has no control about the + blind texts it is an almost unorthographic life One day however + a small line of blind text by the name of Lorem Ipsum.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail + label

+

Mountains, she had a last view back on the skyline of her + hometown Bookmarksgrove, the headline of Alphabet Village and + the subline of her own road, the Line Lane.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Even the all-powerful Pointing has no control about the + blind texts it is an almost unorthographic life One day however + a small line of blind text by the name of Lorem Ipsum.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Mountains, she had a last view back on the skyline of her + hometown Bookmarksgrove, the headline of Alphabet Village and + the subline of her own road, the Line Lane.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Even the all-powerful Pointing has no control about the + blind texts it is an almost unorthographic life One day however + a small line of blind text by the name of Lorem Ipsum.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Mountains, she had a last view back on the skyline of her + hometown Bookmarksgrove, the headline of Alphabet Village and + the subline of her own road, the Line Lane.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Even the all-powerful Pointing has no control about the + blind texts it is an almost unorthographic life One day however + a small line of blind text by the name of Lorem Ipsum.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Mountains, she had a last view back on the skyline of her + hometown Bookmarksgrove, the headline of Alphabet Village and + the subline of her own road, the Line Lane.

+
+
+
+
+
+
+

+ Show More » +

+
+
+
+
+ +
+
+
+
+

+ Over 40,000 pet owners trust us. Register now. It's Free + forever! +

+

Use it as a starting point to create something more unique.

+
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+
+ +
+
+

Business Hours

+

Donec sed odio dui. Etiam porta sem malesuada magna mollis + euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. + Morbi leo risus, porta ac consectetur ac, vestibulum at eros. + Praesent commodo cursus magna.

+
+ +
+

Our Location

+

Duis mollis, est non commodo luctus, nisi erat porttitor + ligula, eget lacinia odio sem nec elit. Cras mattis consectetur + purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, + tortor mauris condimentum nibh.

+
+ +
+

Questions or comments

+

Cras mattis consectetur purus sit amet fermentum.

+

+ Drop us a line +

+
+ +
+ +
+
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/landing/index.html b/src/main/webapp/landing/index.html new file mode 100644 index 000000000..75ed33ec7 --- /dev/null +++ b/src/main/webapp/landing/index.html @@ -0,0 +1,398 @@ + + + + +Pet Clinic - Home + + + + + + + + + +
+
+
+
+

+ Pet Clinic
A Spring Framework Demonstration +

+

A place to see your neighborhood pet owners

+

+ Get + started - It's Free! +

+
+
+
+
+ +
+
+
+
+
+

Our Veterinarians

+

A small river named Duden flows by their + place and supplies it with the necessary regelialia. It is a + paradisematic country, in which roasted parts of sentences fly + into your mouth.

+
+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Far far away, behind the word mountains, far from the + countries Vokalia and Consonantia, there live the blind texts.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Even the all-powerful Pointing has no control about the + blind texts it is an almost unorthographic life One day however + a small line of blind text by the name of Lorem Ipsum.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Mountains, she had a last view back on the skyline of her + hometown Bookmarksgrove, the headline of Alphabet Village and + the subline of her own road, the Line Lane.

+
+
+
+
+ +
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Even the all-powerful Pointing has no control about the + blind texts it is an almost unorthographic life One day however + a small line of blind text by the name of Lorem Ipsum.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

Mountains, she had a last view back on the skyline of her + hometown Bookmarksgrove, the headline of Alphabet Village and + the subline of her own road, the Line Lane.

+
+
+
+
+
+ Generic placeholder image +
+

Thumbnail label

+

The Big Oxmox advised her not to do so, because there were + thousands of bad Commas, wild Question Marks and devious + Semikoli.

+
+
+
+
+ +
+
+

+ View + More » +

+
+
+
+
+ +
+
+
+
+ Generic placeholder image +
+
+

Services One

+

A small river named Duden flows by their + place and supplies it with the necessary regelialia. It is a + paradisematic country, in which roasted parts of sentences fly + into your mouth.

+

+ Learn more » +

+
+
+
+
+ +
+
+
+
+

Services Two

+

A small river named Duden flows by their + place and supplies it with the necessary regelialia. It is a + paradisematic country, in which roasted parts of sentences fly + into your mouth.

+

+ Learn more » +

+
+
+ Generic placeholder image +
+
+
+
+ +
+
+
+
+ Generic placeholder image +
+
+

Services Three

+

A small river named Duden flows by their + place and supplies it with the necessary regelialia. It is a + paradisematic country, in which roasted parts of sentences fly + into your mouth.

+

+ Learn more » +

+
+
+
+
+ +
+
+
+
+
+

What our customers are saying.

+

Even the all-powerful Pointing has no + control about the blind texts it is an almost unorthographic life + One day however a small line of blind text by the name of Lorem + Ipsum decided to leave for the far World of Grammar.

+
+
+
+
+
+ Generic placeholder image +

Client One

+

Donec sed odio dui. Etiam porta sem malesuada magna mollis + euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. + Morbi leo risus, porta ac consectetur ac, vestibulum at eros. + Praesent commodo cursus magna.

+
+ +
+ Generic placeholder image +

Client Two

+

Duis mollis, est non commodo luctus, nisi erat porttitor + ligula, eget lacinia odio sem nec elit. Cras mattis consectetur + purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, + tortor mauris condimentum nibh.

+
+ +
+ Generic placeholder image +

Client Three

+

Donec sed odio dui. Cras justo odio, dapibus ac facilisis + in, egestas eget quam. Vestibulum id ligula porta felis euismod + semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris + condimentum nibh, ut fermentum massa justo sit amet risus.

+
+ +
+
+
+ +
+
+
+
+
+

Trusted by some of the world's smartest + companies

+
+
+
+
+
+ Companies placeholder image +
+
+ Companies placeholder image +
+
+ Companies placeholder image +
+
+ Companies placeholder image +
+
+ Companies placeholder image +
+
+ Companies placeholder image +
+
+
+
+ +
+
+
+
+

+ Over 40,000 pet owners trust us. Register now. It's Free + forever! +

+

Use it as a starting point to create something more unique.

+
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+
+ +
+
+

Business Hours

+

Donec sed odio dui. Etiam porta sem malesuada magna mollis + euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. + Morbi leo risus, porta ac consectetur ac, vestibulum at eros. + Praesent commodo cursus magna.

+
+ +
+

Our Location

+

Duis mollis, est non commodo luctus, nisi erat porttitor + ligula, eget lacinia odio sem nec elit. Cras mattis consectetur + purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, + tortor mauris condimentum nibh.

+
+ +
+

Questions or comments

+

Cras mattis consectetur purus sit amet fermentum.

+

+ Drop us a line +

+
+ +
+ +
+
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/landing/robots.txt b/src/main/webapp/landing/robots.txt new file mode 100644 index 000000000..ee2cc216a --- /dev/null +++ b/src/main/webapp/landing/robots.txt @@ -0,0 +1,3 @@ +# robotstxt.org/ + +User-agent: * diff --git a/src/main/webapp/landing/scripts/5987e2ba.vendor.js b/src/main/webapp/landing/scripts/5987e2ba.vendor.js new file mode 100644 index 000000000..3619377a4 --- /dev/null +++ b/src/main/webapp/landing/scripts/5987e2ba.vendor.js @@ -0,0 +1,4 @@ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(hb.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=ob[a]={};return _.each(a.match(nb)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ub,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:tb.test(c)?_.parseJSON(c):c}catch(e){}sb.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Kb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)rb.set(a[c],"globalEval",!b||rb.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(rb.hasData(a)&&(f=rb.access(a),g=rb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sb.hasData(a)&&(h=sb.access(a),i=_.extend({},h),sb.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&yb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Ob[a];return c||(c=t(a,b),"none"!==c&&c||(Nb=(Nb||_("