formatting changes

This commit is contained in:
mujah 2016-11-13 23:40:17 +08:00
parent 8ccfd201e6
commit 046b23685e
5 changed files with 150 additions and 151 deletions

View File

@ -1,55 +1,55 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.baeldung</groupId> <groupId>com.baeldung</groupId>
<artifactId>spring-data-solr</artifactId> <artifactId>spring-data-solr</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>spring-data-solr</name> <name>spring-data-solr</name>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.2.5.RELEASE</spring.version> <spring.version>4.2.5.RELEASE</spring.version>
<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
<spring-data-solr>2.0.4.RELEASE</spring-data-solr> <spring-data-solr>2.0.4.RELEASE</spring-data-solr>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId> <artifactId>spring-core</artifactId>
<version>${spring.version}</version> <version>${spring.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.data</groupId> <groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId> <artifactId>spring-data-solr</artifactId>
<version>${spring-data-solr}</version> <version>${spring-data-solr}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId> <artifactId>spring-context</artifactId>
<version>${spring.version}</version> <version>${spring.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>log4j</groupId> <groupId>log4j</groupId>
<artifactId>log4j</artifactId> <artifactId>log4j</artifactId>
<version>1.2.16</version> <version>1.2.16</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.12</version> <version>4.12</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId> <artifactId>spring-test</artifactId>
<version>${spring.version}</version> <version>${spring.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>

View File

@ -13,13 +13,13 @@ import org.springframework.data.solr.repository.config.EnableSolrRepositories;
@ComponentScan @ComponentScan
public class SolrConfig { public class SolrConfig {
@Bean @Bean
public SolrClient solrClient() { public SolrClient solrClient() {
return new HttpSolrClient("http://localhost:8983/solr"); return new HttpSolrClient("http://localhost:8983/solr");
} }
@Bean @Bean
public SolrTemplate solrTemplate(SolrClient client) throws Exception { public SolrTemplate solrTemplate(SolrClient client) throws Exception {
return new SolrTemplate(client); return new SolrTemplate(client);
} }
} }

View File

@ -6,29 +6,28 @@ import org.springframework.data.solr.core.mapping.SolrDocument;
@SolrDocument(solrCoreName = "product") @SolrDocument(solrCoreName = "product")
public class Product { public class Product {
@Id @Id
@Indexed(name = "id", type = "string") @Indexed(name = "id", type = "string")
private String id; private String id;
@Indexed(name = "name", type = "string") @Indexed(name = "name", type = "string")
private String name; private String name;
public String getId() { public String getId() {
return id; return id;
} }
public void setId(String id) { public void setId(String id) {
this.id = id; this.id = id;
} }
public String getName() { public String getName() {
return name; return name;
} }
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
} }

View File

@ -11,12 +11,12 @@ import com.baeldung.spring.data.solr.model.Product;
public interface ProductRepository extends SolrCrudRepository<Product, String> { public interface ProductRepository extends SolrCrudRepository<Product, String> {
public List<Product> findByName(String name); public List<Product> findByName(String name);
@Query("id:*?0* OR name:*?0*") @Query("id:*?0* OR name:*?0*")
public Page<Product> findByCustomQuery(String searchTerm, Pageable pageable); public Page<Product> findByCustomQuery(String searchTerm, Pageable pageable);
@Query(name = "Product.findByNamedQuery") @Query(name = "Product.findByNamedQuery")
public Page<Product> findByNamedQuery(String searchTerm, Pageable pageable); public Page<Product> findByNamedQuery(String searchTerm, Pageable pageable);
} }

View File

@ -22,104 +22,104 @@ import com.baeldung.spring.data.solr.repository.ProductRepository;
@ContextConfiguration(classes = SolrConfig.class) @ContextConfiguration(classes = SolrConfig.class)
public class ProductRepositoryIntegrationTest { public class ProductRepositoryIntegrationTest {
@Autowired @Autowired
private ProductRepository productRepository; private ProductRepository productRepository;
@Before @Before
public void clearSolrData() { public void clearSolrData() {
productRepository.deleteAll(); productRepository.deleteAll();
} }
@Test @Test
public void whenSavingProduct_thenAvailableOnRetrieval() throws Exception { public void whenSavingProduct_thenAvailableOnRetrieval() throws Exception {
final Product product = new Product(); final Product product = new Product();
product.setId("P000089998"); product.setId("P000089998");
product.setName("Desk"); product.setName("Desk");
productRepository.save(product); productRepository.save(product);
final Product retrievedProduct = productRepository.findOne(product.getId()); final Product retrievedProduct = productRepository.findOne(product.getId());
assertEquals(product.getId(), retrievedProduct.getId()); assertEquals(product.getId(), retrievedProduct.getId());
} }
@Test @Test
public void whenUpdatingProduct_thenChangeAvailableOnRetrieval() throws Exception { public void whenUpdatingProduct_thenChangeAvailableOnRetrieval() throws Exception {
final Product product = new Product(); final Product product = new Product();
product.setId("P0001"); product.setId("P0001");
product.setName("T-Shirt"); product.setName("T-Shirt");
productRepository.save(product); productRepository.save(product);
product.setName("Shirt"); product.setName("Shirt");
productRepository.save(product); productRepository.save(product);
final Product retrievedProduct = productRepository.findOne(product.getId()); final Product retrievedProduct = productRepository.findOne(product.getId());
assertEquals(product.getName(), retrievedProduct.getName()); assertEquals(product.getName(), retrievedProduct.getName());
} }
@Test @Test
public void whenDeletingProduct_thenNotAvailableOnRetrieval() throws Exception { public void whenDeletingProduct_thenNotAvailableOnRetrieval() throws Exception {
final Product product = new Product(); final Product product = new Product();
product.setId("P0001"); product.setId("P0001");
product.setName("Desk"); product.setName("Desk");
productRepository.save(product); productRepository.save(product);
productRepository.delete(product); productRepository.delete(product);
Product retrievedProduct = productRepository.findOne(product.getId()); Product retrievedProduct = productRepository.findOne(product.getId());
assertNull(retrievedProduct); assertNull(retrievedProduct);
} }
@Test @Test
public void whenFindByName_thenAvailableOnRetrieval() throws Exception { public void whenFindByName_thenAvailableOnRetrieval() throws Exception {
Product phone = new Product(); Product phone = new Product();
phone.setId("P0001"); phone.setId("P0001");
phone.setName("Phone"); phone.setName("Phone");
productRepository.save(phone); productRepository.save(phone);
List<Product> retrievedProducts = productRepository.findByName("Phone"); List<Product> retrievedProducts = productRepository.findByName("Phone");
assertEquals(phone.getId(), retrievedProducts.get(0).getId()); assertEquals(phone.getId(), retrievedProducts.get(0).getId());
} }
@Test @Test
public void whenSearchingProductsByQuery_thenAllMatchingProductsShouldAvialble() throws Exception { public void whenSearchingProductsByQuery_thenAllMatchingProductsShouldAvialble() throws Exception {
final Product phone = new Product(); final Product phone = new Product();
phone.setId("P0001"); phone.setId("P0001");
phone.setName("Smart Phone"); phone.setName("Smart Phone");
productRepository.save(phone); productRepository.save(phone);
final Product phoneCover = new Product(); final Product phoneCover = new Product();
phoneCover.setId("P0002"); phoneCover.setId("P0002");
phoneCover.setName("Phone Cover"); phoneCover.setName("Phone Cover");
productRepository.save(phoneCover); productRepository.save(phoneCover);
final Product wirelessCharger = new Product(); final Product wirelessCharger = new Product();
wirelessCharger.setId("P0003"); wirelessCharger.setId("P0003");
wirelessCharger.setName("Phone Charging Cable"); wirelessCharger.setName("Phone Charging Cable");
productRepository.save(wirelessCharger); productRepository.save(wirelessCharger);
Page<Product> result = productRepository.findByCustomQuery("Phone", new PageRequest(0, 10)); Page<Product> result = productRepository.findByCustomQuery("Phone", new PageRequest(0, 10));
assertEquals(3, result.getNumberOfElements()); assertEquals(3, result.getNumberOfElements());
} }
@Test @Test
public void whenSearchingProductsByNamedQuery_thenAllMatchingProductsShouldAvialble() throws Exception { public void whenSearchingProductsByNamedQuery_thenAllMatchingProductsShouldAvialble() throws Exception {
final Product phone = new Product(); final Product phone = new Product();
phone.setId("P0001"); phone.setId("P0001");
phone.setName("Smart Phone"); phone.setName("Smart Phone");
productRepository.save(phone); productRepository.save(phone);
final Product phoneCover = new Product(); final Product phoneCover = new Product();
phoneCover.setId("P0002"); phoneCover.setId("P0002");
phoneCover.setName("Phone Cover"); phoneCover.setName("Phone Cover");
productRepository.save(phoneCover); productRepository.save(phoneCover);
final Product wirelessCharger = new Product(); final Product wirelessCharger = new Product();
wirelessCharger.setId("P0003"); wirelessCharger.setId("P0003");
wirelessCharger.setName("Phone Charging Cable"); wirelessCharger.setName("Phone Charging Cable");
productRepository.save(wirelessCharger); productRepository.save(wirelessCharger);
Page<Product> result = productRepository.findByNamedQuery("one", new PageRequest(0, 10)); Page<Product> result = productRepository.findByNamedQuery("one", new PageRequest(0, 10));
assertEquals(3, result.getNumberOfElements()); assertEquals(3, result.getNumberOfElements());
} }
} }