From f54c2fcae445a7b9d7e57293811339b37b4941ef Mon Sep 17 00:00:00 2001 From: DOHA Date: Sun, 6 Dec 2015 13:01:52 +0200 Subject: [PATCH 1/2] caching java config --- ....eclipse.wst.common.project.facet.core.xml | 2 +- .../caching/config/CachingConfig.java | 29 +++++++++++++++++++ .../baeldung/caching/config/MyAppConfig.java | 10 ------- .../caching/example/CustomerDataService.java | 8 ++++- spring-all/src/main/resources/config.xml | 6 ++-- .../test/SpringCachingBehaviorTest.java | 14 +++++---- 6 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/caching/config/CachingConfig.java delete mode 100644 spring-all/src/main/java/org/baeldung/caching/config/MyAppConfig.java diff --git a/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml index 9ca0d1c1b7..991897a4ac 100644 --- a/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,6 +1,6 @@ - + diff --git a/spring-all/src/main/java/org/baeldung/caching/config/CachingConfig.java b/spring-all/src/main/java/org/baeldung/caching/config/CachingConfig.java new file mode 100644 index 0000000000..4153ec9636 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/caching/config/CachingConfig.java @@ -0,0 +1,29 @@ +package org.baeldung.caching.config; + +import java.util.Arrays; + +import org.baeldung.caching.example.CustomerDataService; +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.concurrent.ConcurrentMapCache; +import org.springframework.cache.support.SimpleCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class CachingConfig { + + @Bean + public CustomerDataService customerDataService() { + return new CustomerDataService(); + } + + @Bean + public CacheManager cacheManager() { + final SimpleCacheManager cacheManager = new SimpleCacheManager(); + cacheManager.setCaches(Arrays.asList(new ConcurrentMapCache("directory"), new ConcurrentMapCache("addresses"))); + return cacheManager; + } + +} diff --git a/spring-all/src/main/java/org/baeldung/caching/config/MyAppConfig.java b/spring-all/src/main/java/org/baeldung/caching/config/MyAppConfig.java deleted file mode 100644 index 467e50c15e..0000000000 --- a/spring-all/src/main/java/org/baeldung/caching/config/MyAppConfig.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.baeldung.caching.config; - -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.annotation.Configuration; - -@Configuration -@EnableCaching -public class MyAppConfig { - // Your configuration code goes here. -} diff --git a/spring-all/src/main/java/org/baeldung/caching/example/CustomerDataService.java b/spring-all/src/main/java/org/baeldung/caching/example/CustomerDataService.java index 86026de93a..fe4de5d282 100644 --- a/spring-all/src/main/java/org/baeldung/caching/example/CustomerDataService.java +++ b/spring-all/src/main/java/org/baeldung/caching/example/CustomerDataService.java @@ -10,12 +10,18 @@ import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Component; @Component -@CacheConfig(cacheNames = { "addressDemo" }) +@CacheConfig(cacheNames = { "addresses" }) public class CustomerDataService { @Autowired CacheManager cacheManager; + // this method configuration is equivalent to xml configuration + @Cacheable(value = "addresses", key = "#customer.name") + public String getAddress(final Customer customer) { + return customer.getAddress(); + } + /** * The method returns the customer's address, only it doesn't find it the cache- addresses and directory. diff --git a/spring-all/src/main/resources/config.xml b/spring-all/src/main/resources/config.xml index 244e9027ec..23458539b0 100644 --- a/spring-all/src/main/resources/config.xml +++ b/spring-all/src/main/resources/config.xml @@ -10,8 +10,7 @@ - - + @@ -21,7 +20,6 @@ - @@ -34,7 +32,7 @@ - + diff --git a/spring-all/src/test/java/org/baeldung/caching/test/SpringCachingBehaviorTest.java b/spring-all/src/test/java/org/baeldung/caching/test/SpringCachingBehaviorTest.java index 0b3edaffb3..a4a3733dd8 100644 --- a/spring-all/src/test/java/org/baeldung/caching/test/SpringCachingBehaviorTest.java +++ b/spring-all/src/test/java/org/baeldung/caching/test/SpringCachingBehaviorTest.java @@ -1,11 +1,11 @@ package org.baeldung.caching.test; +import org.baeldung.caching.config.CachingConfig; import org.baeldung.caching.example.Customer; import org.baeldung.caching.example.CustomerDataService; import org.junit.Test; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Component; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; @Component public class SpringCachingBehaviorTest { @@ -13,12 +13,16 @@ public class SpringCachingBehaviorTest { @Test public void testCaching() { @SuppressWarnings("resource") - final ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); + final + // final ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + context.register(CachingConfig.class); + context.refresh(); final CustomerDataService service = context.getBean(CustomerDataService.class); final Customer cust = new Customer("Tom", "67-2, Downing Street, NY"); - service.getAddress1(cust); - service.getAddress1(cust); + service.getAddress(cust); + service.getAddress(cust); // fail("Unable to instantiate the CustomerDataService"); } From b470c21842205f08f3bcad7541d6a763070a1daf Mon Sep 17 00:00:00 2001 From: DOHA Date: Mon, 7 Dec 2015 12:03:39 +0200 Subject: [PATCH 2/2] upgrade httpClient --- .../ClientPreemptiveDigestAuthentication.java | 17 +++++++++++------ ...nentsClientHttpRequestFactoryDigestAuth.java | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/ClientPreemptiveDigestAuthentication.java b/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/ClientPreemptiveDigestAuthentication.java index 5887d2dcab..de94a6e393 100644 --- a/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/ClientPreemptiveDigestAuthentication.java +++ b/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/ClientPreemptiveDigestAuthentication.java @@ -6,11 +6,14 @@ import org.apache.http.HttpResponse; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.AuthCache; +import org.apache.http.client.CredentialsProvider; import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.protocol.ClientContext; +import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.impl.auth.DigestScheme; import org.apache.http.impl.client.BasicAuthCache; -import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.util.EntityUtils; @@ -27,9 +30,11 @@ public class ClientPreemptiveDigestAuthentication { public static void main(final String[] args) throws Exception { final HttpHost targetHost = new HttpHost("localhost", 8080, "http"); - final DefaultHttpClient httpclient = new DefaultHttpClient(); + final CredentialsProvider credsProvider = new BasicCredentialsProvider(); + credsProvider.setCredentials(new AuthScope(targetHost.getHostName(), targetHost.getPort()), new UsernamePasswordCredentials("user1", "user1Pass")); + + final CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build(); try { - httpclient.getCredentialsProvider().setCredentials(new AuthScope(targetHost.getHostName(), targetHost.getPort()), new UsernamePasswordCredentials("user1", "user1Pass")); // Create AuthCache instance final AuthCache authCache = new BasicAuthCache(); @@ -43,7 +48,7 @@ public class ClientPreemptiveDigestAuthentication { // Add AuthCache to the execution context final BasicHttpContext localcontext = new BasicHttpContext(); - localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache); + localcontext.setAttribute(HttpClientContext.AUTH_CACHE, authCache); final HttpGet httpget = new HttpGet("http://localhost:8080/spring-security-rest-digest-auth/api/foos/1"); @@ -63,7 +68,7 @@ public class ClientPreemptiveDigestAuthentication { } } finally { // When HttpClient instance is no longer needed, shut down the connection manager to ensure immediate deallocation of all system resources - httpclient.getConnectionManager().shutdown(); + httpclient.close(); } } diff --git a/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java b/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java index 698ab4cb92..49487da545 100644 --- a/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java +++ b/spring-security-rest-digest-auth/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java @@ -5,7 +5,7 @@ import java.net.URI; import org.apache.http.HttpHost; import org.apache.http.client.AuthCache; import org.apache.http.client.HttpClient; -import org.apache.http.client.protocol.ClientContext; +import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.impl.auth.DigestScheme; import org.apache.http.impl.client.BasicAuthCache; import org.apache.http.protocol.BasicHttpContext; @@ -41,7 +41,7 @@ public class HttpComponentsClientHttpRequestFactoryDigestAuth extends HttpCompon // Add AuthCache to the execution context final BasicHttpContext localcontext = new BasicHttpContext(); - localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache); + localcontext.setAttribute(HttpClientContext.AUTH_CACHE, authCache); return localcontext; }