27 December 2016
Big-O Comparison
Source: https://discuss.leetcode.com/topic/23858/strange-o-nlogn-c-solution-with-qsort-takes-only-4ms/2
http://cooervo.github.io/Algorithms-DataStructures-BigONotation/big-O-notation.html
29 November 2016
The Scale Cube
http://theartofscalability.com/
http://microservices.io/articles/scalecube.html
https://www.benefitfocus.com/blogs/design-engineering/architecture-cubed
http://www.ossmentor.com/2015/01/scaling-microservices.html
https://github.com/arun-gupta/microservices/blob/master/slides/refactor-microservices.pdf
Dietzler’s law
Dietzler’s Law for Access
Every Access project will eventually fail because, while 80% of what the user wants is fast and easy to create, and the next 10% is possible with difficulty, ultimately the last 10% is impossible because you can’t get far enough underneath the built-in abstractions, and users always want 100% of what they want.
Source: http://nealford.com/memeagora/2013/01/22/why_everyone_eventually_hates_maven.html
21 November 2016
Contributions
https://github.com/devwebcl/
http://stackoverflow.com/users/1413222/devwebcl
https://coderanch.com/u/218082/German-Gonzalez-Morris
https://projecteuler.net/profile/devwebcl.png
https://www.hackerrank.com/devwebcl
07 November 2016
Maven subprojects
- create workspace
- create parent project
- copy files/directories, overwriting (subdirectories)
- import thru "Existing Maven Projects", and select parent project
however, it doesn't work as expected... I think the copy to directories is wrong, and only it should be a reference to the origin.
A much better explanation: http://websystique.com/maven/creating-maven-multi-module-project-with-eclipse/
UPDATE1: In the end, there is a quick difference as workaround: just import directly the parent pom.xml
31 October 2016
Bueno Bonito Barato
Por el dominio formal del tema, no se utiliza tanto estas siglas, pero sin dudas existen y es un tema tratado en este ambito.
Podemos ver en wikipedia (ver referencias originales) que se usan sinónimos, tal como:
Fast, Good, and Cheap,
Y de la misma forma, se solicita tomar solo 2 de ellas (Pick any two), en donde solo 2 de esas características pueden ser elegidas, ya que la tercera no sera cumplida por motivos de las anteriores :O
En fin, la idea es recordar este buen thumb-rule en el dia a dia de un proyecto...
Otros similares...
De Agilidad:
The Project Management Triangle:
28 October 2016
Architecture Certification
Cuatro de los "grupos" mas importantes que otorgan certificaciones de arquitectura:
- http://www.opengroup.org/certifications
- https://aws.amazon.com/certification/certified-solutions-architect-associate/
- https://eacoe.org/
- http://www-03.ibm.com/certify/certs/index.shtml
- https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=654&get_params=p_id:131
- http://www.isaca.org/CERTIFICATION/Pages/default.aspx
- http://iasaglobal.org/
- SEI Software Architecture Professional Certificate http://www.sei.cmu.edu/training/certificates/architecture/professional.cfm
20 October 2016
Swap Two Numbers
public class SwapTwoNumbers {
public static void main(String[] args) {
int x = 5, y = 10;
x = x ^ y ^ (y = x);
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
18 October 2016
Holgura
Esta traducción no siempre es fácil de encontrarla, total float o total slack.
16 October 2016
Pleonasmo
Uno de los ejemplos de forma correcta de su uso es el clásico libro de Vicente Perez Rosales: Recuerdos del Pasado.
06 September 2016
Oscon 2016, May Austin TX
18.05.2016:
8:45am Wednesday opening welcome Kelsey Hightower (Google), Rachel Roumeliotis (O'Reilly Media), Scott Hanselman (Microsoft)
11:05am Java 9 sneak peek: An embedded tale Matt Schuetze (Azul Systems)
11:55am Intro to Apache Spark for Java and Scala developers Ted Malaska (Cloudera)
1:50pm CarbonData : A new Hadoop-native file format for faster data analysis Jihong MA (Huawei)
2:40pm Open source and microservices: Your badass, next-gen application architecture Ken Owens (Cisco)
4:20pm Microservices war stories Blithe Rocher (Fastly)
5:10pm Civic data: Using open source data to create socially impactful data-driven products Vida Williams (Axis Partners, Inc)
19.05.2016:
8:50am Thursday opening welcome Scott Hanselman (Microsoft), Rachel Roumeliotis (O'Reilly Media), Kelsey Hightower (Google)
10:10am
Closing remarks
11:05am
Static and dynamic data with Postgres, Kafka, and Bottled Water
Chad Bailey (Heroku )
11:55am
NoSQL's biggest lie: SQL never went away
Matthew Revell (Exoscale)
1:50pm
Real-time democratizing of event-driven big data
Rachel Reese (Jet.com)
2:40pm
Open source or proprietary: Choose wisely
Patrick McFadin (DataStax)
4:20pm
Java 8 puzzlers: The strange, the bizarre, and the wonderful
Baruch Sadogursky (JFrog), Vikto
5:10pm
A data-streaming architecture with Apache Flink
Jamie Grier (data Artisans)
Open Source Convention - O'Reilly OSCON, May 16 - 19, 2016
http://conferences.oreilly.com/oscon/oscon-tx-2016/public/schedule/grid/public/2016-05-18
http://conferences.oreilly.com/oscon/oscon-tx-2016/public/schedule/grid/public/2016-05-19
09 August 2016
weblogic.security.SecurityInitializationException: Authentication for user weblogic denied
Googling you can find a lot of information related to boot.properties and ldap directory.
Nevertheless, this time is about the Managed Server cannot communicate with Admin Server, thus it starts in independent mode, but being the very first time it doesn't have users from realms, finally any user cannot authenticate to MS.
Well, solving the name MBP.local (in my case), everything is solved. (etc/hosts :P )
<Aug 8, 2016 9:13:58 AM EDT> <Emergency> <Management> <BEA-141151> <The admin server could not be reached at http://MBP.local:7001.>
<Aug 8, 2016 9:13:58 AM EDT> <Info> <Configuration Management> <BEA-150018> <This server is being started in managed server independence mode in the absence of the admin server.>
....
.....
....
<Aug 8, 2016 9:13:59 AM EDT> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<Aug 8, 2016 9:13:59 AM EDT> <Critical> <Security> <BEA-090403> <Authentication for user weblogic denied>
<Aug 8, 2016 9:13:59 AM EDT> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: weblogic.security.SecurityInitializationException: Authentication for user weblogic denied
weblogic.security.SecurityInitializationException: Authentication for user weblogic denied
at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.doBootAuthorization(CommonSecurityServiceManagerDelegateImpl.java:966)
at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.initialize(CommonSecurityServiceManagerDelegateImpl.java:1054)
at weblogic.security.service.SecurityServiceManager.initialize(SecurityServiceManager.java:873)
at weblogic.security.SecurityService.start(SecurityService.java:141)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
Truncated. see log file for complete stacktrace
Caused By: javax.security.auth.login.FailedLoginException: [Security:090303]Authentication Failed: User weblogic weblogic.security.providers.authentication.LDAPAtnDelegateException: [Security:090295]caught unexpected exception
at weblogic.security.providers.authentication.LDAPAtnLoginModuleImpl.login(LDAPAtnLoginModuleImpl.java:251)
at com.bea.common.security.internal.service.LoginModuleWrapper$1.run(LoginModuleWrapper.java:110)
at java.security.AccessController.doPrivileged(Native Method)
at com.bea.common.security.internal.service.LoginModuleWrapper.login(LoginModuleWrapper.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Truncated. see log file for complete stacktrace
>
<Aug 8, 2016 9:13:59 AM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>
<Aug 8, 2016 9:13:59 AM EDT> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>
Tabs & Spaces
Workaround for Eclipse:
(replace tabs by spaces, not very elegant, but it works)
29 July 2016
Project Euler @Hackerrank
One (of many) interesting features is to have ProjectEuler+ open contest, which is the same PE with timeout handicap, thus becoming much harder, seeking for more elegant solutions :P
30 June 2016
Regular Expressions Puzzles
It appeared several similar puzzles, but there are a couple sites with similar contraption :
Give it a try !
MIT puzzle:
More interesting sites:
25 May 2016
net.sf.ehcache.CacheException
https://github.com/devwebcl/java-caches-demo
I hit an issue for Tomcat in Mac OS X using ehcache listener for replication:
May 25, 2016 11:07:41 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class de.consol.research.cache.part03.ehcache.ServletContextListener
net.sf.ehcache.CacheException: Can't assign requested address
This is solved by setting Java system property:
-Djava.net.preferIPv4Stack=true
20 May 2016
Knuth's Algorithm Java Impl
https://github.com/devwebcl/Knuth
For now, only algorithms from 7.2.1.2
Also, it has code from Sedgewick.
02 May 2016
WebLogic access log files
One easy way (to avoid several constraints) is to have like-a webpage to see these files.
This can be achieved easily with weblogic.xml parameters:
Different WebLogic Server Tools
Bunch of tools to help WLS admin, debugging, etc.
- This first version is a war file to access log files from remote client through an HTML file generated by WLS.
- the core idea is to show the directories/files of a particular server, this way we can debug easily.
The weblogic.xml is:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
<wls:weblogic-version>10.3.6</wls:weblogic-version>
<wls:context-root>logs_retrieval</wls:context-root>
<!--
/u01/domains1036/MYDOMAIN/logs
/u01/domains1036/MYDOMAIN/servers/SERVER1/logs
/ u01/ domains1036/ MYDOMAIN/ apps/ app1-wl/ dist/ app1. ear
/ u01/ domains1036/ MYDOMAIN/ apps/ app2-auth/ dist/ app2. war
error_web.log :
/tmp
----
index-directory-enabled
The <index-directory-enabled> element controls whether or not to automatically generate an HTML directory listing if no suitable index file is found.
The default value is false (does not generate a directory). Values are true or false.
https://docs.oracle.com/cd/E28280_01/web.1111/e13712/weblogic_xml.htm#WBAPP596
-->
<wls:container-descriptor>
<wls:index-directory-enabled>true</wls:index-directory-enabled>
</wls:container-descriptor>
<wls:virtual-directory-mapping>
<wls:local-path>/u01/domains1036/MYDOMAIN</wls:local-path>
<wls:url-pattern>/servers/logs/*</wls:url-pattern>
</wls:virtual-directory-mapping>
<wls:virtual-directory-mapping>
<wls:local-path>/u01/domains1036/MYDOMAIN/</wls:local-path>
<wls:url-pattern>/logs/*</wls:url-pattern>
</wls:virtual-directory-mapping>
<!-- depending on OS we must use : "/" or "c:" -->
<wls:virtual-directory-mapping>
<!-- wls:local-path>c:/</wls:local-path -->
<wls:local-path>/</wls:local-path>
<wls:url-pattern>/tmp/*</wls:url-pattern>
</wls:virtual-directory-mapping>
<wls:jsp-descriptor>
<wls:page-check-seconds>0</wls:page-check-seconds>
</wls:jsp-descriptor>
<wls:container-descriptor>
<wls:servlet-reload-check-secs>0</wls:servlet-reload-check-secs>
<wls:resource-reload-check-secs>0</wls:resource-reload-check-secs>
</wls:container-descriptor>
</wls:weblogic-web-app>
07 April 2016
Fowler's ideas
- CQRS
- Event Sourcing
- Parallel Model
- ReportingDatabase
- BlueGreen Deployment
- Canary Release
...
22 March 2016
16 March 2016
Catastrophic Backtracking
RegExp Playground
This repository contains several regexp examples.Examples
1. Catastrophic Backtracking
This is Java example of backtracking catastrophic shown in Coding Horror post This is a known behavior when using nesting repetition operators, that has been analyzed in stackoverlow, regular expressions dedicated sites.It can be seen the exponential explosion that take to parse using regexp for a simple pattern:
(x+x+)y+
Details of this issue can be found on the above links.Execute
mvn clean package
mvn exec:java -Dexec.mainClass="cl.devweb.regexp.exploit.CatastrophicBacktracking"
Rule of Thumb - Solution
The solution is simple. When nesting repetition operators, make absolutely sure that there is only one way to match the same match. If repeating the inner loop 4 times and the outer loop 7 times results in the same overall match as repeating the inner loop 6 times and the outer loop 2 times, you can be sure that the regex engine will try all those combinations.OUTPUT
mvn exec:java -Dexec.mainClass="cl.devweb.regexp.exploit.CatastrophicBacktracking"
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building regexp-exploit 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ regexp-exploit ---
Found value: xxxxxxxxxxxxxy timer=113.2 μs
Invalid match of 1 chars took 20.97 μs
Invalid match of 2 chars took 14.28 μs
Invalid match of 3 chars took 21.82 μs
Invalid match of 4 chars took 149.2 μs
Invalid match of 5 chars took 26.92 μs
Invalid match of 6 chars took 43.73 μs
Invalid match of 7 chars took 80.80 μs
Invalid match of 8 chars took 135.6 μs
Invalid match of 9 chars took 207.1 μs
Invalid match of 10 chars took 240.6 μs
Invalid match of 11 chars took 442.9 μs
Invalid match of 12 chars took 848.0 μs
Invalid match of 13 chars took 1.623 ms
Invalid match of 14 chars took 2.504 ms
Invalid match of 15 chars took 4.339 ms
Invalid match of 16 chars took 8.163 ms
Invalid match of 17 chars took 16.60 ms
Invalid match of 18 chars took 33.27 ms
Invalid match of 19 chars took 69.98 ms
Invalid match of 20 chars took 138.2 ms
Invalid match of 21 chars took 268.9 ms
Invalid match of 22 chars took 537.9 ms
Invalid match of 23 chars took 977.8 ms
Invalid match of 24 chars took 2.132 s
Invalid match of 25 chars took 4.260 s
Invalid match of 26 chars took 8.433 s
Invalid match of 27 chars took 17.18 s
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 34.977 s
[INFO] Finished at: 2016-03-16T12:38:59-03:00
[INFO] Final Memory: 9M/245M
[INFO] ------------------------------------------------------------------------
We can see taking a Thread Dump, where is spending (wasting?) most of the time:"main" #1 prio=5 os_prio=31 tid=0x00007f8f9a006000 nid=0x1303 runnable [0x000000010a718000]
java.lang.Thread.State: RUNNABLE
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4272)
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.matchInit(Pattern.java:4801)
at java.util.regex.Pattern$Prolog.match(Pattern.java:4741)
at java.util.regex.Pattern$Start.match(Pattern.java:3461)
at java.util.regex.Matcher.search(Matcher.java:1248)
at java.util.regex.Matcher.find(Matcher.java:637)
at cl.devweb.regexp.exploit.CatastrophicBacktracking.main(CatastrophicBacktracking.java:81)
TODO
- add more examples :)
License
MIT . .15 March 2016
Maven Cheat Sheet
mvn clean package -DskipTests -Dmaven.javadoc.skip=true -Dhttps.protocols=TLSv1.2
1. Use a different settings.xml
mvn --settings ~/.m2/YourOwnSettings.xml clean installor
mvn -s ~/.m2/YourOwnSettings.xml clean install
2. Jboss tasks:
mvn jboss-as:deploy
mvn jboss-as:redeploy
mvn jboss-as:undeploy
3. Eclipse Maven clean:
(retired)
mvn eclipse:eclipse
mvn eclipse:clean
mvn install
4. set java version:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.4</source>
<target>1.4</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
or
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
5. Missing Maven dependencies in Eclipse Project
workaround to have an eclipse maven project
6. basic maven structure
src/main/java
- src
- main
- java
- resources
- webapp
- test
- java
- resources
- target
7. packaging:
<packaging>jar</packaging>
8. executing from maven:
add the following plugin to pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.myorganisationname.common.App</mainClass>
</configuration>
<arguments> -Dlog4j.configurationFile=/tmp/log4j2.xml </arguments> <classpathScope>test</classpathScope>
</plugin>
and run it with:
mvn exec:java
9. skipping test:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
or
mvn install -DskipTests
or
mvn install -Dmaven.test.skip=true
10. Multiple Module Projects
<packaging>pom</packaging>
<modules>
<module>guide-ide-eclipse-site</module>
<module>guide-ide-eclipse-core</module>
<module>guide-ide-eclipse-module1</module>
</modules>
Add the parent to the POMs of the new modules:
<parent>
<groupId>guide.ide.eclipse</groupId>
<artifactId>guide-ide-eclipse</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
mvn install
mvn eclipse:eclipse
http://maven.apache.org/plugins/maven-eclipse-plugin/reactor.html
11. web archetype
mvn archetype:generate -DgroupId=cl.devweb -DartifactId=wls_log_retrieval -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false12. copy dependencies:
mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR
13. tomcat
mvn tomcat7:deploy
mvn tomcat7:undeploy
mvn tomcat7:redeploy
14. verbose class
mvn test -DjvmArgs="-verbose:class"
15. web.xml-less
(servlet 3.0+)
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>
16. weblogic
mvn com.oracle.weblogic:weblogic-maven-plugin:deploy
mvn com.oracle.weblogic:weblogic-maven-plugin:undeploy
<plugin>
<groupId>com.oracle.weblogic</groupId>
<artifactId>weblogic-maven-plugin</artifactId>
<version>12.1.3-0-0</version>
<configuration>
<adminurl>t3://127.0.0.1:7001</adminurl>
<user>weblogic</user>
<password>welcome1</password>
<upload>true</upload>
<action>deploy</action>
<remote>true</remote>
<verbose>true</verbose>
<source>target/${project.artifactId}.${project.packaging}</source>
<name>${project.artifactId}</name>
<targets>AdminServer</targets>
</configuration>
</plugin>
17. debug flagmvn -Xor
mvn -e
18. update (when it does not find jar)
mvn -U package
19. dependencies
mvn dependency:tree
-Dverbose
-Dmaven.javadoc.skip=true
21. assigning different https protocol version :(to avoid: Received fatal alert: protocol_version)
-Dhttps.protocols=TLSv1.2
22. identifying excluding dependencies
mvn dependency:tree -Dverbose -Dincludes=log4j:log4j
i.e.:
[German@KDU foo-ejemplo (feature/ggonzalez/refactoring)]$ mvn dependency:tree -Dverbose -Dincludes=org.springframework:spring-core
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< cl.bar:foo-ejemplo >---------------
[INFO] Building foo-ejemplo 1.0.0
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ foo-ejemplo ---
[INFO] cl.bar:foo-ejemplo:war:1.0.0
[INFO] \- cl.bar.plataforma.common:foo-ejemplo-lib:jar:1.0.1:compile
[INFO] +- org.springframework:spring-context:jar:4.2.1.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.2.1.RELEASE:compile
[INFO] | | \- (org.springframework:spring-core:jar:4.2.1.RELEASE:compile - omitted for duplicate)
[INFO] | +- org.springframework:spring-beans:jar:4.2.1.RELEASE:compile
[INFO] | | \- (org.springframework:spring-core:jar:4.2.1.RELEASE:compile - omitted for duplicate)
[INFO] | +- org.springframework:spring-core:jar:4.2.1.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.2.1.RELEASE:compile
[INFO] | \- (org.springframework:spring-core:jar:4.2.1.RELEASE:compile - omitted for duplicate)
[INFO] \- org.springframework:spring-jdbc:jar:4.2.1.RELEASE:compile
[INFO] +- (org.springframework:spring-core:jar:4.2.1.RELEASE:compile - omitted for duplicate)
[INFO] \- org.springframework:spring-tx:jar:4.2.1.RELEASE:compile
[INFO] \- (org.springframework:spring-core:jar:4.2.1.RELEASE:compile - omitted for duplicate)
23. Add local dependencies directly
<dependency>
<groupId>com.sample</groupId>
<artifactId>sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>true</failOnMissingWebXml>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
24. purge local
to clean up old dependencies (when someone changes a library but didn't upgrade the version, so we have a stale version)
mvn clean dependency:purge-local-repository
25. maven options for -XX
export MAVEN_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/"
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xms512m -Xmx512m -XX:PermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=512m</argLine>
</configuration>
</plugin>
</plugins>
<properties>
<argLine>-Xms512m -Xmx512m -XX:PermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=512m</argLine>
26. sonar
mvn sonar:sonar -Dsonar.host.url=http://127.0.0.1:9000 -Dsonar.login=d676f79d8ba83cdcf69f38f8471f0284ee242e09
for remote server:
settings.xml:
<settings 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/xsd/settings-1.0.0.xsd">
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://127.0.0.1:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
27. javadoc 8 issues
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project foo-api-rest: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/German/development/workspace-oepe/foo-api-rest/src/main/java/cl/bar/plataformacomercial/foo/api/aop/HttpUtil.java:20: warning: no description for @param
[ERROR] * @param request
[ERROR] ^
This can be solved: https://devwebcl.blogspot.com/2016/01/jdk8-self-closing-element-not-allowed.html
28. maven deploy nexus
before configuring: settings.xml, Plugins, distributionManagement, snapshotRepository
mvn clean deploy
https://www.baeldung.com/maven-deploy-nexus
29. install a library in the local repo
mvn install:install-file -DgroupId=cl.devweb.rbac -DartifactId=test -Dversion=1.0.0 -Dfile=test-rbac.jar -Dpackaging=jar -DgeneratePom=true
30. list system properties from Maven:
mvn help:system
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property environment="env" />
<echoproperties />
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
31.
wsdl jar
to be tested jar wsdl client proxies :
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlDirectory>${basedir}/src/main/resources/wsdl/</wsdlDirectory>
<wsdlLocation>wsdl/endpoint_sample_wsdl.wsdl</wsdlLocation>
<sourceDestDir>${basedir}/src/main/java</sourceDestDir>
32.
list of licenses
mvn license:add-third-party
33. .m2 corrupt
Many times when there is a problem downloading jar files from any maven repository, the quick solution is to delete local reference at .m2.
34.
integration test (failsafe)
mvn verify
35.
Operating System (OS) profiles:
<profiles>
<profile>
<id>Windows</id>
<activation>
<os>
<family>Windows</family>
</os>
</activation>
<properties>
<script.extension>.cmd</script.extension>
</properties>
</profile>
<profile>
<id>unix</id>
<activation>
<os>
<family>unix</family>
</os>
</activation>
<properties>
<!-- actually it's extension-less (instead of .sh)-->
<script.extension></script.extension>
</properties>
</profile>
</profiles>
36.
creates classpath
mvn dependency:build-classpath
37.
add new repositories to settings.xml
many maven repos have modular repos for release, snapshots, thirdparties...
<repositories>
<repository>
<id>maven-releases</id>
<url>http://localhost:8081/repository/maven-releases/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>maven-snapshots</id>
<url>http://localhost:8081/repository/maven-snapshots/</url>
<layout>default</layout>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>thirdparty</id>
<url>http://nexus.cl:8081/repository/thirdparty/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled> <!-- fir jdbc 1.7 from wls -->
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
38. hello world antrun
(and writing to a file a timestamp).
mvn antrun:run@tmp-echo
<execution>
<id>tmp-echo</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<tstamp>
<format property="last.updated" pattern="yyyy-MM-dd hh:mm:ss"/>
</tstamp>
<echo>Hello world!</echo>
<echo message="${last.updated}"/>
<concat destfile="log.txt" append="yes" fixlastline="yes">${last.updated}</concat>
<concat destfile="log.txt" append="yes" fixlastline="yes">
<path path="hola.txt"/>
</concat>
</target>
</configuration>
</execution>
39. Owasp Dependency-check-maven
open source vulnerable libraries.
mvn dependency-check:check
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>5.2.4</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
40. Modernizer Maven Plugin
yet another static analyzer
<plugin>
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-plugin</artifactId>
<version>2.0.0</version>
<configuration>
<javaVersion>1.8</javaVersion>
</configuration>
</plugin>
41. springboot startup
mvn spring-boot:run
42. javadoc plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
43. Overriding managed version maven dependency
parent pom spring boot 2.x
version 1.x can override a version easily by replacing properties of a library:
<properties>
<json.version>20180130</json.version>
</properties>
however now with 2.0 it must be avoided to use parent starter and add manually each dependency. From 1, 2 & 3
<dependencyManagement>
<dependencies>
<dependency>
...
...
...
44. logging stdout
Maven can log with:
-l log file
--log-file log.txt
or using tee would be better (we can redirect stdout to a file)
mvn-all2.bat | tee /a log3.txt
45. profile command line
to execute a profile (by using the maven repository) use -P argument:
mvn clean package -P perfil
<profiles>
<profile>
<id>perfil</id>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>company-releases</id>
<name>company-releases</name>
<url>https://host:port/repository/maven-releases</url>
</repository>
46. internal repository in pom.xml
<project>
...
<repositories>
<repository>
<id>my-internal-site</id>
<url>http://myserver/repo</url>
</repository>
</repositories>
...
</project>
47. docker
mvn clean install dockerfile:build
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.0</version>
</plugin>
48. jar without version
<build>
<finalName>${project.artifactId}</finalName>
49. jar executable
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>cl.devweb.test.encrypt.Test1Json</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
50. jar dependencies - fat jar
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>cl.devweb.test.encrypt.Test1Json</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
.
51. copy resources
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resource-one</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>C:/Users/germagon/tmp/tmp</outputDirectory>
<resources>
<resource>
<directory>target</directory>
<includes>
<include>oci-cli-oke-fd-${version}-jar-with-dependencies.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Labels
- Algorithm
- Ant
- Architecture
- AWS
- Aymara
- Books
- C
- Certification
- Cheat
- Chess
- Cloud
- Concurrency
- Contest
- Deep Learning
- Design Patterns
- Dijkstra
- Eclipse
- Errata
- Functional
- Gaming
- Haskell
- Hp48
- Java
- Julia
- Knuth
- Kubernetes
- Latex
- Linguistics
- Linux
- Log4j
- Mac OSX
- Magazines
- Math
- Maven
- Memories
- Microservices
- Miscellaneous
- Networking
- Oc4j
- OCI
- Performance
- Programming
- Puzzle
- Python
- Quotes
- RegExp
- Retro
- Security
- Software
- Software Engineering
- Spring
- Tech Review
- Tomcat
- Unsolved
- Web Services
- Weblogic
My Blog List
-
1990: The Bronx Warriors (1982)2 months ago
Books & Reading
Blog Archive
-
►
2024
(
8
)
- ► Nov 17 - Nov 24 ( 1 )
- ► Oct 20 - Oct 27 ( 1 )
- ► Oct 13 - Oct 20 ( 1 )
- ► Apr 21 - Apr 28 ( 1 )
- ► Mar 24 - Mar 31 ( 3 )
- ► Jan 7 - Jan 14 ( 1 )
-
►
2023
(
15
)
- ► Dec 10 - Dec 17 ( 1 )
- ► Sep 10 - Sep 17 ( 1 )
- ► Aug 13 - Aug 20 ( 1 )
- ► Jul 9 - Jul 16 ( 1 )
- ► Jun 18 - Jun 25 ( 2 )
- ► Jun 4 - Jun 11 ( 1 )
- ► May 28 - Jun 4 ( 2 )
- ► May 21 - May 28 ( 1 )
- ► Mar 12 - Mar 19 ( 1 )
- ► Feb 19 - Feb 26 ( 1 )
- ► Jan 15 - Jan 22 ( 3 )
-
►
2022
(
22
)
- ► Nov 27 - Dec 4 ( 1 )
- ► Oct 16 - Oct 23 ( 1 )
- ► Aug 21 - Aug 28 ( 1 )
- ► Jul 17 - Jul 24 ( 1 )
- ► Jun 5 - Jun 12 ( 1 )
- ► May 22 - May 29 ( 1 )
- ► May 15 - May 22 ( 1 )
- ► Apr 24 - May 1 ( 2 )
- ► Apr 10 - Apr 17 ( 1 )
- ► Apr 3 - Apr 10 ( 1 )
- ► Mar 20 - Mar 27 ( 2 )
- ► Mar 6 - Mar 13 ( 1 )
- ► Feb 27 - Mar 6 ( 2 )
- ► Jan 30 - Feb 6 ( 1 )
- ► Jan 23 - Jan 30 ( 1 )
- ► Jan 9 - Jan 16 ( 2 )
- ► Jan 2 - Jan 9 ( 2 )
-
►
2021
(
25
)
- ► Dec 19 - Dec 26 ( 1 )
- ► Dec 12 - Dec 19 ( 1 )
- ► Nov 7 - Nov 14 ( 1 )
- ► Sep 5 - Sep 12 ( 1 )
- ► Aug 8 - Aug 15 ( 1 )
- ► Aug 1 - Aug 8 ( 2 )
- ► Jul 25 - Aug 1 ( 1 )
- ► Jul 18 - Jul 25 ( 2 )
- ► Jul 11 - Jul 18 ( 1 )
- ► Jul 4 - Jul 11 ( 1 )
- ► Jun 27 - Jul 4 ( 2 )
- ► Jun 6 - Jun 13 ( 1 )
- ► May 30 - Jun 6 ( 1 )
- ► May 9 - May 16 ( 1 )
- ► May 2 - May 9 ( 1 )
- ► Apr 4 - Apr 11 ( 1 )
- ► Feb 14 - Feb 21 ( 1 )
- ► Feb 7 - Feb 14 ( 1 )
- ► Jan 24 - Jan 31 ( 3 )
- ► Jan 10 - Jan 17 ( 1 )
-
►
2020
(
46
)
- ► Dec 20 - Dec 27 ( 1 )
- ► Dec 6 - Dec 13 ( 2 )
- ► Nov 29 - Dec 6 ( 3 )
- ► Nov 1 - Nov 8 ( 1 )
- ► Oct 25 - Nov 1 ( 1 )
- ► Oct 18 - Oct 25 ( 2 )
- ► Oct 11 - Oct 18 ( 1 )
- ► Sep 27 - Oct 4 ( 1 )
- ► Sep 20 - Sep 27 ( 1 )
- ► Sep 6 - Sep 13 ( 1 )
- ► Aug 30 - Sep 6 ( 2 )
- ► Aug 16 - Aug 23 ( 2 )
- ► Aug 2 - Aug 9 ( 1 )
- ► Jul 26 - Aug 2 ( 1 )
- ► Jul 19 - Jul 26 ( 2 )
- ► Jul 5 - Jul 12 ( 1 )
- ► Jun 14 - Jun 21 ( 1 )
- ► May 31 - Jun 7 ( 3 )
- ► May 17 - May 24 ( 2 )
- ► May 10 - May 17 ( 1 )
- ► Apr 19 - Apr 26 ( 2 )
- ► Mar 29 - Apr 5 ( 2 )
- ► Mar 15 - Mar 22 ( 2 )
- ► Mar 8 - Mar 15 ( 1 )
- ► Mar 1 - Mar 8 ( 1 )
- ► Feb 23 - Mar 1 ( 1 )
- ► Feb 16 - Feb 23 ( 2 )
- ► Feb 9 - Feb 16 ( 1 )
- ► Feb 2 - Feb 9 ( 1 )
- ► Jan 26 - Feb 2 ( 1 )
- ► Jan 19 - Jan 26 ( 1 )
- ► Jan 12 - Jan 19 ( 1 )
-
►
2019
(
56
)
- ► Dec 29 - Jan 5 ( 1 )
- ► Dec 15 - Dec 22 ( 1 )
- ► Dec 1 - Dec 8 ( 2 )
- ► Nov 24 - Dec 1 ( 1 )
- ► Nov 17 - Nov 24 ( 1 )
- ► Nov 10 - Nov 17 ( 1 )
- ► Nov 3 - Nov 10 ( 1 )
- ► Oct 20 - Oct 27 ( 1 )
- ► Oct 6 - Oct 13 ( 1 )
- ► Sep 29 - Oct 6 ( 1 )
- ► Sep 22 - Sep 29 ( 2 )
- ► Sep 8 - Sep 15 ( 7 )
- ► Sep 1 - Sep 8 ( 6 )
- ► Aug 25 - Sep 1 ( 4 )
- ► Aug 18 - Aug 25 ( 2 )
- ► Aug 4 - Aug 11 ( 1 )
- ► Jul 14 - Jul 21 ( 1 )
- ► Jun 30 - Jul 7 ( 1 )
- ► Jun 16 - Jun 23 ( 2 )
- ► Jun 2 - Jun 9 ( 1 )
- ► May 26 - Jun 2 ( 1 )
- ► May 5 - May 12 ( 3 )
- ► Apr 28 - May 5 ( 1 )
- ► Apr 21 - Apr 28 ( 1 )
- ► Apr 7 - Apr 14 ( 1 )
- ► Mar 24 - Mar 31 ( 2 )
- ► Mar 17 - Mar 24 ( 1 )
- ► Mar 10 - Mar 17 ( 1 )
- ► Mar 3 - Mar 10 ( 1 )
- ► Feb 24 - Mar 3 ( 2 )
- ► Feb 10 - Feb 17 ( 2 )
- ► Jan 13 - Jan 20 ( 2 )
-
►
2018
(
75
)
- ► Dec 30 - Jan 6 ( 2 )
- ► Dec 23 - Dec 30 ( 1 )
- ► Dec 16 - Dec 23 ( 2 )
- ► Dec 9 - Dec 16 ( 3 )
- ► Dec 2 - Dec 9 ( 3 )
- ► Nov 25 - Dec 2 ( 3 )
- ► Nov 18 - Nov 25 ( 3 )
- ► Nov 11 - Nov 18 ( 4 )
- ► Nov 4 - Nov 11 ( 2 )
- ► Oct 28 - Nov 4 ( 2 )
- ► Oct 14 - Oct 21 ( 2 )
- ► Sep 30 - Oct 7 ( 2 )
- ► Sep 23 - Sep 30 ( 1 )
- ► Sep 16 - Sep 23 ( 1 )
- ► Aug 26 - Sep 2 ( 1 )
- ► Aug 12 - Aug 19 ( 2 )
- ► Aug 5 - Aug 12 ( 1 )
- ► Jul 29 - Aug 5 ( 1 )
- ► Jul 22 - Jul 29 ( 1 )
- ► Jul 8 - Jul 15 ( 3 )
- ► Jul 1 - Jul 8 ( 2 )
- ► Jun 24 - Jul 1 ( 3 )
- ► Jun 17 - Jun 24 ( 2 )
- ► Jun 10 - Jun 17 ( 8 )
- ► Jun 3 - Jun 10 ( 4 )
- ► May 27 - Jun 3 ( 2 )
- ► May 6 - May 13 ( 1 )
- ► Apr 29 - May 6 ( 1 )
- ► Apr 8 - Apr 15 ( 2 )
- ► Apr 1 - Apr 8 ( 2 )
- ► Mar 25 - Apr 1 ( 1 )
- ► Mar 11 - Mar 18 ( 1 )
- ► Mar 4 - Mar 11 ( 1 )
- ► Feb 18 - Feb 25 ( 2 )
- ► Jan 28 - Feb 4 ( 1 )
- ► Jan 21 - Jan 28 ( 1 )
- ► Jan 7 - Jan 14 ( 1 )
-
►
2017
(
33
)
- ► Dec 31 - Jan 7 ( 1 )
- ► Dec 24 - Dec 31 ( 2 )
- ► Dec 17 - Dec 24 ( 1 )
- ► Dec 10 - Dec 17 ( 1 )
- ► Dec 3 - Dec 10 ( 1 )
- ► Nov 26 - Dec 3 ( 3 )
- ► Nov 19 - Nov 26 ( 1 )
- ► Nov 5 - Nov 12 ( 1 )
- ► Oct 29 - Nov 5 ( 4 )
- ► Oct 15 - Oct 22 ( 1 )
- ► Oct 8 - Oct 15 ( 2 )
- ► Oct 1 - Oct 8 ( 1 )
- ► Aug 20 - Aug 27 ( 2 )
- ► Jul 9 - Jul 16 ( 1 )
- ► May 7 - May 14 ( 3 )
- ► Apr 30 - May 7 ( 1 )
- ► Mar 19 - Mar 26 ( 1 )
- ► Mar 12 - Mar 19 ( 2 )
- ► Feb 26 - Mar 5 ( 1 )
- ► Feb 12 - Feb 19 ( 2 )
- ► Jan 8 - Jan 15 ( 1 )
-
▼
2016
(
32
)
- ▼ Dec 25 - Jan 1 ( 1 )
- ► Nov 20 - Nov 27 ( 1 )
- ► Nov 6 - Nov 13 ( 1 )
- ► Apr 3 - Apr 10 ( 1 )
- ► Mar 6 - Mar 13 ( 1 )
- ► Feb 28 - Mar 6 ( 3 )
- ► Feb 21 - Feb 28 ( 2 )
- ► Jan 24 - Jan 31 ( 1 )
- ► Jan 10 - Jan 17 ( 2 )
- ► Jan 3 - Jan 10 ( 1 )
-
►
2015
(
19
)
- ► Dec 27 - Jan 3 ( 1 )
- ► Nov 29 - Dec 6 ( 1 )
- ► Nov 1 - Nov 8 ( 2 )
- ► Oct 18 - Oct 25 ( 1 )
- ► Oct 11 - Oct 18 ( 2 )
- ► Sep 13 - Sep 20 ( 3 )
- ► Jul 12 - Jul 19 ( 1 )
- ► Jul 5 - Jul 12 ( 1 )
- ► Jun 21 - Jun 28 ( 1 )
- ► May 31 - Jun 7 ( 1 )
- ► Mar 15 - Mar 22 ( 1 )
- ► Mar 8 - Mar 15 ( 3 )
- ► Mar 1 - Mar 8 ( 1 )
-
►
2014
(
15
)
- ► Dec 28 - Jan 4 ( 1 )
- ► Dec 7 - Dec 14 ( 1 )
- ► Nov 16 - Nov 23 ( 1 )
- ► Nov 2 - Nov 9 ( 1 )
- ► Oct 5 - Oct 12 ( 1 )
- ► Sep 7 - Sep 14 ( 1 )
- ► Aug 31 - Sep 7 ( 1 )
- ► Aug 17 - Aug 24 ( 1 )
- ► Jul 27 - Aug 3 ( 1 )
- ► Jun 29 - Jul 6 ( 1 )
- ► Jun 15 - Jun 22 ( 1 )
- ► Jun 8 - Jun 15 ( 1 )
- ► May 25 - Jun 1 ( 1 )
- ► Feb 9 - Feb 16 ( 1 )
- ► Jan 5 - Jan 12 ( 1 )
-
►
2013
(
21
)
- ► Dec 29 - Jan 5 ( 2 )
- ► Dec 22 - Dec 29 ( 1 )
- ► Nov 17 - Nov 24 ( 1 )
- ► Nov 10 - Nov 17 ( 2 )
- ► Oct 27 - Nov 3 ( 1 )
- ► Sep 22 - Sep 29 ( 1 )
- ► Sep 8 - Sep 15 ( 1 )
- ► Aug 25 - Sep 1 ( 1 )
- ► Jul 28 - Aug 4 ( 1 )
- ► May 5 - May 12 ( 2 )
- ► Apr 7 - Apr 14 ( 3 )
- ► Mar 31 - Apr 7 ( 2 )
- ► Mar 3 - Mar 10 ( 1 )
- ► Jan 20 - Jan 27 ( 1 )
- ► Jan 13 - Jan 20 ( 1 )
-
►
2012
(
23
)
- ► Dec 16 - Dec 23 ( 1 )
- ► Oct 28 - Nov 4 ( 1 )
- ► Oct 21 - Oct 28 ( 1 )
- ► Sep 23 - Sep 30 ( 2 )
- ► Sep 2 - Sep 9 ( 1 )
- ► Aug 26 - Sep 2 ( 2 )
- ► Jun 24 - Jul 1 ( 2 )
- ► Jun 17 - Jun 24 ( 1 )
- ► May 13 - May 20 ( 1 )
- ► May 6 - May 13 ( 2 )
- ► Apr 22 - Apr 29 ( 2 )
- ► Apr 15 - Apr 22 ( 4 )
- ► Mar 25 - Apr 1 ( 1 )
- ► Feb 26 - Mar 4 ( 1 )
- ► Jan 29 - Feb 5 ( 1 )
-
►
2011
(
15
)
- ► Nov 20 - Nov 27 ( 1 )
- ► Nov 6 - Nov 13 ( 1 )
- ► Oct 30 - Nov 6 ( 1 )
- ► Oct 23 - Oct 30 ( 3 )
- ► Sep 25 - Oct 2 ( 1 )
- ► Sep 4 - Sep 11 ( 1 )
- ► Aug 28 - Sep 4 ( 1 )
- ► Jul 17 - Jul 24 ( 1 )
- ► Jul 3 - Jul 10 ( 1 )
- ► May 15 - May 22 ( 1 )
- ► May 8 - May 15 ( 1 )
- ► May 1 - May 8 ( 1 )
- ► Feb 20 - Feb 27 ( 1 )
-
►
2010
(
19
)
- ► Dec 26 - Jan 2 ( 1 )
- ► Dec 12 - Dec 19 ( 2 )
- ► Dec 5 - Dec 12 ( 2 )
- ► Nov 21 - Nov 28 ( 1 )
- ► Sep 19 - Sep 26 ( 1 )
- ► Aug 22 - Aug 29 ( 1 )
- ► Aug 1 - Aug 8 ( 2 )
- ► Jun 27 - Jul 4 ( 1 )
- ► Jun 6 - Jun 13 ( 1 )
- ► May 23 - May 30 ( 1 )
- ► May 16 - May 23 ( 4 )
- ► Feb 28 - Mar 7 ( 1 )
- ► Jan 31 - Feb 7 ( 1 )
-
►
2009
(
16
)
- ► Dec 13 - Dec 20 ( 1 )
- ► Oct 4 - Oct 11 ( 1 )
- ► Sep 27 - Oct 4 ( 1 )
- ► Aug 23 - Aug 30 ( 4 )
- ► Aug 16 - Aug 23 ( 1 )
- ► Aug 2 - Aug 9 ( 1 )
- ► Jul 19 - Jul 26 ( 1 )
- ► Jul 12 - Jul 19 ( 1 )
- ► Jun 21 - Jun 28 ( 1 )
- ► Jun 14 - Jun 21 ( 1 )
- ► Jun 7 - Jun 14 ( 1 )
- ► Apr 19 - Apr 26 ( 1 )
- ► Feb 8 - Feb 15 ( 1 )
-
►
2008
(
10
)
- ► Dec 28 - Jan 4 ( 1 )
- ► Nov 30 - Dec 7 ( 1 )
- ► Nov 23 - Nov 30 ( 1 )
- ► Oct 26 - Nov 2 ( 2 )
- ► Sep 28 - Oct 5 ( 1 )
- ► Sep 21 - Sep 28 ( 1 )
- ► Sep 7 - Sep 14 ( 1 )
- ► Jun 8 - Jun 15 ( 1 )
- ► Jan 20 - Jan 27 ( 1 )
-
►
2007
(
8
)
- ► Sep 23 - Sep 30 ( 1 )
- ► Jul 29 - Aug 5 ( 2 )
- ► Jun 17 - Jun 24 ( 1 )
- ► Apr 8 - Apr 15 ( 1 )
- ► Mar 18 - Mar 25 ( 2 )
- ► Mar 11 - Mar 18 ( 1 )
-
►
2006
(
10
)
- ► Dec 17 - Dec 24 ( 1 )
- ► Dec 3 - Dec 10 ( 1 )
- ► Nov 19 - Nov 26 ( 1 )
- ► Oct 15 - Oct 22 ( 1 )
- ► Sep 3 - Sep 10 ( 1 )
- ► Jul 30 - Aug 6 ( 1 )
- ► Jun 25 - Jul 2 ( 1 )
- ► Jun 18 - Jun 25 ( 1 )
- ► May 28 - Jun 4 ( 1 )
- ► Mar 26 - Apr 2 ( 1 )