Merge remote-tracking branch 'refs/remotes/eugenp/master'

This commit is contained in:
iaforek 2017-05-07 21:50:27 +01:00
commit 605c517736
92 changed files with 1460 additions and 908 deletions

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.baeldung</groupId>
<artifactId>apache-commons-math</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven-compiler-plugin.version>3.6.0</maven-compiler-plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,20 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.complex.Complex;
import org.junit.Assert;
import org.junit.Test;
public class ComplexTests {
@Test
public void whenComplexPow_thenCorrect() {
Complex first = new Complex(1.0, 3.0);
Complex second = new Complex(2.0, 5.0);
Complex power = first.pow(second);
Assert.assertEquals(-0.007563724861696302, power.getReal(), 1e-7);
Assert.assertEquals(0.01786136835085382, power.getImaginary(), 1e-7);
}
}

View File

@ -0,0 +1,20 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.fraction.Fraction;
import org.apache.commons.math3.fraction.FractionFormat;
import org.junit.Assert;
import org.junit.Test;
public class FractionTests {
@Test
public void whenFractionAdd_thenCorrect() {
Fraction lhs = new Fraction(1, 3);
Fraction rhs = new Fraction(2, 5);
Fraction sum = lhs.add(rhs);
Assert.assertEquals(11, sum.getNumerator());
Assert.assertEquals(15, sum.getDenominator());
}
}

View File

@ -0,0 +1,21 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.geometry.euclidean.twod.Line;
import org.apache.commons.math3.geometry.euclidean.twod.Vector2D;
import org.junit.Assert;
import org.junit.Test;
public class GeometryTests {
@Test
public void whenLineIntersection_thenCorrect() {
Line l1 = new Line(new Vector2D(0, 0), new Vector2D(1, 1), 0);
Line l2 = new Line(new Vector2D(0, 1), new Vector2D(1, 1.5), 0);
Vector2D intersection = l1.intersection(l2);
Assert.assertEquals(2, intersection.getX(), 1e-7);
Assert.assertEquals(2, intersection.getY(), 1e-7);
}
}

View File

@ -0,0 +1,21 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.integration.SimpsonIntegrator;
import org.apache.commons.math3.analysis.integration.UnivariateIntegrator;
import org.junit.Assert;
import org.junit.Test;
public class IntegrationTests {
@Test
public void whenUnivariateIntegratorIntegrate_thenCorrect() {
final UnivariateFunction function = v -> v;
final UnivariateIntegrator integrator = new SimpsonIntegrator(1.0e-12, 1.0e-8, 1, 32);
final double i = integrator.integrate(100, function, 0, 10);
Assert.assertEquals(16 + 2d/3d, i, 1e-7);
}
}

View File

@ -0,0 +1,25 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.linear.*;
import org.junit.Assert;
import org.junit.Test;
public class LinearAlgebraTests {
@Test
public void whenDecompositionSolverSolve_thenCorrect() {
RealMatrix a =
new Array2DRowRealMatrix(new double[][] { { 2, 3, -2 }, { -1, 7, 6 }, { 4, -3, -5 } },
false);
RealVector b = new ArrayRealVector(new double[] { 1, -2, 1 }, false);
DecompositionSolver solver = new LUDecomposition(a).getSolver();
RealVector solution = solver.solve(b);
Assert.assertEquals(-0.3698630137, solution.getEntry(0), 1e-7);
Assert.assertEquals(0.1780821918, solution.getEntry(1), 1e-7);
Assert.assertEquals(-0.602739726, solution.getEntry(2), 1e-7);
}
}

View File

@ -0,0 +1,15 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.distribution.NormalDistribution;
import org.junit.Test;
public class ProbabilitiesTests {
@Test
public void whenNormalDistributionSample_thenSuccess() {
final NormalDistribution normalDistribution = new NormalDistribution(10, 3);
System.out.println(normalDistribution.sample());
}
}

View File

@ -0,0 +1,20 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.solvers.BracketingNthOrderBrentSolver;
import org.apache.commons.math3.analysis.solvers.UnivariateSolver;
import org.junit.Assert;
import org.junit.Test;
public class RootFindingTests {
@Test
public void whenUnivariateSolverSolver_thenCorrect() {
final UnivariateFunction function = v -> Math.pow(v, 2) - 2;
UnivariateSolver solver = new BracketingNthOrderBrentSolver(1.0e-12, 1.0e-8, 5);
double c = solver.solve(100, function, -10.0, 10.0, 0);
Assert.assertEquals(-Math.sqrt(2), c, 1e-7);
}
}

View File

@ -0,0 +1,38 @@
package com.baeldung.commons.math;
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class StatisticsTests {
private double[] values;
private DescriptiveStatistics descriptiveStatistics;
@Before
public void setUp() {
values = new double[] {65, 51 , 16, 11 , 6519, 191 ,0 , 98, 19854, 1, 32};
descriptiveStatistics = new DescriptiveStatistics();
for(double v : values) {
descriptiveStatistics.addValue(v);
}
}
@Test
public void whenDescriptiveStatisticsGetMean_thenCorrect() {
Assert.assertEquals(2439.8181818181815, descriptiveStatistics.getMean(), 1e-7);
}
@Test
public void whenDescriptiveStatisticsGetMedian_thenCorrect() {
Assert.assertEquals(51, descriptiveStatistics.getPercentile(50), 1e-7);
}
@Test
public void whenDescriptiveStatisticsGetStandardDeviation_thenCorrect() {
Assert.assertEquals(6093.054649651221, descriptiveStatistics.getStandardDeviation(), 1e-7);
}
}

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,10 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<!-- <logger name="org.springframework" level="WARN" /> --> <logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,23 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder>
<layout class="ch.qos.logback.classic.PatternLayout"> <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<Pattern> <logger name="org.springframework" level="WARN" />
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n <logger name="org.springframework.transaction" level="WARN" />
</Pattern>
</layout> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
</appender> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="com.baeldung.apache.velocity.service" level="debug"
additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<root level="error">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -70,11 +70,6 @@
<artifactId>spring-aop</artifactId> <artifactId>spring-aop</artifactId>
<version>4.3.4.RELEASE</version> <version>4.3.4.RELEASE</version>
</dependency> </dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -1,10 +0,0 @@
log4j.rootLogger=TRACE, stdout
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.logger.org.springframework.aop.interceptor.PerformanceMonitorInterceptor=TRACE, stdout
log4j.logger.com.baeldung.performancemonitor.MyPerformanceMonitorInterceptor=INFO, stdout

View File

@ -1,18 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<layout class="ch.qos.logback.classic.PatternLayout"> <logger name="org.springframework.transaction" level="WARN" />
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg %n</pattern>
</layout>
</appender>
<logger name="com.baeldung.hazelcast" level="INFO" additivity="false"> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<appender-ref ref="STDOUT" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
</logger>
<root level="DEBUG"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,10 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<!-- <logger name="org.springframework" level="WARN" /> --> <logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -91,4 +91,4 @@
- [Avoiding ConcurrentModificationException when iterating and removing](http://www.baeldung.com/avoiding-concurrentmodificationexception-when-iterating-and-removing) - [Avoiding ConcurrentModificationException when iterating and removing](http://www.baeldung.com/avoiding-concurrentmodificationexception-when-iterating-and-removing)
- [Removing all nulls from a List in Java](http://www.baeldung.com/java-remove-nulls-from-list) - [Removing all nulls from a List in Java](http://www.baeldung.com/java-remove-nulls-from-list)
- [Removing all duplicates from a List in Java](http://www.baeldung.com/java-remove-duplicates-from-list) - [Removing all duplicates from a List in Java](http://www.baeldung.com/java-remove-duplicates-from-list)
- [An Introduction to ThreadLocal in Java](http://www.baeldung.com/java-threadlocal)

View File

@ -14,9 +14,9 @@ public class LogForgingDemo {
public static void main(String[] args) { public static void main(String[] args) {
LogForgingDemo demo = new LogForgingDemo(); LogForgingDemo demo = new LogForgingDemo();
demo.addLog(String.valueOf(300)); demo.addLog("300");
demo.addLog(String.valueOf(300 + "\n\nweb - 2017-04-12 17:47:08,957 [main] INFO Amount reversed successfully")); demo.addLog("300 \n\nweb - 2017-04-12 17:47:08,957 [main] INFO Amount reversed successfully");
demo.addLog(String.valueOf(encode(300 + "\n\nweb - 2017-04-12 17:47:08,957 [main] INFO Amount reversed successfully"))); demo.addLog(encode("300 \n\nweb - 2017-04-12 17:47:08,957 [main] INFO Amount reversed successfully"));
} }
public static String encode(String message) { public static String encode(String message) {

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,10 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<!-- <logger name="org.springframework" level="WARN" /> --> <logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -8,10 +8,12 @@
</appender> </appender>
<logger name="org.springframework" level="WARN" /> <logger name="org.springframework" level="WARN" />
<logger name="com.baeldung" level="DEBUG" /> <logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -8,10 +8,12 @@
</appender> </appender>
<logger name="org.springframework" level="WARN" /> <logger name="org.springframework" level="WARN" />
<logger name="com.baeldung" level="DEBUG" /> <logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,18 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<layout class="ch.qos.logback.classic.PatternLayout"> <logger name="org.springframework.transaction" level="WARN" />
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg %n</pattern>
</layout>
</appender>
<logger name="com.baeldung.hazelcast" level="INFO" additivity="false"> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<appender-ref ref="STDOUT" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
</logger>
<root level="DEBUG"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,11 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<logger name="org.apache.http" level="DEBUG" /> <logger name="org.springframework" level="WARN" />
<logger name="org.apache.http.wire" level="INFO" /> <logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,18 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<layout class="ch.qos.logback.classic.PatternLayout"> <logger name="org.springframework.transaction" level="WARN" />
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg %n</pattern>
</layout>
</appender>
<logger name="com.baeldung.hazelcast" level="INFO" additivity="false"> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<appender-ref ref="STDOUT" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
</logger>
<root level="DEBUG"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,8 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -0,0 +1,143 @@
package com.baeldung.kotlin
import org.junit.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class GenericsTest {
@Test
fun givenParametrizeClass_whenInitializeItWithSpecificType_thenShouldBeParameterized() {
//given
val parameterizedClass = ParameterizedClass<String>("string-value")
//when
val res = parameterizedClass.getValue()
//then
assertTrue(res is String)
}
@Test
fun givenParametrizeClass_whenInitializeIt_thenShouldBeParameterizedByInferredType() {
//given
val parameterizedClass = ParameterizedClass("string-value")
//when
val res = parameterizedClass.getValue()
//then
assertTrue(res is String)
}
@Test
fun givenParameterizedProducerByOutKeyword_whenGetValue_thenCanAssignItToSuperType() {
//given
val parameterizedProducer = ParameterizedProducer("string")
//when
val ref: ParameterizedProducer<Any> = parameterizedProducer
//then
assertTrue(ref is ParameterizedProducer<Any>)
}
@Test
fun givenParameterizedConsumerByInKeyword_whenGetValue_thenCanAssignItToSubType() {
//given
val parameterizedConsumer = ParameterizedConsumer<Number>()
//when
val ref: ParameterizedConsumer<Double> = parameterizedConsumer
//then
assertTrue(ref is ParameterizedConsumer<Double>)
}
@Test
fun givenTypeProjections_whenOperateOnTwoList_thenCanAcceptListOfSubtypes() {
//given
val ints: Array<Int> = arrayOf(1, 2, 3)
val any: Array<Any?> = arrayOfNulls(3)
//when
copy(ints, any)
//then
assertEquals(any[0], 1)
assertEquals(any[1], 2)
assertEquals(any[2], 3)
}
fun copy(from: Array<out Any>, to: Array<Any?>) {
assert(from.size == to.size)
for (i in from.indices)
to[i] = from[i]
}
@Test
fun givenTypeProjection_whenHaveArrayOfIn_thenShouldAddElementsOfSubtypesToIt() {
//given
val objects: Array<Any?> = arrayOfNulls(1)
//when
fill(objects, 1)
//then
assertEquals(objects[0], 1)
}
fun fill(dest: Array<in Int>, value: Int) {
dest[0] = value
}
@Test
fun givenStartProjection_whenPassAnyType_thenCompile() {
//given
val array = arrayOf(1,2,3)
//then
printArray(array)
}
fun printArray(array: Array<*>) {
array.forEach { println(it) }
}
@Test
fun givenFunctionWithDefinedGenericConstraints_whenCallWithProperType_thenCompile(){
//given
val listOfInts = listOf(5,2,3,4,1)
//when
val sorted = sort(listOfInts)
//then
assertEquals(sorted, listOf(1,2,3,4,5))
}
fun <T: Comparable<T>> sort(list: List<T>): List<T>{
return list.sorted()
}
class ParameterizedClass<A>(private val value: A) {
fun getValue(): A {
return value
}
}
class ParameterizedProducer<out T>(private val value: T) {
fun get(): T {
return value
}
}
class ParameterizedConsumer<in T> {
fun toString(value: T): String {
return value.toString()
}
}
}

View File

@ -5,7 +5,8 @@
- [String Processing with Apache Commons Lang 3](http://www.baeldung.com/string-processing-commons-lang) - [String Processing with Apache Commons Lang 3](http://www.baeldung.com/string-processing-commons-lang)
- [Introduction to Javatuples](http://www.baeldung.com/java-tuples) - [Introduction to Javatuples](http://www.baeldung.com/java-tuples)
- [Introduction to Javassist](http://www.baeldung.com/javassist) - [Introduction to Javassist](http://www.baeldung.com/javassist)
- [Embedded Jetty Server in Java](http://www.baeldung.com/jetty-embedded) - [Embedded Jetty Server in Java](http://www.baeldung.com/jetty-embedded)
- [Introduction to Apache Flink with Java](http://www.baeldung.com/apache-flink)
The libraries module contains examples related to small libraries that are relatively easy to use and does not require any separate module of its own. The libraries module contains examples related to small libraries that are relatively easy to use and does not require any separate module of its own.

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -4,21 +4,18 @@ import com.baeldung.mybatis.model.Address;
import com.baeldung.mybatis.model.Person; import com.baeldung.mybatis.model.Person;
import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.*;
public interface AddressMapper { public interface AddressMapper {
@Insert("Insert into address (streetAddress,personId) values(#{streetAddress},#{personId})") @Insert("Insert into address (streetAddress,personId) values(#{streetAddress},#{personId})")
@Options(useGeneratedKeys = true,flushCache=true ) @Options(useGeneratedKeys = true, flushCache = true)
public Integer saveAddress(Address address); public Integer saveAddress(Address address);
@Select("SELECT addressId, streetAddress FROM Address WHERE addressId = #{addressId}") @Select("SELECT addressId, streetAddress FROM Address WHERE addressId = #{addressId}")
@Results(value = { @Results(value = { @Result(property = "addressId", column = "addressId"),
@Result(property = "addressId", column = "addressId"), @Result(property = "streetAddress", column = "streetAddress"),
@Result(property = "streetAddress", column = "streetAddress"), @Result(property = "person", column = "personId", javaType = Person.class, one = @One(select = "getPerson")) })
@Result(property = "person", column = "personId",javaType =Person.class,one=@One(select = "getPerson")) Address getAddresses(Integer addressID);
})
Address getAddresses(Integer addressID);
@Select("SELECT personId FROM address WHERE addressId = #{addressId})") @Select("SELECT personId FROM address WHERE addressId = #{addressId})")
Person getPerson(Integer personId); Person getPerson(Integer personId);
} }

View File

@ -9,44 +9,39 @@ import org.apache.ibatis.mapping.StatementType;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public interface PersonMapper { public interface PersonMapper {
@Insert("Insert into person(name) values (#{name})") @Insert("Insert into person(name) values (#{name})")
public Integer save(Person person); public Integer save(Person person);
@Update("Update Person set name= #{name} where personId=#{personId}") @Update("Update Person set name= #{name} where personId=#{personId}")
public void updatePerson(Person person); public void updatePerson(Person person);
@Delete("Delete from Person where personId=#{personId}") @Delete("Delete from Person where personId=#{personId}")
public void deletePersonById(Integer personId); public void deletePersonById(Integer personId);
@Select("SELECT person.personId, person.name FROM person WHERE person.personId = #{personId}") @Select("SELECT person.personId, person.name FROM person WHERE person.personId = #{personId}")
Person getPerson(Integer personId); Person getPerson(Integer personId);
@Select("Select personId,name from Person where personId=#{personId}") @Select("Select personId,name from Person where personId=#{personId}")
@Results(value ={ @Results(value = { @Result(property = "personId", column = "personId"), @Result(property = "name", column = "name"),
@Result(property = "personId", column = "personId"), @Result(property = "addresses", javaType = List.class, column = "personId", many = @Many(select = "getAddresses"))
@Result(property="name", column = "name"),
@Result(property = "addresses",javaType = List.class,column = "personId",
many=@Many(select = "getAddresses"))
}) })
public Person getPersonById(Integer personId); public Person getPersonById(Integer personId);
@Select("select addressId,streetAddress,personId from address where personId=#{personId}") @Select("select addressId,streetAddress,personId from address where personId=#{personId}")
public Address getAddresses(Integer personId); public Address getAddresses(Integer personId);
@Select("select * from Person ") @Select("select * from Person ")
@MapKey("personId") @MapKey("personId")
Map<Integer,Person> getAllPerson(); Map<Integer, Person> getAllPerson();
@SelectProvider(type=MyBatisUtil.class,method="getPersonByName") @SelectProvider(type = MyBatisUtil.class, method = "getPersonByName")
public Person getPersonByName(String name); public Person getPersonByName(String name);
@Select(value = "{ CALL getPersonByProc( #{personId, mode=IN, jdbcType=INTEGER})}")
@Select(value= "{ CALL getPersonByProc( #{personId, mode=IN, jdbcType=INTEGER})}") @Options(statementType = StatementType.CALLABLE)
@Options(statementType = StatementType.CALLABLE) public Person getPersonByProc(Integer personId);
public Person getPersonByProc(Integer personId);
} }

View File

@ -1,49 +1,46 @@
package com.baeldung.mybatis.model; package com.baeldung.mybatis.model;
public class Address { public class Address {
private Integer addressId; private Integer addressId;
private String streetAddress; private String streetAddress;
private Integer personId; private Integer personId;
public Address() { public Address() {
} }
public Integer getPersonId() { public Integer getPersonId() {
return personId; return personId;
} }
public void setPersonId(Integer personId) { public void setPersonId(Integer personId) {
this.personId = personId; this.personId = personId;
} }
public Address(String streetAddress) {
this.streetAddress = streetAddress;
}
public Person getPerson() {
return person;
}
public Address(String streetAddress) { public void setPerson(Person person) {
this.streetAddress =streetAddress; this.person = person;
} }
public Person getPerson() { private Person person;
return person;
}
public void setPerson(Person person) { public Address(int i, String name) {
this.person = person; this.streetAddress = name;
} }
private Person person; public Integer getAddressId() {
return addressId;
}
public Address(int i, String name) { public String getStreetAddress() {
this.streetAddress = name; return streetAddress;
} }
public Integer getAddressId() {
return addressId;
}
public String getStreetAddress() {
return streetAddress;
}
} }

View File

@ -3,38 +3,38 @@ package com.baeldung.mybatis.model;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class Person { public class Person {
private Integer personId; private Integer personId;
private String name; private String name;
private List<Address> addresses; private List<Address> addresses;
public Person() { public Person() {
} }
public Person(Integer personId, String name) { public Person(Integer personId, String name) {
this.personId=personId; this.personId = personId;
this.name = name; this.name = name;
addresses = new ArrayList<Address>(); addresses = new ArrayList<Address>();
} }
public Person(String name) { public Person(String name) {
this.name=name; this.name = name;
} }
public Integer getPersonId() { public Integer getPersonId() {
return personId; return personId;
} }
public String getName() { public String getName() {
return name; return name;
} }
public void addAddress(Address address){
addresses.add(address);
}
public List<Address> getAddresses() { public void addAddress(Address address) {
return addresses; addresses.add(address);
} }
public List<Address> getAddresses() {
return addresses;
}
} }

View File

@ -1,33 +1,50 @@
package com.baeldung.mybatis.utils; package com.baeldung.mybatis.utils;
import com.baeldung.mybatis.mapper.AddressMapper;
import com.baeldung.mybatis.mapper.PersonMapper;
import org.apache.ibatis.datasource.pooled.PooledDataSource;
import org.apache.ibatis.io.Resources; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.jdbc.SQL; import org.apache.ibatis.jdbc.SQL;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import javax.sql.DataSource;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
public class MyBatisUtil { public class MyBatisUtil {
private static SqlSessionFactory sqlSessionFactory; public static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
static { public static final String URL = "jdbc:derby:testdb1;create=true";
String resource = "mybatis-config.xml"; public static final String USERNAME = "sa";
InputStream inputStream; public static final String PASSWORD = "pass123";
try { private static SqlSessionFactory sqlSessionFactory;
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
public String getPersonByName(String name){ public static SqlSessionFactory buildqlSessionFactory() {
return new SQL(){{ DataSource dataSource = new PooledDataSource(DRIVER, URL, USERNAME, PASSWORD);
SELECT("*"); Environment environment = new Environment("Development", new JdbcTransactionFactory(), dataSource);
FROM("person"); Configuration configuration = new Configuration(environment);
WHERE("name like #{name} || '%'"); configuration.addMapper(PersonMapper.class);
}}.toString(); configuration.addMapper(AddressMapper.class);
} SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(configuration);
return factory;
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
public String getPersonByName(String name) {
return new SQL() {
{
SELECT("*");
FROM("person");
WHERE("name like #{name} || '%'");
}
}.toString();
}
} }

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="url" value="jdbc:derby:testdb1;create=true"/>
<property name="username" value="sa"/>
<property name="password" value="pass123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="com.baeldung.mybatis.mapper.PersonMapper"/>
<mapper class="com.baeldung.mybatis.mapper.AddressMapper"/>
</mappers>
</configuration>

View File

@ -18,132 +18,128 @@ import static junit.framework.TestCase.assertEquals;
public class PersonMapperTest { public class PersonMapperTest {
SqlSession session; SqlSession session;
@Before @Before
public void setup() throws SQLException { public void setup() throws SQLException {
session = MyBatisUtil.getSqlSessionFactory().openSession(); session = MyBatisUtil.buildqlSessionFactory().openSession();
createTables(session); createTables(session);
} }
private void createTables(SqlSession session) throws SQLException { private void createTables(SqlSession session) throws SQLException {
String createPersonTable = "create table person (" String createPersonTable = "create table person (" + "personId integer not null generated always as"
+ "personId integer not null generated always as" + " identity (start with 1, increment by 1), " + "name varchar(30) not null, "
+ " identity (start with 1, increment by 1), " + "constraint primary_key_person primary key (personId))";
+ "name varchar(30) not null, "
+ "constraint primary_key_person primary key (personId))";
String createAddressTable = "create table address (" String createAddressTable = "create table address (" + "addressId integer not null generated always as"
+ "addressId integer not null generated always as" + " identity (start with 1, increment by 1), " + "streetAddress varchar(300), personId integer, "
+ " identity (start with 1, increment by 1), " + "constraint primary_key_address primary key (addressId))";
+ "streetAddress varchar(300), personId integer, "
+ "constraint primary_key_address primary key (addressId))";
String alterTable="ALTER TABLE " + String alterTable = "ALTER TABLE "
" address ADD CONSTRAINT fk_person FOREIGN KEY (personId) REFERENCES person (personId)"; + " address ADD CONSTRAINT fk_person FOREIGN KEY (personId) REFERENCES person (personId)";
session.getConnection().createStatement().execute(createPersonTable);
session.getConnection().createStatement().execute(createAddressTable);
session.getConnection().createStatement().execute(alterTable);
session.getConnection().createStatement().execute(createPersonTable); }
session.getConnection().createStatement().execute(createAddressTable);
session.getConnection().createStatement().execute(alterTable);
} @Test
public void whenPersonAdressSaved_ThenPersonAddressCanBeQueried() {
Person person = new Person("Baljeet S");
Address address = new Address("Pune");
PersonMapper personMapper = session.getMapper(PersonMapper.class);
Integer id = personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper = session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
@Test Person returnedPerson = personMapper.getPersonById(id);
public void whenPersonAdressSaved_ThenPersonAddressCanBeQueried(){ assertEquals("Baljeet S", returnedPerson.getName());
Person person=new Person("Baljeet S"); assertEquals("Pune", returnedPerson.getAddresses().get(0).getStreetAddress());
Address address = new Address("Pune"); }
PersonMapper personMapper=session.getMapper(PersonMapper.class);
Integer id =personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper=session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
Person returnedPerson= personMapper.getPersonById(id); @Test
assertEquals("Baljeet S", returnedPerson.getName()); public void whenPersonSaved_ThenPersonCanBeQueried() {
assertEquals("Pune", returnedPerson.getAddresses().get(0).getStreetAddress()); Person person = new Person("Baljeet S");
} Address address = new Address("Pune");
PersonMapper personMapper = session.getMapper(PersonMapper.class);
Integer id = personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper = session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
@Test Person returnedPerson = personMapper.getPerson(id);
public void whenPersonSaved_ThenPersonCanBeQueried(){ assertEquals("Baljeet S", returnedPerson.getName());
Person person=new Person("Baljeet S"); }
Address address = new Address("Pune");
PersonMapper personMapper=session.getMapper(PersonMapper.class);
Integer id =personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper=session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
Person returnedPerson= personMapper.getPerson(id); @Test
assertEquals("Baljeet S", returnedPerson.getName()); public void whenPersonUpdated_ThenPersonIsChanged() {
} Person person = new Person("Baljeet S");
Address address = new Address("Pune");
PersonMapper personMapper = session.getMapper(PersonMapper.class);
Integer id = personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper = session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
@Test personMapper.updatePerson(new Person(id, "Baljeet1"));
public void whenPersonUpdated_ThenPersonIsChanged(){ Person returnedPerson = personMapper.getPerson(id);
Person person=new Person("Baljeet S"); assertEquals("Baljeet1", returnedPerson.getName());
Address address = new Address("Pune"); }
PersonMapper personMapper=session.getMapper(PersonMapper.class);
Integer id =personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper=session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
personMapper.updatePerson(new Person(id,"Baljeet1")); @Test
Person returnedPerson= personMapper.getPerson(id); public void whenPersoSaved_ThenMapIsReturned() {
assertEquals("Baljeet1", returnedPerson.getName()); Person person = new Person("Baljeet S");
} Address address = new Address("Pune");
@Test PersonMapper personMapper = session.getMapper(PersonMapper.class);
public void whenPersoSaved_ThenMapIsReturned(){ Integer id = personMapper.save(person);
Person person=new Person("Baljeet S"); address.setPersonId(id);
Address address = new Address("Pune"); AddressMapper addressMapper = session.getMapper(AddressMapper.class);
PersonMapper personMapper=session.getMapper(PersonMapper.class); addressMapper.saveAddress(address);
Integer id =personMapper.save(person);
address.setPersonId(id);
AddressMapper addressMapper=session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address);
Map<Integer, Person> returnedPerson= personMapper.getAllPerson(); Map<Integer, Person> returnedPerson = personMapper.getAllPerson();
assertEquals(1, returnedPerson.size()); assertEquals(1, returnedPerson.size());
} }
@Test @Test
public void whenPersonSearched_ThenResultIsReturned(){ public void whenPersonSearched_ThenResultIsReturned() {
Person person=new Person("Baljeet S"); Person person = new Person("Baljeet S");
Address address = new Address("Pune"); Address address = new Address("Pune");
PersonMapper personMapper=session.getMapper(PersonMapper.class); PersonMapper personMapper = session.getMapper(PersonMapper.class);
Integer id =personMapper.save(person); Integer id = personMapper.save(person);
address.setPersonId(id); address.setPersonId(id);
AddressMapper addressMapper=session.getMapper(AddressMapper.class); AddressMapper addressMapper = session.getMapper(AddressMapper.class);
addressMapper.saveAddress(address); addressMapper.saveAddress(address);
Person returnedPerson= personMapper.getPersonByName("Baljeet S"); Person returnedPerson = personMapper.getPersonByName("Baljeet S");
assertEquals("Baljeet S", returnedPerson.getName()); assertEquals("Baljeet S", returnedPerson.getName());
} }
@Test @Test
public void whenAddressSearched_ThenResultIsReturned(){ public void whenAddressSearched_ThenResultIsReturned() {
Person person=new Person("Baljeet S"); Person person = new Person("Baljeet S");
Address address = new Address("Pune"); Address address = new Address("Pune");
PersonMapper personMapper=session.getMapper(PersonMapper.class); PersonMapper personMapper = session.getMapper(PersonMapper.class);
Integer id =personMapper.save(person); Integer id = personMapper.save(person);
address.setPersonId(id); address.setPersonId(id);
AddressMapper addressMapper=session.getMapper(AddressMapper.class); AddressMapper addressMapper = session.getMapper(AddressMapper.class);
Integer addressId=addressMapper.saveAddress(address); Integer addressId = addressMapper.saveAddress(address);
Address returnedAddress=addressMapper.getAddresses(addressId); Address returnedAddress = addressMapper.getAddresses(addressId);
assertEquals("Pune", returnedAddress.getStreetAddress()); assertEquals("Pune", returnedAddress.getStreetAddress());
} }
@After @After
public void cleanup() throws SQLException { public void cleanup() throws SQLException {
session.getConnection().createStatement().execute("drop table address"); session.getConnection().createStatement().execute("drop table address");
session.getConnection().createStatement().execute("drop table person"); session.getConnection().createStatement().execute("drop table person");
session.close(); session.close();
} }
} }

View File

@ -1,37 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout"> <encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p: %c - %m%n</Pattern> <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</layout> </pattern>
</encoder>
</appender> </appender>
<!-- Application Loggers --> <logger name="org.springframework" level="WARN" />
<logger name="de.slackspace.tutorials"> <logger name="org.springframework.transaction" level="WARN" />
<level value="debug" />
</logger>
<!-- Spring Loggers --> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.core"> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<level value="info" />
</logger>
<logger name="org.springframework.beans"> <root level="INFO">
<level value="info" /> <appender-ref ref="STDOUT" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<!-- Hibernate Loggers -->
<logger name="org.hibernate">
<level value="warn" />
</logger>
<root level="warn">
<appender-ref ref="STDOUT"/>
</root> </root>
</configuration> </configuration>

View File

@ -60,14 +60,15 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>log4j</groupId> <groupId>ch.qos.logback</groupId>
<artifactId>log4j</artifactId> <artifactId>logback-classic</artifactId>
<version>${log4j.version}</version> <version>${logback.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>ch.qos.logback</groupId>
<artifactId>slf4j-log4j12</artifactId> <artifactId>logback-core</artifactId>
<version>${slf4j.version}</version> <version>${logback.version}</version>
</dependency> </dependency>
<dependency> <dependency>
@ -276,8 +277,9 @@
<javax.mail.version>1.4.7</javax.mail.version> <javax.mail.version>1.4.7</javax.mail.version>
<jetty.version>9.4.0.v20161208</jetty.version> <jetty.version>9.4.0.v20161208</jetty.version>
<log4j.version>1.2.17</log4j.version>
<slf4j.version>1.7.21</slf4j.version> <slf4j.version>1.7.21</slf4j.version>
<logback.version>1.1.7</logback.version>
<commons-lang3.version>3.5</commons-lang3.version> <commons-lang3.version>3.5</commons-lang3.version>
<commons-logging.version>1.2</commons-logging.version> <commons-logging.version>1.2</commons-logging.version>

View File

@ -1,16 +0,0 @@
## Logger configure
datestamp=yyyy-MM-dd HH:mm:ss
log4j.rootLogger=TRACE, file, console
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=1GB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=log/rest-assured.log
log4j.appender.file.threshold=TRACE
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: [%c] - %m%n
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p\: [%c] - %m%n

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,11 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<logger name="org.apache.http" level="DEBUG" /> <logger name="org.springframework" level="WARN" />
<logger name="org.apache.http.wire" level="INFO" /> <logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,3 +1,19 @@
<configuration scan="true" scanPeriod="10 seconds"> <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,3 +1,19 @@
<configuration scan="true" scanPeriod="10 seconds"> <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework.core.io.support" level="INFO" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,14 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<root level="INFO"> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<appender-ref ref="STDOUT" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -6,8 +6,7 @@
package com.baeldung.spring.cloud.greeting; package com.baeldung.spring.cloud.greeting;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@ -16,8 +15,7 @@ public class GreetingController {
@Autowired @Autowired
private HelloWorldClient helloWorldClient; private HelloWorldClient helloWorldClient;
@RequestMapping(value = "/get-greeting", method = RequestMethod.GET) @GetMapping("/get-greeting")
public String greeting() { public String greeting() {
return helloWorldClient.HelloWorld(); return helloWorldClient.HelloWorld();

View File

@ -5,14 +5,13 @@
*/ */
package com.baeldung.spring.cloud.helloworld; package com.baeldung.spring.cloud.helloworld;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
public class HelloWorldController { public class HelloWorldController {
@RequestMapping(path = "/helloworld", method = RequestMethod.GET) @GetMapping("/helloworld")
public String HelloWorld() { public String HelloWorld() {
return "Hello World!"; return "Hello World!";
} }

View File

@ -1,14 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<root level="INFO"> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<appender-ref ref="STDOUT" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -16,5 +16,4 @@
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -8,10 +8,12 @@
</appender> </appender>
<logger name="org.springframework" level="WARN" /> <logger name="org.springframework" level="WARN" />
<logger name="org.baeldung" level="DEBUG" /> <logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -8,10 +8,12 @@
</appender> </appender>
<logger name="org.springframework" level="WARN" /> <logger name="org.springframework" level="WARN" />
<logger name="org.baeldung" level="DEBUG" /> <logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,14 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
<root level="INFO"> <logger name="org.springframework" level="WARN" />
<appender-ref ref="STDOUT" /> <logger name="org.springframework.transaction" level="WARN" />
</root>
</configuration> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>elasticsearch - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
<logger name="org.springframework" level="WARN" /> <logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some elastic issues, this needs to be DEBUG or INFO --> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.elasticsearch" level="INFO" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="com.baeldung.spring" level="DEBUG" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -16,5 +16,4 @@
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -16,5 +16,4 @@
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,16 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>%d %5p %40.40c:%4L - %m%n</pattern> <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder> </encoder>
</appender> </appender>
<logger name="org.neo4j.ogm" level="info"/> <logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<root level="warn"> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<appender-ref ref="console"/> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root> </root>
</configuration>
</configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -16,5 +16,4 @@
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework.core.io.support" level="INFO" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.hibernate" level="INFO" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.hibernate" level="INFO" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,15 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
%message%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,15 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
%message%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>
%date [%thread] %-5level %logger{6} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,16 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>%date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -188,6 +188,12 @@
<artifactId>kryo</artifactId> <artifactId>kryo</artifactId>
<version>${kryo.version}</version> <version>${kryo.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -358,7 +364,8 @@
<!-- okhttp --> <!-- okhttp -->
<com.squareup.okhttp3.version>3.4.1</com.squareup.okhttp3.version> <com.squareup.okhttp3.version>3.4.1</com.squareup.okhttp3.version>
<json.path.version>2.2.0</json.path.version>
</properties> </properties>
</project> </project>

View File

@ -0,0 +1,55 @@
package org.baeldung.web.controller;
import java.util.Arrays;
import java.util.List;
import org.baeldung.web.dto.Bazz;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.core.JsonProcessingException;
@RestController
@RequestMapping("/bazz")
public class BazzNewMappingsExampleController {
@GetMapping
public ResponseEntity<?> getBazzs() throws JsonProcessingException{
List<Bazz> data = Arrays.asList(
new Bazz("1", "Bazz1"),
new Bazz("2", "Bazz2"),
new Bazz("3", "Bazz3"),
new Bazz("4", "Bazz4"));
return new ResponseEntity<>(data, HttpStatus.OK);
}
@GetMapping("/{id}")
public ResponseEntity<?> getBazz(@PathVariable String id){
return new ResponseEntity<>(new Bazz(id, "Bazz"+id), HttpStatus.OK);
}
@PostMapping
public ResponseEntity<?> newBazz(@RequestParam("name") String name){
return new ResponseEntity<>(new Bazz("5", name), HttpStatus.OK);
}
@PutMapping("/{id}")
public ResponseEntity<?> updateBazz(@PathVariable String id,
@RequestParam("name") String name){
return new ResponseEntity<>(new Bazz(id, name), HttpStatus.OK);
}
@DeleteMapping("/{id}")
public ResponseEntity<?> deleteBazz(@PathVariable String id){
return new ResponseEntity<>(new Bazz(id), HttpStatus.OK);
}
}

View File

@ -0,0 +1,22 @@
package org.baeldung.web.dto;
public class Bazz {
public String id;
public String name;
public Bazz(String id){
this.id = id;
}
public Bazz(String id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Bazz [id=" + id + ", name=" + name + "]";
}
}

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -0,0 +1,80 @@
package org.baeldung.web.test;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.baeldung.config.WebConfig;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = WebConfig.class)
@WebAppConfiguration
public class BazzNewMappingsExampleControllerTest {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void whenGettingAllBazz_thenSuccess() throws Exception{
mockMvc.perform(get("/bazz"))
.andExpect(status().isOk())
.andExpect(jsonPath("$", hasSize(4)))
.andExpect(jsonPath("$[1].id", is("2")))
.andExpect(jsonPath("$[1].name", is("Bazz2")));
}
@Test
public void whenGettingABazz_thenSuccess() throws Exception{
mockMvc.perform(get("/bazz/1"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id", is("1")))
.andExpect(jsonPath("$.name", is("Bazz1")));
}
@Test
public void whenAddingABazz_thenSuccess() throws Exception{
mockMvc.perform(post("/bazz").param("name", "Bazz5"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id", is("5")))
.andExpect(jsonPath("$.name", is("Bazz5")));
}
@Test
public void whenUpdatingABazz_thenSuccess() throws Exception{
mockMvc.perform(put("/bazz/5").param("name", "Bazz6"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id", is("5")))
.andExpect(jsonPath("$.name", is("Bazz6")));
}
@Test
public void whenDeletingABazz_thenSuccess() throws Exception{
mockMvc.perform(delete("/bazz/5"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id", is("5")));
}
}

View File

@ -24,7 +24,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override @Override
protected void configure(final AuthenticationManagerBuilder auth) throws Exception { protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService); auth.authenticationProvider(authenticationProvider());
} }
@Override @Override

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework.boot" level="WARN" />
<logger name="org.springframework.security" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.apache.http" level="TRACE" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.apache.http" level="TRACE" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <logger name="org.springframework" level="WARN" />
<encoder> <logger name="org.springframework.transaction" level="WARN" />
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" /> <!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.transaction" level="WARN" /> <logger name="org.springframework.web.servlet.mvc" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,8 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n <pattern>web - %date [%thread] %-5level %logger{36} - %message%n
@ -7,8 +7,13 @@
</encoder> </encoder>
</appender> </appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>

View File

@ -27,10 +27,23 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>log4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>log4j</artifactId> <artifactId>slf4j-api</artifactId>
<version>${log4j.version}</version> <version>${org.slf4j.version}</version>
</dependency> </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -51,7 +64,9 @@
<xstream.version>1.4.9</xstream.version> <xstream.version>1.4.9</xstream.version>
<jettison.version>1.3.8</jettison.version> <jettison.version>1.3.8</jettison.version>
<log4j.version>1.2.17</log4j.version> <org.slf4j.version>1.7.21</org.slf4j.version>
<logback.version>1.1.7</logback.version>
<!-- testing --> <!-- testing -->
<junit.version>4.12</junit.version> <junit.version>4.12</junit.version>

View File

@ -1,14 +0,0 @@
# Root logger option
log4j.rootLogger=DEBUG, file
# Redirect log messages to console
# log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# log4j.appender.stdout.Target=System.out
# log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\Test\\xstream-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.transaction" level="WARN" />
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>