From 698679c32687d89507cb8f3393cd6f3c63fb78a4 Mon Sep 17 00:00:00 2001 From: Someone Date: Mon, 17 Jun 2013 03:56:06 +0200 Subject: [PATCH] changed some coce in balancer + pom to be runnable inside jenkins and added some slides to the presentation. --- pom.xml | 302 ++++++++++++------ presentation.odp | Bin 20849 -> 25505 bytes .../valesriegler/balancer/BalancerAgent.java | 4 +- .../balancer/jms/JMSBalancer.java | 11 + .../sbc/valesriegler/cook/jms/JMSCook.java | 18 +- 5 files changed, 234 insertions(+), 101 deletions(-) create mode 100644 src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/jms/JMSBalancer.java diff --git a/pom.xml b/pom.xml index 55a00ed..1ecca69 100644 --- a/pom.xml +++ b/pom.xml @@ -1,99 +1,219 @@ - 4.0.0 - at.ac.tuwien.sbc - vales-riegler - 0.0.1-SNAPSHOT + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + at.ac.tuwien.sbc + vales-riegler + 0.0.1-SNAPSHOT - - UTF-8 - + + UTF-8 + - - - org.slf4j - slf4j-api - 1.6.6 - - - ch.qos.logback - logback-classic - 1.0.7 - - - org.apache.activemq - activemq-all - 5.8.0 - - - ch.qos.logback - logback-classic - - - - - org.mozartspaces - mozartspaces-runtime - 2.2-SNAPSHOT - - - ch.qos.logback - logback-classic - - - - - org.mozartspaces - mozartspaces-xvsmp-jaxb - 2.2-SNAPSHOT - - - org.mozartspaces - mozartspaces-capi3-berkeleydb - 2.2-SNAPSHOT - - - org.mozartspaces - mozartspaces-notifications - 2.2-SNAPSHOT - + + + mozartspaces + http://www.mozartspaces.org/maven-snapshots + + - + + + org.slf4j + slf4j-api + 1.6.6 + + + ch.qos.logback + logback-classic + 1.0.7 + + + org.apache.activemq + activemq-all + 5.8.0 + + + ch.qos.logback + logback-classic + + + + + org.mozartspaces + mozartspaces-runtime + 2.2-SNAPSHOT + + + ch.qos.logback + logback-classic + + + + + org.mozartspaces + mozartspaces-xvsmp-jaxb + 2.2-SNAPSHOT + + + org.mozartspaces + mozartspaces-capi3-berkeleydb + 2.2-SNAPSHOT + + + org.mozartspaces + mozartspaces-notifications + 2.2-SNAPSHOT + - - - - - - - - maven-compiler-plugin - 2.3.2 - - 1.7 - 1.7 - - - - org.apache.activemq.tooling - activemq-maven-plugin - 5.8.0 - - broker:(tcp://localhost:61616)?useJmx=true&persistent=false - - - - + + + + + + maven-compiler-plugin + 2.3.2 + + 1.7 + 1.7 + + + + org.apache.activemq.tooling + activemq-maven-plugin + 5.8.0 + + broker:(tcp://localhost:61616)?useJmx=true&persistent=false + + + + + + - - - - - mozartspaces - http://www.mozartspaces.org/maven-snapshots - - - + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9 + + private + + + + verify + + javadoc + + + + + + org.apache.maven.plugins + maven-jxr-plugin + 2.3 + + + verify + + jxr + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.5.2 + + xml + + + + verify + + cobertura + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.9.1 + + + verify + + checkstyle + + + checkstyle.xml + + + + + + org.codehaus.mojo + javancss-maven-plugin + 2.0 + + + verify + + report + + + + + + org.apache.maven.plugins + maven-pmd-plugin + 2.7.1 + + 1.6 + + + + verify + + pmd + cpd + + + + + + org.codehaus.mojo + findbugs-maven-plugin + 2.5.2 + + + verify + + findbugs + + + true + true + true + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.7 + + + site + + + + + + diff --git a/presentation.odp b/presentation.odp index 96d3e8c42a68baa3c358c0cb0536a221b2385ab5..fece348af58e05e4e38f4829c3fbdfef702f3989 100644 GIT binary patch delta 19965 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

D1D!F+4u<3=Yd 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 ui1Qy%P77{96jG|stOT>5*JCGM5B{K zl-d*LGfmJ*a>uEHaS4dI%kSB)04LnB>pkcQh>FDVBuAe3;cwUOcZ6MA;Jl^rn^kjD zl33$#%->RTGQDRgUd%hZkWkx+IqAA6|G^m@78ShHqd|5tSDMt zBpV_vI?hOXS!XKvjshEZn7rbbjaTPK16nVi$VHB}A!gV~mn~L#YBcv8 z=((%-lNfZ~MW=u&x-HIGs|=tGq#sHg6vYluZdZ1#6&tB8OXzwN0lQNt`w`qqfo(OX zSyv;c<(4P=55`kBJSa&z=1ys2DHBX?g*?issm?)2+A=!QBRrG3PRn>wceU@FmN&&J zNA3njl9x@bRDfHTi{#F{mP0=6222r;rahPXr)p`(=UbOB3Fkpg_jnSx32b3hHxX3) z>|`W~$)Fo6VbmO7AXE55=95F#ThdWq{tBKHnz#z$ERW|+yGc1Wp11JjSeL+4K#jxsnARO&{*r)aAS!M~CwE0`o{V zOKdp@KjfT)hc)(6BDZ;$j}@w(oOj__b`!sre`lFJc;T_TI>Vy`BmOrcn5wNJ(hI6W zq30uo=(nawy(_esHQZ2!k07sI1AXWq<{i#6V?E*uy>%2z!4ruVzziFlobsp2cirOC zJ4aZ-LUbK#^d*WomI@)TWDsNEF;VI_hcnT;uj;u5+~fxOdqMhcE{gkK8Etk)?FW6W z3n|=Vmp%77)%0C?s7aNsRdPAYEK4m)$kh$-Pe}B&K}2~noF8KSkb?SD;mYsHd6&Nb ztbNVs+@iBZAM4Ac%*4-b_4y%#dpGRX6IFbvOk)IAK!I|Hp z9WD`5C~^^J3io6`4r$vh!Vzz|aI#`z;7|0V9m%2Vq&$Mh2#MF2_R}b!tw|5s{aLZR zVGYt|WL}^YhV{r>h)v!3T2j;qBQbNtvdjAVMtPjQf4*z72%w4BIGdO|MskDjz9XqL z>^;P0;VpsA_^TK&7(PJCX5@sBNN~i;o0Mv4*c(Imu-BIU`_?S!2MxHM=E3}NyVH0u z`@vC8QGEIiy|UEeOwlQH(??C?eR}QVkX%A7)v!G|waC|3jj&<+|fK zy}Q@qSX{?jx=xF{M3(ds=jc?*{>gs$y*d9#77%r%%iUHW>$Nmvewqf>-uwqaIM>`X z#-MA8SJuMrIH;+m2@rJbRDxX$KuTVv{ni!VForg#vrBg1TwH4wWm)eNgS7nultO0< z9bAXSCzfW+8wzbB9|xLQeYRo>T0dPOdD%}}9-FGk)dNpRENDND)RzoCBczF)d`87c z9-_2-H&j_uzxv6coBd=PeH1rdQN=J9`>qyABhAQJ!(+=M1!t0V*POLN7_c%p`81Gh z&HMSLFAR7}`AmoaXmkmhtiFbX(JNKG^Q4ZlEPg^6(+mADDn2uB3M>PeB7&D9hLt5<xOZ>1MU*IEuc+eAezqe061c!;g zq-eb0-6t+ZIm@0b`;Rp5e=ILCUY3_KqRK+_60%~^jatY+pKJ#c zdgC=MDN!v&E`LUq8S*z$Bv`muR+eF@Pn#68Bic`dyee3JA-KeOvm+acE>e7nmNC+* zdZ|qH#2tr8?{*^SAy&QuPH3s<$F?8^_WQas2aQ@Z>9lUH^OM^}HJA)fb4l>$6M(we2(#fkL!3^N8D(}>t*&uc$w&f9 z$ke+H7phpzELsJ(g?eYQel8d|eRI04<@xmcOU`2WfxX6XOcq8K&;HRf#61=~w7a9? zbWiYK!RjtN?6i9Y21bbr{VQ6pz|q0}^~q+mx(=)AOXk6U`DXL4Ednqwm6zhL52Su= z5&T8{*Ji@s)BO?tP4ZGgfr>se!2P{LfnT{kOlXx-V54-snhC{OD!9KL~y`>GDRq>rws-BbGOsLyz=d+d=LxEC+a_ y6Lp!%{|e;aU+7=ELjS%<`J(l8v47k0ua5NM++XkZzb}wvw1XiPG_LforvC$Fxy!@= diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/BalancerAgent.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/BalancerAgent.java index f8ef416..4b84194 100644 --- a/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/BalancerAgent.java +++ b/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/BalancerAgent.java @@ -4,7 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * BalancerAgent parses the arguments and runs the JMS/XVSMDriver with the given ID. + * BalancerAgent parses the arguments and runs the JMS/XVSMBalancer balancing all pizzerias. * * @author jan * @@ -31,7 +31,7 @@ public class BalancerAgent { if ("JMS".equalsIgnoreCase(mw)) { // TODO: balancer } else if ("XVSM".equalsIgnoreCase(mw)) { - // TODO: XVSM Driver? + // TODO: XVSM Balancer?? } else { throw new IllegalArgumentException(USAGE); } diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/jms/JMSBalancer.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/jms/JMSBalancer.java new file mode 100644 index 0000000..2353fb5 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sbc/valesriegler/balancer/jms/JMSBalancer.java @@ -0,0 +1,11 @@ +package at.ac.tuwien.sbc.valesriegler.balancer.jms; + +/** + * JMSBalancer does all the balancing. + * + * @author jan + * + */ +public class JMSBalancer { + +} diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/cook/jms/JMSCook.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/cook/jms/JMSCook.java index 3e1b0eb..4b8812a 100644 --- a/src/main/java/at/ac/tuwien/sbc/valesriegler/cook/jms/JMSCook.java +++ b/src/main/java/at/ac/tuwien/sbc/valesriegler/cook/jms/JMSCook.java @@ -1,19 +1,21 @@ package at.ac.tuwien.sbc.valesriegler.cook.jms; -import at.ac.tuwien.sbc.valesriegler.common.HasId; -import at.ac.tuwien.sbc.valesriegler.cook.jms.messageListeners.DeliveryOrdersToCook; -import at.ac.tuwien.sbc.valesriegler.cook.jms.messageListeners.OrdersToCook; -import org.apache.activemq.ActiveMQConnectionFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.jms.Connection; import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.Session; +import org.apache.activemq.ActiveMQConnectionFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.ac.tuwien.sbc.valesriegler.common.HasId; +import at.ac.tuwien.sbc.valesriegler.cook.jms.messageListeners.DeliveryOrdersToCook; +import at.ac.tuwien.sbc.valesriegler.cook.jms.messageListeners.OrdersToCook; + /** - * JMSCook registers all the Listeners. + * JMSCook registers 2 Listeners. We do this to prevent a starvation of groups inside the pizzeria. But on the other + * hand we dont require all pizzas inside the pizzeria to be cooked before we start cooking DeliveryOrders. * * @author jan * -- 2.43.0