Skip to content

Commit b7b32e2

Browse files
Merge pull request #23 from xdev-software/DataImporter
Data importer
2 parents 632f1e3 + 05774b7 commit b7b32e2

File tree

14 files changed

+434
-20
lines changed

14 files changed

+434
-20
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 1.0.3
2+
3+
* Added the EclipseStoreDataImporter to import data from JPA repositories.
4+
15
# 1.0.2
26

37
* Added the EclipseStoreCustomRepository which has no methods defined at all.
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package software.xdev.spring.data.eclipse.store.jpa;
16+
package software.xdev.spring.data.eclipse.store.jpa.integration;
1717

1818
import static org.springframework.test.annotation.DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD;
1919

@@ -28,16 +28,13 @@
2828
import org.springframework.test.context.TestPropertySource;
2929
import org.springframework.test.context.junit.jupiter.SpringExtension;
3030

31-
import software.xdev.spring.data.eclipse.store.repository.config.EnableEclipseStoreRepositories;
32-
3331

3432
@Retention(RetentionPolicy.RUNTIME)
3533
@Target(ElementType.TYPE)
3634
@ExtendWith(SpringExtension.class)
3735
@ContextConfiguration(classes = {TestConfiguration.class})
3836
@DirtiesContext(classMode = BEFORE_EACH_TEST_METHOD)
3937
@TestPropertySource("/application.properties")
40-
@EnableEclipseStoreRepositories
4138
public @interface DefaultTestAnnotations
4239
{
4340
}

spring-data-eclipse-store-jpa/src/test/java/software/xdev/spring/data/eclipse/store/jpa/integration/IntegrationTest.java

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,70 @@
2222
import org.junit.jupiter.api.Test;
2323
import org.springframework.beans.factory.annotation.Autowired;
2424

25-
import software.xdev.spring.data.eclipse.store.jpa.DefaultTestAnnotations;
26-
import software.xdev.spring.data.eclipse.store.jpa.integration.repository.PersonToTest;
27-
import software.xdev.spring.data.eclipse.store.jpa.integration.repository.PersonToTestRepository;
25+
import software.xdev.spring.data.eclipse.store.importer.EclipseStoreDataImporterComponent;
26+
import software.xdev.spring.data.eclipse.store.jpa.integration.repository.PersonToTestInEclipseStore;
27+
import software.xdev.spring.data.eclipse.store.jpa.integration.repository.PersonToTestInEclipseStoreRepository;
28+
import software.xdev.spring.data.eclipse.store.jpa.integration.repository.PersonToTestInJpa;
29+
import software.xdev.spring.data.eclipse.store.jpa.integration.repository.PersonToTestInJpaRepository;
30+
import software.xdev.spring.data.eclipse.store.repository.EclipseStoreStorage;
31+
import software.xdev.spring.data.eclipse.store.repository.support.SimpleEclipseStoreRepository;
2832

2933

3034
@DefaultTestAnnotations
31-
public class IntegrationTest
35+
class IntegrationTest
3236
{
3337
@Autowired
34-
private PersonToTestRepository personToTestRepository;
38+
private PersonToTestInEclipseStoreRepository personToTestInEclipseStoreRepository;
39+
40+
@Autowired
41+
private PersonToTestInJpaRepository personToTestInJpaRepository;
42+
43+
@Autowired
44+
private EclipseStoreDataImporterComponent eclipseStoreDataImporter;
45+
46+
@Autowired
47+
private EclipseStoreStorage eclipseStoreStorage;
3548

3649
/**
3750
* Super simple test if there are any start-up errors when running parallel to a JPA configuration
3851
*/
3952
@Test
4053
void testBasicSaveAndFindSingleRecords()
4154
{
42-
final PersonToTest customer = new PersonToTest("", "");
43-
this.personToTestRepository.save(customer);
55+
final PersonToTestInEclipseStore customer = new PersonToTestInEclipseStore("", "");
56+
this.personToTestInEclipseStoreRepository.save(customer);
4457

45-
final List<PersonToTest> customers = this.personToTestRepository.findAll();
58+
final List<PersonToTestInEclipseStore> customers = this.personToTestInEclipseStoreRepository.findAll();
4659
Assertions.assertEquals(1, customers.size());
4760
Assertions.assertEquals(customer, customers.get(0));
4861
}
62+
63+
@Test
64+
void testEclipseStoreImport()
65+
{
66+
final PersonToTestInJpa customer = new PersonToTestInJpa("1", "", "");
67+
this.personToTestInJpaRepository.save(customer);
68+
69+
final List<SimpleEclipseStoreRepository<?, ?>> simpleEclipseStoreRepositories =
70+
this.eclipseStoreDataImporter.importData();
71+
Assertions.assertEquals(1, simpleEclipseStoreRepositories.size());
72+
final List<?> allEntities = simpleEclipseStoreRepositories.get(0).findAll();
73+
Assertions.assertEquals(1, allEntities.size());
74+
75+
this.eclipseStoreStorage.stop();
76+
Assertions.assertEquals(
77+
1,
78+
this.eclipseStoreStorage.getEntityCount(PersonToTestInJpa.class),
79+
"After restart the imported entities are not there anymore.");
80+
}
81+
82+
@Test
83+
void testEclipseStoreEmptyImport()
84+
{
85+
final List<SimpleEclipseStoreRepository<?, ?>> simpleEclipseStoreRepositories =
86+
this.eclipseStoreDataImporter.importData();
87+
Assertions.assertEquals(1, simpleEclipseStoreRepositories.size());
88+
final List<?> allEntities = simpleEclipseStoreRepositories.get(0).findAll();
89+
Assertions.assertEquals(0, allEntities.size());
90+
}
4991
}

spring-data-eclipse-store-jpa/src/test/java/software/xdev/spring/data/eclipse/store/jpa/TestConfiguration.java renamed to spring-data-eclipse-store-jpa/src/test/java/software/xdev/spring/data/eclipse/store/jpa/integration/TestConfiguration.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package software.xdev.spring.data.eclipse.store.jpa;
16+
package software.xdev.spring.data.eclipse.store.jpa.integration;
1717

1818
import java.nio.file.Path;
1919

2020
import org.springframework.beans.factory.DisposableBean;
2121
import org.springframework.beans.factory.annotation.Autowired;
2222
import org.springframework.beans.factory.annotation.Value;
23+
import org.springframework.boot.SpringBootConfiguration;
24+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
25+
import org.springframework.context.annotation.ComponentScan;
2326
import org.springframework.context.annotation.Configuration;
2427
import org.springframework.context.event.ContextRefreshedEvent;
2528
import org.springframework.context.event.EventListener;
@@ -28,8 +31,12 @@
2831
import software.xdev.spring.data.eclipse.store.repository.EclipseStoreStorage;
2932
import software.xdev.spring.data.eclipse.store.repository.config.EnableEclipseStoreRepositories;
3033

34+
3135
@Configuration
36+
@ComponentScan("software.xdev.spring.data.eclipse.store.importer")
3237
@EnableEclipseStoreRepositories
38+
@SpringBootConfiguration
39+
@EnableAutoConfiguration
3340
public class TestConfiguration implements DisposableBean
3441
{
3542
@Autowired
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
import org.springframework.data.annotation.Id;
66

77

8-
public class PersonToTest
8+
public class PersonToTestInEclipseStore
99
{
1010
@Id
1111
private String id;
1212

1313
private final String firstName;
1414
private final String lastName;
1515

16-
public PersonToTest(final String firstName, final String lastName)
16+
public PersonToTestInEclipseStore(final String firstName, final String lastName)
1717
{
1818
this.firstName = firstName;
1919
this.lastName = lastName;
@@ -30,7 +30,7 @@ public boolean equals(final Object o)
3030
{
3131
return false;
3232
}
33-
final PersonToTest customer = (PersonToTest)o;
33+
final PersonToTestInEclipseStore customer = (PersonToTestInEclipseStore)o;
3434
return Objects.equals(this.id, customer.id) && Objects.equals(this.firstName, customer.firstName)
3535
&& Objects.equals(this.lastName, customer.lastName);
3636
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
import software.xdev.spring.data.eclipse.store.repository.interfaces.EclipseStoreListCrudRepository;
44

55

6-
public interface PersonToTestRepository extends EclipseStoreListCrudRepository<PersonToTest, String>
6+
public interface PersonToTestInEclipseStoreRepository extends EclipseStoreListCrudRepository<PersonToTestInEclipseStore, String>
77
{
88
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package software.xdev.spring.data.eclipse.store.jpa.integration.repository;
2+
3+
import java.util.Objects;
4+
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.Id;
7+
8+
9+
@Entity
10+
public class PersonToTestInJpa
11+
{
12+
@Id
13+
private String id;
14+
15+
private String firstName;
16+
private String lastName;
17+
18+
public PersonToTestInJpa(final String id, final String firstName, final String lastName)
19+
{
20+
this.id = id;
21+
this.firstName = firstName;
22+
this.lastName = lastName;
23+
}
24+
25+
public PersonToTestInJpa()
26+
{
27+
28+
}
29+
30+
@Override
31+
public boolean equals(final Object o)
32+
{
33+
if(this == o)
34+
{
35+
return true;
36+
}
37+
if(o == null || this.getClass() != o.getClass())
38+
{
39+
return false;
40+
}
41+
final PersonToTestInJpa customer = (PersonToTestInJpa)o;
42+
return Objects.equals(this.id, customer.id) && Objects.equals(this.firstName, customer.firstName)
43+
&& Objects.equals(this.lastName, customer.lastName);
44+
}
45+
46+
@Override
47+
public int hashCode()
48+
{
49+
return Objects.hash(this.id, this.firstName, this.lastName);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package software.xdev.spring.data.eclipse.store.jpa.integration.repository;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
5+
6+
public interface PersonToTestInJpaRepository extends JpaRepository<PersonToTestInJpa, String>
7+
{
8+
}

0 commit comments

Comments
 (0)