Repository: Impetus/Kundera Branch: trunk Commit: 268958ab1ec0 Files: 2763 Total size: 15.4 MB Directory structure: gitextract_vp33ik68/ ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE.txt ├── NOTICE.txt ├── README.md ├── examples/ │ ├── basic-examples/ │ │ ├── kundera-cassandra-example/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── impetus/ │ │ │ │ │ └── kundera/ │ │ │ │ │ └── entities/ │ │ │ │ │ └── Person.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── persistence.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── CRUDTest.java │ │ ├── kundera-ethereum-example/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ ├── KunderaEthereumImporterTest.java │ │ │ │ └── KunderaEthereumJPAQueryTest.java │ │ │ └── resources/ │ │ │ ├── kundera-ethereum.properties │ │ │ └── logback.xml │ │ ├── kundera-ethereum-webapp/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ └── ethereum/ │ │ │ │ └── webapp/ │ │ │ │ ├── config/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── ApplicationInitializer.java │ │ │ │ │ ├── BeanConfig.java │ │ │ │ │ └── WebConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ └── EthereumController.java │ │ │ │ └── dao/ │ │ │ │ ├── EthereumDao.java │ │ │ │ └── UserDao.java │ │ │ ├── resources/ │ │ │ │ └── kundera-ethereum.properties │ │ │ └── webapp/ │ │ │ └── ui/ │ │ │ └── jsp/ │ │ │ ├── dashboard.jsp │ │ │ ├── home.jsp │ │ │ └── queryresult.jsp │ │ ├── kundera-hbase-example/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── impetus/ │ │ │ │ │ └── kundera/ │ │ │ │ │ └── entities/ │ │ │ │ │ └── Person.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── persistence.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── CRUDTest.java │ │ ├── kundera-mongodb-example/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── impetus/ │ │ │ │ │ └── kundera/ │ │ │ │ │ └── entities/ │ │ │ │ │ └── Person.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── persistence.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── CRUDTest.java │ │ └── polyglot/ │ │ └── kundera-mongodb-kudu-example/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ └── entities/ │ │ │ │ ├── Address.java │ │ │ │ └── Person.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── persistence.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── impetus/ │ │ └── kundera/ │ │ └── CRUDTest.java │ ├── container/ │ │ ├── jboss/ │ │ │ ├── data-keeper/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── impetus/ │ │ │ │ │ └── kundera/ │ │ │ │ │ └── datakeeper/ │ │ │ │ │ ├── beans/ │ │ │ │ │ │ ├── DocumentDownloadBean.java │ │ │ │ │ │ ├── DocumentSearchBean.java │ │ │ │ │ │ ├── DocumentUploadBean.java │ │ │ │ │ │ ├── EmployeeSearchBean.java │ │ │ │ │ │ ├── IncrementCounterBean.java │ │ │ │ │ │ ├── LoginBean.java │ │ │ │ │ │ ├── RegisterBean.java │ │ │ │ │ │ └── SearchType.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── DataKeeperDao.java │ │ │ │ │ │ └── DataKeeperDaoImpl.java │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── DocumentInfo.java │ │ │ │ │ │ ├── Employee.java │ │ │ │ │ │ └── SubordinatesCounter.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── DataKeeperService.java │ │ │ │ │ │ └── DataKeeperServiceImpl.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── DataFormat.java │ │ │ │ │ ├── DataKeeperConstants.java │ │ │ │ │ ├── DataKeeperUtils.java │ │ │ │ │ └── FacesUtils.java │ │ │ │ ├── resources/ │ │ │ │ │ ├── META-INF/ │ │ │ │ │ │ └── persistence.xml │ │ │ │ │ ├── appContext.xml │ │ │ │ │ ├── kunderaCounter.xml │ │ │ │ │ └── log4j.properties │ │ │ │ └── webapp/ │ │ │ │ ├── WEB-INF/ │ │ │ │ │ ├── faces-config.xml │ │ │ │ │ └── web.xml │ │ │ │ ├── appContext.xml │ │ │ │ ├── index.jsp │ │ │ │ └── xhtml/ │ │ │ │ ├── common/ │ │ │ │ │ ├── header.xhtml │ │ │ │ │ ├── leftPane.xhtml │ │ │ │ │ └── loggedInHeader.xhtml │ │ │ │ ├── home/ │ │ │ │ │ ├── showSubordinatesInfo.xhtml │ │ │ │ │ ├── showSubordinatesInfoTemplate.xhtml │ │ │ │ │ ├── timeline.xhtml │ │ │ │ │ └── timelineTemplate.xhtml │ │ │ │ ├── login/ │ │ │ │ │ ├── login.xhtml │ │ │ │ │ └── loginTemplate.xhtml │ │ │ │ ├── register/ │ │ │ │ │ ├── signUp.xhtml │ │ │ │ │ └── signUpTemplate.xhtml │ │ │ │ ├── settings/ │ │ │ │ │ ├── settings.xhtml │ │ │ │ │ └── settingsTemplate.xhtml │ │ │ │ └── upload/ │ │ │ │ ├── uploadDocument.xhtml │ │ │ │ └── uploadDocumentTemplate.xhtml │ │ │ └── pom.xml │ │ ├── pom.xml │ │ └── tomcat-glassfish/ │ │ ├── data-keeper/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ └── datakeeper/ │ │ │ │ ├── beans/ │ │ │ │ │ ├── DocumentDownloadBean.java │ │ │ │ │ ├── DocumentSearchBean.java │ │ │ │ │ ├── DocumentUploadBean.java │ │ │ │ │ ├── EmployeeSearchBean.java │ │ │ │ │ ├── IncrementCounterBean.java │ │ │ │ │ ├── LoginBean.java │ │ │ │ │ ├── RegisterBean.java │ │ │ │ │ └── SearchType.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── DataKeeperDao.java │ │ │ │ │ └── DataKeeperDaoImpl.java │ │ │ │ ├── entities/ │ │ │ │ │ ├── DocumentInfo.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── SubordinatesCounter.java │ │ │ │ ├── service/ │ │ │ │ │ ├── DataKeeperService.java │ │ │ │ │ └── DataKeeperServiceImpl.java │ │ │ │ └── utils/ │ │ │ │ ├── DataFormat.java │ │ │ │ ├── DataKeeperConstants.java │ │ │ │ ├── DataKeeperUtils.java │ │ │ │ └── FacesUtils.java │ │ │ ├── resources/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── persistence.xml │ │ │ │ ├── appContext.xml │ │ │ │ ├── kunderaCounter.xml │ │ │ │ └── log4j.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ ├── faces-config.xml │ │ │ │ └── web.xml │ │ │ ├── appContext.xml │ │ │ ├── index.jsp │ │ │ └── xhtml/ │ │ │ ├── common/ │ │ │ │ ├── header.xhtml │ │ │ │ ├── leftPane.xhtml │ │ │ │ └── loggedInHeader.xhtml │ │ │ ├── home/ │ │ │ │ ├── showSubordinatesInfo.xhtml │ │ │ │ ├── showSubordinatesInfoTemplate.xhtml │ │ │ │ ├── timeline.xhtml │ │ │ │ └── timelineTemplate.xhtml │ │ │ ├── login/ │ │ │ │ ├── login.xhtml │ │ │ │ └── loginTemplate.xhtml │ │ │ ├── register/ │ │ │ │ ├── signUp.xhtml │ │ │ │ └── signUpTemplate.xhtml │ │ │ ├── settings/ │ │ │ │ ├── settings.xhtml │ │ │ │ └── settingsTemplate.xhtml │ │ │ └── upload/ │ │ │ ├── uploadDocument.xhtml │ │ │ └── uploadDocumentTemplate.xhtml │ │ └── pom.xml │ ├── data-as-object-example/ │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── dataasobject/ │ │ │ ├── crud/ │ │ │ │ ├── CassandraCRUDTest.java │ │ │ │ └── KuduCRUDTest.java │ │ │ ├── entities/ │ │ │ │ ├── Book.java │ │ │ │ ├── Customer.java │ │ │ │ ├── Department.java │ │ │ │ ├── DepartmentKudu.java │ │ │ │ ├── Employee.java │ │ │ │ ├── Tweets.java │ │ │ │ ├── User.java │ │ │ │ └── Video.java │ │ │ ├── polyglot/ │ │ │ │ └── PolyglotTest.java │ │ │ └── query/ │ │ │ ├── BookBaseTest.java │ │ │ └── CassandraQueryTest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── client-polyglot-properties.json │ │ ├── client-properties-all.json │ │ └── client-properties.json │ ├── polyglot/ │ │ └── kvapps/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kvapps/ │ │ │ ├── entities/ │ │ │ │ ├── PersonalDetail.java │ │ │ │ ├── Tweets.java │ │ │ │ ├── User.java │ │ │ │ └── Video.java │ │ │ └── runner/ │ │ │ ├── AppRunner.java │ │ │ ├── ExecutorService.java │ │ │ └── UserBroker.java │ │ └── resources/ │ │ ├── KunderaConnection.xml │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── UserTweets.xls │ │ └── log4j.properties │ └── pom.xml ├── pom.xml ├── src/ │ ├── README.md │ ├── data-as-object/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── core/ │ │ │ │ ├── BindingException.java │ │ │ │ ├── DefaultKunderaEntity.java │ │ │ │ ├── KunderaEntity.java │ │ │ │ ├── PersistenceService.java │ │ │ │ └── QueryType.java │ │ │ └── dao/ │ │ │ └── utils/ │ │ │ ├── JsonUtil.java │ │ │ └── PropertyReader.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── persistence.xml │ ├── jpa-engine/ │ │ ├── core/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── impetus/ │ │ │ │ │ └── kundera/ │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── DataWrapper.java │ │ │ │ │ ├── KunderaException.java │ │ │ │ │ ├── KunderaPersistence.java │ │ │ │ │ ├── KunderaPersistenceProviderUtil.java │ │ │ │ │ ├── KunderaPersistenceUnitUtil.java │ │ │ │ │ ├── PersistenceProperties.java │ │ │ │ │ ├── PersistenceUtilHelper.java │ │ │ │ │ ├── cache/ │ │ │ │ │ │ ├── Cache.java │ │ │ │ │ │ ├── CacheException.java │ │ │ │ │ │ ├── CacheProvider.java │ │ │ │ │ │ ├── ElementCollectionCacheManager.java │ │ │ │ │ │ ├── NonOperationalCache.java │ │ │ │ │ │ └── NonOperationalCacheProvider.java │ │ │ │ │ ├── classreading/ │ │ │ │ │ │ ├── AnnotationDiscoveryListener.java │ │ │ │ │ │ ├── ClassFileIterator.java │ │ │ │ │ │ ├── ClasspathReader.java │ │ │ │ │ │ ├── Filter.java │ │ │ │ │ │ ├── FilterImpl.java │ │ │ │ │ │ ├── JarFileIterator.java │ │ │ │ │ │ ├── Reader.java │ │ │ │ │ │ ├── ResourceIterator.java │ │ │ │ │ │ └── ResourceReadingException.java │ │ │ │ │ ├── client/ │ │ │ │ │ │ ├── Client.java │ │ │ │ │ │ ├── ClientBase.java │ │ │ │ │ │ ├── ClientPropertiesSetter.java │ │ │ │ │ │ ├── ClientResolver.java │ │ │ │ │ │ ├── ClientResolverException.java │ │ │ │ │ │ └── EnhanceEntity.java │ │ │ │ │ ├── configure/ │ │ │ │ │ │ ├── AbstractPropertyReader.java │ │ │ │ │ │ ├── AbstractSchemaConfiguration.java │ │ │ │ │ │ ├── ClientFactoryConfiguraton.java │ │ │ │ │ │ ├── ClientMetadataBuilder.java │ │ │ │ │ │ ├── ClientProperties.java │ │ │ │ │ │ ├── Configuration.java │ │ │ │ │ │ ├── MetamodelConfiguration.java │ │ │ │ │ │ ├── PersistenceUnitConfiguration.java │ │ │ │ │ │ ├── PersistenceUnitConfigurationException.java │ │ │ │ │ │ ├── PropertyReader.java │ │ │ │ │ │ ├── SchemaConfiguration.java │ │ │ │ │ │ └── schema/ │ │ │ │ │ │ ├── CollectionColumnInfo.java │ │ │ │ │ │ ├── ColumnInfo.java │ │ │ │ │ │ ├── EmbeddedColumnInfo.java │ │ │ │ │ │ ├── IndexInfo.java │ │ │ │ │ │ ├── SchemaGenerationException.java │ │ │ │ │ │ ├── TableInfo.java │ │ │ │ │ │ └── api/ │ │ │ │ │ │ ├── AbstractSchemaManager.java │ │ │ │ │ │ └── SchemaManager.java │ │ │ │ │ ├── db/ │ │ │ │ │ │ ├── DataRow.java │ │ │ │ │ │ ├── RelationHolder.java │ │ │ │ │ │ └── SearchResult.java │ │ │ │ │ ├── generator/ │ │ │ │ │ │ ├── AutoGenerator.java │ │ │ │ │ │ ├── Generator.java │ │ │ │ │ │ ├── IdentityGenerator.java │ │ │ │ │ │ ├── SequenceGenerator.java │ │ │ │ │ │ └── TableGenerator.java │ │ │ │ │ ├── gis/ │ │ │ │ │ │ ├── SurfaceType.java │ │ │ │ │ │ ├── geometry/ │ │ │ │ │ │ │ ├── Circle.java │ │ │ │ │ │ │ ├── Coordinate.java │ │ │ │ │ │ │ ├── Envelope.java │ │ │ │ │ │ │ ├── Point.java │ │ │ │ │ │ │ ├── Polygon.java │ │ │ │ │ │ │ └── Triangle.java │ │ │ │ │ │ └── query/ │ │ │ │ │ │ └── GeospatialQuery.java │ │ │ │ │ ├── graph/ │ │ │ │ │ │ ├── GraphBuilder.java │ │ │ │ │ │ ├── GraphGenerator.java │ │ │ │ │ │ ├── Node.java │ │ │ │ │ │ ├── NodeLink.java │ │ │ │ │ │ ├── ObjectGraph.java │ │ │ │ │ │ ├── ObjectGraphBuilder.java │ │ │ │ │ │ └── ObjectGraphUtils.java │ │ │ │ │ ├── index/ │ │ │ │ │ │ ├── Index.java │ │ │ │ │ │ ├── IndexCollection.java │ │ │ │ │ │ ├── IndexManager.java │ │ │ │ │ │ ├── Indexer.java │ │ │ │ │ │ ├── IndexerProperties.java │ │ │ │ │ │ ├── IndexingConstants.java │ │ │ │ │ │ ├── IndexingException.java │ │ │ │ │ │ ├── LuceneIndexingException.java │ │ │ │ │ │ ├── LuceneQueryUtils.java │ │ │ │ │ │ └── lucene/ │ │ │ │ │ │ └── Indexer.java │ │ │ │ │ ├── lifecycle/ │ │ │ │ │ │ ├── NodeStateContext.java │ │ │ │ │ │ └── states/ │ │ │ │ │ │ ├── DetachedState.java │ │ │ │ │ │ ├── ManagedState.java │ │ │ │ │ │ ├── NodeState.java │ │ │ │ │ │ ├── RemovedState.java │ │ │ │ │ │ └── TransientState.java │ │ │ │ │ ├── loader/ │ │ │ │ │ │ ├── ClientFactory.java │ │ │ │ │ │ ├── ClientLifeCycleManager.java │ │ │ │ │ │ ├── ClientLoaderException.java │ │ │ │ │ │ ├── CoreLoader.java │ │ │ │ │ │ ├── GenericClientFactory.java │ │ │ │ │ │ ├── KunderaAuthenticationException.java │ │ │ │ │ │ ├── MetamodelLoaderException.java │ │ │ │ │ │ ├── PersistenceLoaderException.java │ │ │ │ │ │ └── PersistenceXMLLoader.java │ │ │ │ │ ├── metadata/ │ │ │ │ │ │ ├── KunderaMetadataManager.java │ │ │ │ │ │ ├── MetadataBuilder.java │ │ │ │ │ │ ├── MetadataProcessor.java │ │ │ │ │ │ ├── MetadataUtils.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── ApplicationLoaderException.java │ │ │ │ │ │ │ ├── ApplicationMetadata.java │ │ │ │ │ │ │ ├── ClientMetadata.java │ │ │ │ │ │ │ ├── Column.java │ │ │ │ │ │ │ ├── CoreMetadata.java │ │ │ │ │ │ │ ├── EntityMetadata.java │ │ │ │ │ │ │ ├── IdDiscriptor.java │ │ │ │ │ │ │ ├── JoinTableMetadata.java │ │ │ │ │ │ │ ├── MetamodelImpl.java │ │ │ │ │ │ │ ├── PersistenceUnitMetadata.java │ │ │ │ │ │ │ ├── PropertyIndex.java │ │ │ │ │ │ │ ├── Relation.java │ │ │ │ │ │ │ ├── SequenceGeneratorDiscriptor.java │ │ │ │ │ │ │ ├── TableGeneratorDiscriptor.java │ │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ │ ├── DefaultEntityAnnotationProcessor.java │ │ │ │ │ │ │ │ ├── DefaultFieldAnnotationProcessor.java │ │ │ │ │ │ │ │ ├── EntityAnnotationProcessor.java │ │ │ │ │ │ │ │ ├── FieldAnnotationProcessor.java │ │ │ │ │ │ │ │ └── JPAAnnotationProcessor.java │ │ │ │ │ │ │ ├── attributes/ │ │ │ │ │ │ │ │ ├── AbstractAttribute.java │ │ │ │ │ │ │ │ ├── AbstractPluralAttribute.java │ │ │ │ │ │ │ │ ├── AttributeType.java │ │ │ │ │ │ │ │ ├── DefaultCollectionAttribute.java │ │ │ │ │ │ │ │ ├── DefaultListAttribute.java │ │ │ │ │ │ │ │ ├── DefaultMapAttribute.java │ │ │ │ │ │ │ │ ├── DefaultSetAttribute.java │ │ │ │ │ │ │ │ └── DefaultSingularAttribute.java │ │ │ │ │ │ │ └── type/ │ │ │ │ │ │ │ ├── AbstractIdentifiableType.java │ │ │ │ │ │ │ ├── AbstractManagedType.java │ │ │ │ │ │ │ ├── AbstractType.java │ │ │ │ │ │ │ ├── DefaultBasicType.java │ │ │ │ │ │ │ ├── DefaultEmbeddableType.java │ │ │ │ │ │ │ ├── DefaultEntityType.java │ │ │ │ │ │ │ └── DefaultMappedSuperClass.java │ │ │ │ │ │ ├── processor/ │ │ │ │ │ │ │ ├── AbstractEntityFieldProcessor.java │ │ │ │ │ │ │ ├── CacheableAnnotationProcessor.java │ │ │ │ │ │ │ ├── EntityListenersProcessor.java │ │ │ │ │ │ │ ├── GeneratedValueProcessor.java │ │ │ │ │ │ │ ├── IndexProcessor.java │ │ │ │ │ │ │ ├── MetaModelBuilder.java │ │ │ │ │ │ │ ├── TableProcessor.java │ │ │ │ │ │ │ └── relation/ │ │ │ │ │ │ │ ├── ManyToManyRelationMetadataProcessor.java │ │ │ │ │ │ │ ├── ManyToOneRelationMetadataProcessor.java │ │ │ │ │ │ │ ├── OneToManyRelationMetadataProcessor.java │ │ │ │ │ │ │ ├── OneToOneRelationMetadataProcessor.java │ │ │ │ │ │ │ ├── RelationMetadataProcessor.java │ │ │ │ │ │ │ └── RelationMetadataProcessorFactory.java │ │ │ │ │ │ └── validator/ │ │ │ │ │ │ ├── EntityValidator.java │ │ │ │ │ │ ├── EntityValidatorImpl.java │ │ │ │ │ │ └── InvalidEntityDefinitionException.java │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ ├── AbstractEntityReader.java │ │ │ │ │ │ ├── AbstractExpression.java │ │ │ │ │ │ ├── AbstractPredicate.java │ │ │ │ │ │ ├── AggregateExpression.java │ │ │ │ │ │ ├── AssociationBuilder.java │ │ │ │ │ │ ├── BetweenPredicate.java │ │ │ │ │ │ ├── ComparisonPredicate.java │ │ │ │ │ │ ├── ConjuctionPredicate.java │ │ │ │ │ │ ├── Coordinator.java │ │ │ │ │ │ ├── CriteriaQueryTranslator.java │ │ │ │ │ │ ├── DefaultCompoundSelection.java │ │ │ │ │ │ ├── DefaultFrom.java │ │ │ │ │ │ ├── DefaultPath.java │ │ │ │ │ │ ├── DefaultRoot.java │ │ │ │ │ │ ├── DefaultTransactionResource.java │ │ │ │ │ │ ├── DisjunctionPredicate.java │ │ │ │ │ │ ├── EntityManagerFactoryImpl.java │ │ │ │ │ │ ├── EntityManagerImpl.java │ │ │ │ │ │ ├── EntityManagerSession.java │ │ │ │ │ │ ├── EntityReader.java │ │ │ │ │ │ ├── EntityReaderException.java │ │ │ │ │ │ ├── IdGenerator.java │ │ │ │ │ │ ├── KunderaCriteriaBuilder.java │ │ │ │ │ │ ├── KunderaCritieriaQuery.java │ │ │ │ │ │ ├── KunderaEntityTransaction.java │ │ │ │ │ │ ├── KunderaTransactionException.java │ │ │ │ │ │ ├── PersistenceDelegator.java │ │ │ │ │ │ ├── PersistenceValidator.java │ │ │ │ │ │ ├── QueryOrder.java │ │ │ │ │ │ ├── ResourceManager.java │ │ │ │ │ │ ├── TransactionBinder.java │ │ │ │ │ │ ├── TransactionResource.java │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ └── Batcher.java │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ ├── CacheBase.java │ │ │ │ │ │ │ ├── ElementCollectionCache.java │ │ │ │ │ │ │ ├── EmbeddedCache.java │ │ │ │ │ │ │ ├── EventLog.java │ │ │ │ │ │ │ ├── EventLogQueue.java │ │ │ │ │ │ │ ├── FlushManager.java │ │ │ │ │ │ │ ├── MainCache.java │ │ │ │ │ │ │ ├── PersistenceCache.java │ │ │ │ │ │ │ ├── PersistenceCacheManager.java │ │ │ │ │ │ │ ├── TransactionalCache.java │ │ │ │ │ │ │ └── jointable/ │ │ │ │ │ │ │ └── JoinTableData.java │ │ │ │ │ │ ├── event/ │ │ │ │ │ │ │ ├── CallbackMethod.java │ │ │ │ │ │ │ ├── EntityEventDispatcher.java │ │ │ │ │ │ │ ├── EventListenerException.java │ │ │ │ │ │ │ ├── ExternalCallbackMethod.java │ │ │ │ │ │ │ └── InternalCallbackMethod.java │ │ │ │ │ │ └── jta/ │ │ │ │ │ │ ├── KunderaJTAUserTransaction.java │ │ │ │ │ │ ├── KunderaTransaction.java │ │ │ │ │ │ └── UserTransactionFactory.java │ │ │ │ │ ├── property/ │ │ │ │ │ │ ├── PropertyAccessException.java │ │ │ │ │ │ ├── PropertyAccessor.java │ │ │ │ │ │ ├── PropertyAccessorFactory.java │ │ │ │ │ │ ├── PropertyAccessorHelper.java │ │ │ │ │ │ └── accessor/ │ │ │ │ │ │ ├── BigDecimalAccessor.java │ │ │ │ │ │ ├── BigIntegerAccessor.java │ │ │ │ │ │ ├── BooleanAccessor.java │ │ │ │ │ │ ├── ByteAccessor.java │ │ │ │ │ │ ├── CalendarAccessor.java │ │ │ │ │ │ ├── CharAccessor.java │ │ │ │ │ │ ├── DateAccessor.java │ │ │ │ │ │ ├── DoubleAccessor.java │ │ │ │ │ │ ├── EnumAccessor.java │ │ │ │ │ │ ├── FloatAccessor.java │ │ │ │ │ │ ├── IntegerAccessor.java │ │ │ │ │ │ ├── LongAccessor.java │ │ │ │ │ │ ├── ObjectAccessor.java │ │ │ │ │ │ ├── PointAccessor.java │ │ │ │ │ │ ├── SQLDateAccessor.java │ │ │ │ │ │ ├── SQLTimeAccessor.java │ │ │ │ │ │ ├── SQLTimestampAccessor.java │ │ │ │ │ │ ├── ShortAccessor.java │ │ │ │ │ │ ├── StringAccessor.java │ │ │ │ │ │ └── UUIDAccessor.java │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── KunderaProxy.java │ │ │ │ │ │ ├── LazyInitializationException.java │ │ │ │ │ │ ├── LazyInitializer.java │ │ │ │ │ │ ├── LazyInitializerFactory.java │ │ │ │ │ │ ├── ProxyHelper.java │ │ │ │ │ │ ├── cglib/ │ │ │ │ │ │ │ ├── CglibLazyInitializer.java │ │ │ │ │ │ │ └── CglibLazyInitializerFactory.java │ │ │ │ │ │ └── collection/ │ │ │ │ │ │ ├── AbstractProxyBase.java │ │ │ │ │ │ ├── AbstractProxyCollection.java │ │ │ │ │ │ ├── ProxyCollection.java │ │ │ │ │ │ ├── ProxyList.java │ │ │ │ │ │ ├── ProxyMap.java │ │ │ │ │ │ └── ProxySet.java │ │ │ │ │ ├── query/ │ │ │ │ │ │ ├── IResultIterator.java │ │ │ │ │ │ ├── JPQLParseException.java │ │ │ │ │ │ ├── KunderaQuery.java │ │ │ │ │ │ ├── KunderaQueryParser.java │ │ │ │ │ │ ├── KunderaQueryUtils.java │ │ │ │ │ │ ├── KunderaTypedQuery.java │ │ │ │ │ │ ├── LuceneQuery.java │ │ │ │ │ │ ├── LuceneQueryBuilder.java │ │ │ │ │ │ ├── Query.java │ │ │ │ │ │ ├── QueryHandlerException.java │ │ │ │ │ │ ├── QueryImpl.java │ │ │ │ │ │ └── QueryResolver.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── Host.java │ │ │ │ │ │ ├── HostConfiguration.java │ │ │ │ │ │ └── policy/ │ │ │ │ │ │ ├── LeastActiveBalancingPolicy.java │ │ │ │ │ │ ├── LoadBalancingPolicy.java │ │ │ │ │ │ ├── RetryService.java │ │ │ │ │ │ └── RoundRobinBalancingPolicy.java │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── DeepEquals.java │ │ │ │ │ │ ├── DefaultTimestampGenerator.java │ │ │ │ │ │ ├── InvalidConfigurationException.java │ │ │ │ │ │ ├── KunderaCoreUtils.java │ │ │ │ │ │ ├── KunderaThreadFactory.java │ │ │ │ │ │ ├── NumericUtils.java │ │ │ │ │ │ ├── ObjectUtils.java │ │ │ │ │ │ ├── ReflectUtils.java │ │ │ │ │ │ └── TimestampGenerator.java │ │ │ │ │ └── validation/ │ │ │ │ │ ├── AbstractValidationFactory.java │ │ │ │ │ ├── BootstrapValidationFactory.java │ │ │ │ │ ├── ListenerValidationFactory.java │ │ │ │ │ ├── OperationValidationFactory.java │ │ │ │ │ ├── ValidationFactory.java │ │ │ │ │ ├── ValidationFactoryGenerator.java │ │ │ │ │ └── rules/ │ │ │ │ │ ├── AbstractEntityRule.java │ │ │ │ │ ├── AbstractFieldRule.java │ │ │ │ │ ├── AttributeConstraintRule.java │ │ │ │ │ ├── EntityAnnotationRule.java │ │ │ │ │ ├── EntityFieldAnnotationRule.java │ │ │ │ │ ├── EntityRule.java │ │ │ │ │ ├── FieldRule.java │ │ │ │ │ ├── IRule.java │ │ │ │ │ ├── NullOrInvalidEntityRule.java │ │ │ │ │ ├── PrimaryKeyNullCheck.java │ │ │ │ │ ├── RelationAttributeRule.java │ │ │ │ │ └── RuleValidationException.java │ │ │ │ └── resources/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── services/ │ │ │ │ │ └── javax.persistence.spi.PersistenceProvider │ │ │ │ ├── persistence_1_0.xsd │ │ │ │ ├── persistence_2_0.xsd │ │ │ │ └── persistence_2_1.xsd │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ ├── client/ │ │ │ │ │ └── crud/ │ │ │ │ │ ├── EmbeddedEntity.java │ │ │ │ │ ├── SecondaryTableEntity.java │ │ │ │ │ └── SecondaryTableTestBase.java │ │ │ │ └── kundera/ │ │ │ │ ├── AllTestSuites.java │ │ │ │ ├── CoreTestUtilities.java │ │ │ │ ├── EntityManagerImplTest.java │ │ │ │ ├── EntityTransactionTest.java │ │ │ │ ├── KunderaPersistenceProviderUtilTest.java │ │ │ │ ├── KunderaPersistenceTest.java │ │ │ │ ├── KunderaPersistenceUnitUtilTest.java │ │ │ │ ├── PersistenceUtilHelperTest.java │ │ │ │ ├── cache/ │ │ │ │ │ ├── ElementCollectionCacheManagerTest.java │ │ │ │ │ ├── NonOperationCacheProviderTest.java │ │ │ │ │ └── NonOperationalCacheTest.java │ │ │ │ ├── classreading/ │ │ │ │ │ ├── ClassFileIteratorTest.java │ │ │ │ │ ├── ClasspathReaderTest.java │ │ │ │ │ ├── DataRowTest.java │ │ │ │ │ ├── FilterTest.java │ │ │ │ │ ├── RelationHolderTest.java │ │ │ │ │ └── SearchResultTest.java │ │ │ │ ├── client/ │ │ │ │ │ ├── ClientResolverTest.java │ │ │ │ │ ├── CoreTestClient.java │ │ │ │ │ ├── CoreTestClientFactory.java │ │ │ │ │ ├── CoreTestClientNoGenerator.java │ │ │ │ │ ├── CoreTestIdGenerator.java │ │ │ │ │ ├── DummyDatabase.java │ │ │ │ │ ├── DummySchema.java │ │ │ │ │ ├── DummyTable.java │ │ │ │ │ ├── EnhanceEntityTest.java │ │ │ │ │ ├── crud/ │ │ │ │ │ │ ├── associations/ │ │ │ │ │ │ │ ├── AssociationsBiDirectionalBase.java │ │ │ │ │ │ │ ├── AssociationsBiDirectionalTest.java │ │ │ │ │ │ │ ├── MobileHandset.java │ │ │ │ │ │ │ ├── MobileManufacturer.java │ │ │ │ │ │ │ └── MobileOperatingSystem.java │ │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ │ ├── AbstractTransaction.java │ │ │ │ │ │ ├── CreditTransaction.java │ │ │ │ │ │ ├── DebitTransaction.java │ │ │ │ │ │ ├── MappedSuperClassBase.java │ │ │ │ │ │ ├── Status.java │ │ │ │ │ │ └── Transaction.java │ │ │ │ │ └── query/ │ │ │ │ │ ├── AggregationsBaseTest.java │ │ │ │ │ ├── GroupByBaseTest.java │ │ │ │ │ └── OrderByBaseTest.java │ │ │ │ ├── configure/ │ │ │ │ │ ├── AbstractPropertyReaderTest.java │ │ │ │ │ ├── ConfiguratorTest.java │ │ │ │ │ ├── CoreEntityAddressUni1To1.java │ │ │ │ │ ├── CoreEntityAddressUni1ToM.java │ │ │ │ │ ├── CoreEntityAddressUniMTo1.java │ │ │ │ │ ├── CoreEntityPersionUniMto1.java │ │ │ │ │ ├── CoreEntityPersonUni1To1.java │ │ │ │ │ ├── CoreEntityPersonUni1ToM.java │ │ │ │ │ ├── CoreEntitySimple.java │ │ │ │ │ ├── CoreEntitySuper.java │ │ │ │ │ ├── DummyPropertyReader.java │ │ │ │ │ ├── PersonalData.java │ │ │ │ │ └── schema/ │ │ │ │ │ ├── ColumnInfoTest.java │ │ │ │ │ ├── EmbeddedColumnInfoTest.java │ │ │ │ │ ├── IndexInfoTest.java │ │ │ │ │ ├── TableInfoTest.java │ │ │ │ │ └── api/ │ │ │ │ │ ├── CoreSchemaManager.java │ │ │ │ │ └── SchemaManagerTest.java │ │ │ │ ├── datatypes/ │ │ │ │ │ └── datagenerator/ │ │ │ │ │ ├── BigDecimalDataGenerator.java │ │ │ │ │ ├── BigIntegerDataGenerator.java │ │ │ │ │ ├── BooleanDataGenerator.java │ │ │ │ │ ├── ByteDataGenerator.java │ │ │ │ │ ├── CalendarDataGenerator.java │ │ │ │ │ ├── CharDataGenerator.java │ │ │ │ │ ├── DataGenerator.java │ │ │ │ │ ├── DataGeneratorFactory.java │ │ │ │ │ ├── DateDataGenerator.java │ │ │ │ │ ├── DoubleDataGenerator.java │ │ │ │ │ ├── FloatDataGenerator.java │ │ │ │ │ ├── IntegerDataGenerator.java │ │ │ │ │ ├── LongDataGenerator.java │ │ │ │ │ ├── ShortDataGenerator.java │ │ │ │ │ ├── SqlDateDataGenerator.java │ │ │ │ │ ├── SqlTimeDataGenerator.java │ │ │ │ │ ├── SqlTimestampDataGenerator.java │ │ │ │ │ ├── StringDataGenerator.java │ │ │ │ │ └── UUIDDataGenerator.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── PersonalDetail.java │ │ │ │ │ ├── PersonnelDTO.java │ │ │ │ │ ├── Tweet.java │ │ │ │ │ ├── album/ │ │ │ │ │ │ ├── AlbumBi_1_1_1_1.java │ │ │ │ │ │ ├── AlbumBi_1_1_1_M.java │ │ │ │ │ │ ├── AlbumBi_1_M_1_M.java │ │ │ │ │ │ ├── AlbumBi_1_M_M_M.java │ │ │ │ │ │ ├── AlbumBi_M_1_1_M.java │ │ │ │ │ │ ├── AlbumBi_M_M_1_1.java │ │ │ │ │ │ ├── AlbumBi_M_M_M_M.java │ │ │ │ │ │ ├── AlbumUni_1_1_1_1.java │ │ │ │ │ │ ├── AlbumUni_1_1_1_M.java │ │ │ │ │ │ ├── AlbumUni_1_1_M_1.java │ │ │ │ │ │ ├── AlbumUni_1_M_1_M.java │ │ │ │ │ │ ├── AlbumUni_1_M_M_M.java │ │ │ │ │ │ ├── AlbumUni_M_1_1_M.java │ │ │ │ │ │ ├── AlbumUni_M_M_1_1.java │ │ │ │ │ │ └── AlbumUni_M_M_M_M.java │ │ │ │ │ ├── photo/ │ │ │ │ │ │ ├── PhotoBi_1_1_1_1.java │ │ │ │ │ │ ├── PhotoBi_1_1_1_M.java │ │ │ │ │ │ ├── PhotoBi_1_M_1_M.java │ │ │ │ │ │ ├── PhotoBi_1_M_M_M.java │ │ │ │ │ │ ├── PhotoBi_M_1_1_M.java │ │ │ │ │ │ ├── PhotoBi_M_M_1_1.java │ │ │ │ │ │ ├── PhotoBi_M_M_M_M.java │ │ │ │ │ │ ├── PhotoUni_1_1_1_1.java │ │ │ │ │ │ ├── PhotoUni_1_1_1_M.java │ │ │ │ │ │ ├── PhotoUni_1_1_M_1.java │ │ │ │ │ │ ├── PhotoUni_1_M_1_M.java │ │ │ │ │ │ ├── PhotoUni_1_M_M_M.java │ │ │ │ │ │ ├── PhotoUni_M_1_1_M.java │ │ │ │ │ │ ├── PhotoUni_M_M_1_1.java │ │ │ │ │ │ └── PhotoUni_M_M_M_M.java │ │ │ │ │ └── photographer/ │ │ │ │ │ ├── PhotographerBi_1_1_1_1.java │ │ │ │ │ ├── PhotographerBi_1_1_1_M.java │ │ │ │ │ ├── PhotographerBi_1_M_1_M.java │ │ │ │ │ ├── PhotographerBi_1_M_M_M.java │ │ │ │ │ ├── PhotographerBi_M_1_1_M.java │ │ │ │ │ ├── PhotographerBi_M_M_1_1.java │ │ │ │ │ ├── PhotographerBi_M_M_M_M.java │ │ │ │ │ ├── PhotographerUni_1_1_1_1.java │ │ │ │ │ ├── PhotographerUni_1_1_1_M.java │ │ │ │ │ ├── PhotographerUni_1_1_M_1.java │ │ │ │ │ ├── PhotographerUni_1_M_1_M.java │ │ │ │ │ ├── PhotographerUni_1_M_M_M.java │ │ │ │ │ ├── PhotographerUni_M_1_1_M.java │ │ │ │ │ ├── PhotographerUni_M_M_1_1.java │ │ │ │ │ └── PhotographerUni_M_M_M_M.java │ │ │ │ ├── gis/ │ │ │ │ │ └── geometry/ │ │ │ │ │ ├── CircleTest.java │ │ │ │ │ ├── EnvelopeTest.java │ │ │ │ │ ├── PointTest.java │ │ │ │ │ ├── PolygonTest.java │ │ │ │ │ └── TriangleTest.java │ │ │ │ ├── graph/ │ │ │ │ │ ├── BillingCounter.java │ │ │ │ │ ├── ObjectGraphTest.java │ │ │ │ │ ├── ObjectGraphUtilsTest.java │ │ │ │ │ ├── Store.java │ │ │ │ │ └── StoreBuilder.java │ │ │ │ ├── lifecycle/ │ │ │ │ │ └── states/ │ │ │ │ │ ├── DetachedStateTest.java │ │ │ │ │ ├── ManagedStateTest.java │ │ │ │ │ ├── NodeStateTest.java │ │ │ │ │ ├── RemovedStateTest.java │ │ │ │ │ └── TransientStateTest.java │ │ │ │ ├── loader/ │ │ │ │ │ └── GenericClientFactoryTest.java │ │ │ │ ├── metadata/ │ │ │ │ │ ├── DefaultEntityTypeTest.java │ │ │ │ │ ├── KunderaMetadataManagerTest.java │ │ │ │ │ ├── MetadataBuilderTest.java │ │ │ │ │ ├── MetadataUtilsTest.java │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── Article.java │ │ │ │ │ │ ├── AssociationEntity.java │ │ │ │ │ │ ├── AttributeOverrideSubClass.java │ │ │ │ │ │ ├── CollectionTypeAssociationEntity.java │ │ │ │ │ │ ├── EmbeddableEntity.java │ │ │ │ │ │ ├── EmbeddableEntityTwo.java │ │ │ │ │ │ ├── EmbeddableTransientEntity.java │ │ │ │ │ │ ├── EmbeddedIdOwnerEntity.java │ │ │ │ │ │ ├── EntityWithAttributeOverrides.java │ │ │ │ │ │ ├── EntityWithIdAttributeOverride.java │ │ │ │ │ │ ├── IDClassEntity.java │ │ │ │ │ │ ├── IDClassOwnerEntity.java │ │ │ │ │ │ ├── IdMappedSuperClass.java │ │ │ │ │ │ ├── ListTypeAssociationEntity.java │ │ │ │ │ │ ├── MapTypeAssociationEntity.java │ │ │ │ │ │ ├── MappedSuperClass.java │ │ │ │ │ │ ├── OToMOwnerEntity.java │ │ │ │ │ │ ├── OToOOwnerEntity.java │ │ │ │ │ │ ├── PluralOwnerType.java │ │ │ │ │ │ ├── RootMappedSuperClass.java │ │ │ │ │ │ ├── SampleEntity.java │ │ │ │ │ │ ├── SetTypeAssociationEntity.java │ │ │ │ │ │ ├── SingularEntity.java │ │ │ │ │ │ ├── SingularEntityEmbeddable.java │ │ │ │ │ │ ├── SubClassA.java │ │ │ │ │ │ ├── SubClassB.java │ │ │ │ │ │ ├── SubSingularEntity.java │ │ │ │ │ │ ├── TransientEntity.java │ │ │ │ │ │ └── bi/ │ │ │ │ │ │ ├── AssociationBiEntity.java │ │ │ │ │ │ └── OToOOwnerBiEntity.java │ │ │ │ │ ├── mappedsuperclass/ │ │ │ │ │ │ ├── Employee.java │ │ │ │ │ │ ├── EntityWithoutFieldsBase.java │ │ │ │ │ │ ├── EntityWithoutFieldsTest.java │ │ │ │ │ │ ├── InvalidPersonEntity.java │ │ │ │ │ │ ├── InvalidSuperClassTest.java │ │ │ │ │ │ ├── MappedPerson.java │ │ │ │ │ │ ├── MappedSuperClassTest.java │ │ │ │ │ │ ├── Person.java │ │ │ │ │ │ └── PersonChild.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── ApplicationMetadataTest.java │ │ │ │ │ │ ├── Department.java │ │ │ │ │ │ ├── Employe.java │ │ │ │ │ │ ├── EntityMetadataTest.java │ │ │ │ │ │ ├── KunderaUser.java │ │ │ │ │ │ ├── PersistenceUnitMetadataTest.java │ │ │ │ │ │ ├── ProcessAnnotationsTest.java │ │ │ │ │ │ └── TweetKundera.java │ │ │ │ │ ├── processor/ │ │ │ │ │ │ ├── AbstractResource.java │ │ │ │ │ │ ├── AttributeTypeTest.java │ │ │ │ │ │ ├── CarEngine.java │ │ │ │ │ │ ├── CarPart.java │ │ │ │ │ │ ├── CarPartResource.java │ │ │ │ │ │ ├── CarTyre.java │ │ │ │ │ │ ├── Circle.java │ │ │ │ │ │ ├── EntitySample.java │ │ │ │ │ │ ├── Geometry.java │ │ │ │ │ │ ├── MetaModelBuilderForTransientEntityTest.java │ │ │ │ │ │ ├── MetaModelBuilderTest.java │ │ │ │ │ │ ├── Polygon.java │ │ │ │ │ │ ├── Rectangle.java │ │ │ │ │ │ ├── Shape.java │ │ │ │ │ │ ├── TableProcessorTest.java │ │ │ │ │ │ └── relation/ │ │ │ │ │ │ └── RelationProcessorTest.java │ │ │ │ │ └── validator/ │ │ │ │ │ ├── EntityValidatorImplTest.java │ │ │ │ │ ├── EntityWithMultipleId.java │ │ │ │ │ ├── EntityWithOutConstructor.java │ │ │ │ │ ├── EntityWithOutId.java │ │ │ │ │ ├── EntityWithOutTableAnnotation.java │ │ │ │ │ ├── GeneratedIdDefault.java │ │ │ │ │ ├── GeneratedIdStrategyAuto.java │ │ │ │ │ ├── GeneratedIdStrategyIdentity.java │ │ │ │ │ ├── GeneratedIdStrategySequence.java │ │ │ │ │ ├── GeneratedIdStrategyTable.java │ │ │ │ │ ├── GeneratedIdWithInvalidGenerator.java │ │ │ │ │ ├── GeneratedIdWithNoGenerator.java │ │ │ │ │ ├── GeneratedIdWithOutSequenceGenerator.java │ │ │ │ │ ├── GeneratedIdWithOutTableGenerator.java │ │ │ │ │ ├── GeneratedIdWithSequenceGenerator.java │ │ │ │ │ └── GeneratedIdWithTableGenerator.java │ │ │ │ ├── persistence/ │ │ │ │ │ ├── AssociationBuilderTest.java │ │ │ │ │ ├── ExternalPropertyLoaderTest.java │ │ │ │ │ ├── FlushStackManagerTest.java │ │ │ │ │ ├── IdGeneratorTest.java │ │ │ │ │ ├── KunderaCriteriaBuilderTest.java │ │ │ │ │ ├── ObjectGraphBuilderTest.java │ │ │ │ │ ├── PersistenceCacheTest.java │ │ │ │ │ ├── PersistenceDelegatorTest.java │ │ │ │ │ ├── PersistenceUnitLoaderTest.java │ │ │ │ │ ├── PersistenceValidatorTest.java │ │ │ │ │ ├── PersonalDetailEmbedded.java │ │ │ │ │ ├── PersonnelEmbedded.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── context/ │ │ │ │ │ │ ├── FlushStackTest.java │ │ │ │ │ │ ├── PersistenceCacheManagerTest.java │ │ │ │ │ │ └── jointable/ │ │ │ │ │ │ └── JoinTableMetadataTest.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ ├── AddressEntity.java │ │ │ │ │ │ ├── AddressEntityWithList.java │ │ │ │ │ │ ├── EntityEventDispatcherTest.java │ │ │ │ │ │ ├── PersonEventDispatch.java │ │ │ │ │ │ └── PersonHandler.java │ │ │ │ │ └── jta/ │ │ │ │ │ ├── KunderaJTAUserTransactionTest.java │ │ │ │ │ └── KunderaTransactionTest.java │ │ │ │ ├── polyglot/ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── BaseDao.java │ │ │ │ │ │ └── PersonAddressDaoImpl.java │ │ │ │ │ └── entities/ │ │ │ │ │ ├── AddressB11FK.java │ │ │ │ │ ├── AddressB11PK.java │ │ │ │ │ ├── AddressB1M.java │ │ │ │ │ ├── AddressBM1.java │ │ │ │ │ ├── AddressBMM.java │ │ │ │ │ ├── AddressU11FK.java │ │ │ │ │ ├── AddressU11PK.java │ │ │ │ │ ├── AddressU1M.java │ │ │ │ │ ├── AddressUM1.java │ │ │ │ │ ├── AddressUMM.java │ │ │ │ │ ├── PersonB11FK.java │ │ │ │ │ ├── PersonB11PK.java │ │ │ │ │ ├── PersonB1M.java │ │ │ │ │ ├── PersonBM1.java │ │ │ │ │ ├── PersonBMM.java │ │ │ │ │ ├── PersonU11FK.java │ │ │ │ │ ├── PersonU11PK.java │ │ │ │ │ ├── PersonU1M.java │ │ │ │ │ ├── PersonUM1.java │ │ │ │ │ ├── PersonUMM.java │ │ │ │ │ └── PersonUMMByMap.java │ │ │ │ ├── property/ │ │ │ │ │ ├── PropertyAccessorHelperTest.java │ │ │ │ │ └── accessor/ │ │ │ │ │ ├── BigDecimalAccessorTest.java │ │ │ │ │ ├── BigIntegerAccessorTest.java │ │ │ │ │ ├── BooleanAccessorTest.java │ │ │ │ │ ├── ByteAccessorTest.java │ │ │ │ │ ├── CalendarAccessorTest.java │ │ │ │ │ ├── CharAccessorTest.java │ │ │ │ │ ├── DateAccessorTest.java │ │ │ │ │ ├── DoubleAccessorTest.java │ │ │ │ │ ├── EnumAccessorTest.java │ │ │ │ │ ├── FloatAccessorTest.java │ │ │ │ │ ├── IntegerAccessorTest.java │ │ │ │ │ ├── LongAccessorTest.java │ │ │ │ │ ├── ObjectAccessorTest.java │ │ │ │ │ ├── PersonalDetail.java │ │ │ │ │ ├── PointAccessorTest.java │ │ │ │ │ ├── SQLDateAccessorTest.java │ │ │ │ │ ├── SQLTimeAccessorTest.java │ │ │ │ │ ├── SQLTimestampAccessorTest.java │ │ │ │ │ ├── ShortAccessorTest.java │ │ │ │ │ ├── StringAccessorTest.java │ │ │ │ │ └── UUIDAccessorTest.java │ │ │ │ ├── proxy/ │ │ │ │ │ ├── cglib/ │ │ │ │ │ │ ├── CglibLazyInitializerFactoryTest.java │ │ │ │ │ │ └── CglibLazyInitializerTest.java │ │ │ │ │ └── collection/ │ │ │ │ │ ├── ProxyListTest.java │ │ │ │ │ ├── ProxyMapTest.java │ │ │ │ │ └── ProxySetTest.java │ │ │ │ ├── query/ │ │ │ │ │ ├── CoreIndexer.java │ │ │ │ │ ├── CoreQuery.java │ │ │ │ │ ├── CoreTestEntityReader.java │ │ │ │ │ ├── KunderaQueryParserTest.java │ │ │ │ │ ├── KunderaQueryTest.java │ │ │ │ │ ├── KunderaTypedQueryTest.java │ │ │ │ │ ├── Person.java │ │ │ │ │ ├── PersonEntityNameAnnotation.java │ │ │ │ │ ├── QueryExceptionTest.java │ │ │ │ │ └── QueryImplTest.java │ │ │ │ ├── service/ │ │ │ │ │ ├── CoreHostConfiguration.java │ │ │ │ │ ├── HostconfigurationTest.java │ │ │ │ │ └── policy/ │ │ │ │ │ ├── RetryServiceTest.java │ │ │ │ │ └── RoundRobinBalancingPolicyTest.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── DeepEqualsTest.java │ │ │ │ │ ├── KunderaCoreUtilsTest.java │ │ │ │ │ ├── KunderaThreadFactoryTest.java │ │ │ │ │ ├── LuceneCleanupUtilities.java │ │ │ │ │ ├── ObjectUtilsCloneBidirectionalM2MTest.java │ │ │ │ │ ├── ObjectUtilsCloneBidirectionalTest.java │ │ │ │ │ ├── ObjectUtilsCloneUnidirectionalTest.java │ │ │ │ │ └── ReflectUtilsTest.java │ │ │ │ └── validator/ │ │ │ │ ├── BookEntity.java │ │ │ │ ├── ConstructorValidationTest.java │ │ │ │ ├── InvalidBookEntity.java │ │ │ │ ├── ValidationEntity.java │ │ │ │ └── ValidationProcessorTest.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── persistence.xml │ │ │ │ └── persistence_2_0.xsd │ │ │ ├── ehcache-test.xml │ │ │ ├── kunderaTest.xml │ │ │ ├── kunderaTestDataType.xml │ │ │ └── log4j.properties │ │ ├── fallback-impl/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ ├── cache/ │ │ │ │ │ └── ehcache/ │ │ │ │ │ ├── EhCacheProvider.java │ │ │ │ │ └── EhCacheWrapper.java │ │ │ │ └── index/ │ │ │ │ ├── DocumentIndexer.java │ │ │ │ └── LuceneIndexer.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ ├── cache/ │ │ │ │ │ └── ehcache/ │ │ │ │ │ ├── EhCacheProviderTest.java │ │ │ │ │ └── EhcacheTest.java │ │ │ │ ├── entity/ │ │ │ │ │ └── EhCacheEntity.java │ │ │ │ ├── index/ │ │ │ │ │ ├── IndexManagerTest.java │ │ │ │ │ └── LuceneIndexerTest.java │ │ │ │ ├── metadata/ │ │ │ │ │ └── model/ │ │ │ │ │ └── EntityMetadataTest.java │ │ │ │ ├── persistence/ │ │ │ │ │ ├── EntityManagerSessionTest.java │ │ │ │ │ ├── EntityReaderTest.java │ │ │ │ │ └── JPAImplementationTestSuite.java │ │ │ │ ├── polyglot/ │ │ │ │ │ └── tests/ │ │ │ │ │ ├── MMBPolyglotTest.java │ │ │ │ │ ├── MMUPolyglotTest.java │ │ │ │ │ ├── MOBPolyglotTest.java │ │ │ │ │ ├── MOUPolyglotTest.java │ │ │ │ │ ├── OMBPolyglotTest.java │ │ │ │ │ ├── OMUPolyglotTest.java │ │ │ │ │ ├── OOBPolyglotTest.java │ │ │ │ │ ├── OOUPolyglotTest.java │ │ │ │ │ └── PersonAddressTestBase.java │ │ │ │ └── query/ │ │ │ │ ├── LuceneQueryTest.java │ │ │ │ ├── PersonEntityNameTest.java │ │ │ │ ├── PersonTest.java │ │ │ │ └── QueryImplTest.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── persistence.xml │ │ │ │ └── persistence_2_0.xsd │ │ │ └── ehcache-test.xml │ │ └── pom.xml │ ├── kundera-cassandra/ │ │ ├── cassandra-core/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── cassandra/ │ │ │ │ ├── CassandraClientBase.java │ │ │ │ ├── CassandraClientProperties.java │ │ │ │ ├── CassandraIdGenerator.java │ │ │ │ ├── common/ │ │ │ │ │ ├── CassandraClientFactory.java │ │ │ │ │ ├── CassandraConstants.java │ │ │ │ │ └── CassandraUtilities.java │ │ │ │ ├── config/ │ │ │ │ │ └── CassandraPropertyReader.java │ │ │ │ ├── datahandler/ │ │ │ │ │ ├── CassandraDataHandler.java │ │ │ │ │ └── CassandraDataHandlerBase.java │ │ │ │ ├── index/ │ │ │ │ │ ├── CassandraIndexHelper.java │ │ │ │ │ ├── InvertedIndexHandler.java │ │ │ │ │ └── InvertedIndexHandlerBase.java │ │ │ │ ├── query/ │ │ │ │ │ ├── CassQuery.java │ │ │ │ │ ├── CassandraEntityReader.java │ │ │ │ │ └── ResultIterator.java │ │ │ │ ├── schemamanager/ │ │ │ │ │ ├── CassandraDataTranslator.java │ │ │ │ │ ├── CassandraSchemaManager.java │ │ │ │ │ └── CassandraValidationClassMapper.java │ │ │ │ ├── service/ │ │ │ │ │ ├── CassandraHost.java │ │ │ │ │ ├── CassandraHostConfiguration.java │ │ │ │ │ └── CassandraRetryService.java │ │ │ │ └── thrift/ │ │ │ │ ├── CQLTranslator.java │ │ │ │ ├── ThriftClient.java │ │ │ │ ├── ThriftClientFactory.java │ │ │ │ ├── ThriftDataHandler.java │ │ │ │ ├── ThriftDataResultHelper.java │ │ │ │ ├── ThriftIdGenerator.java │ │ │ │ ├── ThriftInvertedIndexHandler.java │ │ │ │ ├── ThriftRow.java │ │ │ │ └── TranslationException.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── impetus/ │ │ │ │ │ ├── client/ │ │ │ │ │ │ ├── cassandra/ │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ ├── CassandraDefaultSuperUser.java │ │ │ │ │ │ │ │ ├── CassandraDefaultUser.java │ │ │ │ │ │ │ │ ├── CassandraPropertySetterTest.java │ │ │ │ │ │ │ │ ├── CassandraSchemaGenerationUsingXmlTest.java │ │ │ │ │ │ │ │ ├── CassandraSuperUser.java │ │ │ │ │ │ │ │ ├── CassandraTimestampGenerator.java │ │ │ │ │ │ │ │ ├── CassandraUser.java │ │ │ │ │ │ │ │ └── CassandraUserTest.java │ │ │ │ │ │ │ ├── query/ │ │ │ │ │ │ │ │ ├── CassQueryTest.java │ │ │ │ │ │ │ │ └── JpaQueryTest.java │ │ │ │ │ │ │ ├── thrift/ │ │ │ │ │ │ │ │ ├── AddressHandler.java │ │ │ │ │ │ │ │ ├── AddressListenerDTO.java │ │ │ │ │ │ │ │ ├── PersonHandler.java │ │ │ │ │ │ │ │ ├── PersonIdentity.java │ │ │ │ │ │ │ │ ├── PersonIdentityTest.java │ │ │ │ │ │ │ │ ├── PersonnelListenerDTO.java │ │ │ │ │ │ │ │ ├── PersonnelListenerDTOTest.java │ │ │ │ │ │ │ │ ├── Phone.java │ │ │ │ │ │ │ │ ├── PhoneId.java │ │ │ │ │ │ │ │ ├── cql/ │ │ │ │ │ │ │ │ │ ├── CQLUser.java │ │ │ │ │ │ │ │ │ ├── CQLUserTest.java │ │ │ │ │ │ │ │ │ ├── CassandraBatchProcessorCQLTest.java │ │ │ │ │ │ │ │ │ ├── CassandraCqlSecondaryTableTest.java │ │ │ │ │ │ │ │ │ ├── CassandraShowQueryTest.java │ │ │ │ │ │ │ │ │ ├── CountersTestOnCql.java │ │ │ │ │ │ │ │ │ ├── LoggingConfiguration.java │ │ │ │ │ │ │ │ │ ├── LoggingConfigurationTest.java │ │ │ │ │ │ │ │ │ ├── OTMCRUDCQLTest.java │ │ │ │ │ │ │ │ │ ├── PersonCassandraCQLTest.java │ │ │ │ │ │ │ │ │ ├── SecondaryTableCqlEntity.java │ │ │ │ │ │ │ │ │ ├── StudentCassandraCQLTest.java │ │ │ │ │ │ │ │ │ ├── SuperCountersTestOnCql.java │ │ │ │ │ │ │ │ │ └── UserInformation.java │ │ │ │ │ │ │ │ └── entities/ │ │ │ │ │ │ │ │ ├── AddressMToM.java │ │ │ │ │ │ │ │ └── PersonMToM.java │ │ │ │ │ │ │ ├── udt/ │ │ │ │ │ │ │ │ ├── Address.java │ │ │ │ │ │ │ │ ├── Fullname.java │ │ │ │ │ │ │ │ ├── PersonUDT.java │ │ │ │ │ │ │ │ ├── PersonalDetailsUDT.java │ │ │ │ │ │ │ │ ├── Phone.java │ │ │ │ │ │ │ │ ├── ProfessionalDetailsUDT.java │ │ │ │ │ │ │ │ ├── Spouse.java │ │ │ │ │ │ │ │ └── UdtAsEmbeddablesCRUDTest.java │ │ │ │ │ │ │ └── validator/ │ │ │ │ │ │ │ ├── BookEntity.java │ │ │ │ │ │ │ └── ConstructorValidationTest.java │ │ │ │ │ │ ├── crud/ │ │ │ │ │ │ │ ├── BaseTest.java │ │ │ │ │ │ │ ├── CassandraBiAssociationTest.java │ │ │ │ │ │ │ ├── CassandraIdQueryTest.java │ │ │ │ │ │ │ ├── CassandraNativeFunctionsTest.java │ │ │ │ │ │ │ ├── CassandraScalarQueriesTest.java │ │ │ │ │ │ │ ├── CassandraThriftSecondaryTableTest.java │ │ │ │ │ │ │ ├── EmbeddedEntity.java │ │ │ │ │ │ │ ├── Employee.java │ │ │ │ │ │ │ ├── EntityTransactionTest.java │ │ │ │ │ │ │ ├── EntityWithClause.java │ │ │ │ │ │ │ ├── EntityWithClauseBatchTest.java │ │ │ │ │ │ │ ├── EntityWithClauseTest.java │ │ │ │ │ │ │ ├── Group.java │ │ │ │ │ │ │ ├── MTOBiSelfAssociationTest.java │ │ │ │ │ │ │ ├── Month.java │ │ │ │ │ │ │ ├── MyTestEntity.java │ │ │ │ │ │ │ ├── OTMCRUDTest.java │ │ │ │ │ │ │ ├── PersonAssociationTest.java │ │ │ │ │ │ │ ├── PersonCassandra.java │ │ │ │ │ │ │ ├── PersonCassandraLuceneTest.java │ │ │ │ │ │ │ ├── PersonCassandraLuceneTestCQL3.java │ │ │ │ │ │ │ ├── PersonCassandraTTLTest.java │ │ │ │ │ │ │ ├── PersonCassandraTest.java │ │ │ │ │ │ │ ├── PersonLuceneCassandra.java │ │ │ │ │ │ │ ├── PersonLuceneCassandraUUID.java │ │ │ │ │ │ │ ├── SecondaryTableEntity.java │ │ │ │ │ │ │ ├── Token.java │ │ │ │ │ │ │ ├── TokenClient.java │ │ │ │ │ │ │ ├── TransientUser.java │ │ │ │ │ │ │ ├── TransientUserTest.java │ │ │ │ │ │ │ ├── UpdateDeleteJPQLLiteralTest.java │ │ │ │ │ │ │ ├── UserPromoCodeTest.java │ │ │ │ │ │ │ ├── batch/ │ │ │ │ │ │ │ │ ├── AddressBatch.java │ │ │ │ │ │ │ │ ├── CQL3BatchProcessorTest.java │ │ │ │ │ │ │ │ ├── CassandraBatchProcessorMixedTest.java │ │ │ │ │ │ │ │ ├── CassandraBatchProcessorTest.java │ │ │ │ │ │ │ │ ├── PersonBatch.java │ │ │ │ │ │ │ │ └── PersonBatchCassandraEntity.java │ │ │ │ │ │ │ ├── collection/ │ │ │ │ │ │ │ │ ├── BlogPost.java │ │ │ │ │ │ │ │ └── BlogPostTest.java │ │ │ │ │ │ │ ├── compositeType/ │ │ │ │ │ │ │ │ ├── CQLTranslatorTest.java │ │ │ │ │ │ │ │ ├── CassandraCompositeTypeOrderByTest.java │ │ │ │ │ │ │ │ ├── CassandraCompositeTypeTest.java │ │ │ │ │ │ │ │ ├── CassandraCompoundKey.java │ │ │ │ │ │ │ │ ├── CassandraEmbeddedAssociation.java │ │ │ │ │ │ │ │ ├── CassandraPrimeUser.java │ │ │ │ │ │ │ │ ├── CompositeDataTypeTest.java │ │ │ │ │ │ │ │ ├── CompoundKeyDataType.java │ │ │ │ │ │ │ │ ├── EntityWithMultiplePartitionKey.java │ │ │ │ │ │ │ │ ├── EntityWithMultiplePartitionKeyAutoGenTest.java │ │ │ │ │ │ │ │ ├── EntityWithMultiplePartitionKeyTest.java │ │ │ │ │ │ │ │ ├── IdWithMultiplePartitionKey.java │ │ │ │ │ │ │ │ ├── LuceneCompositeKeyTest.java │ │ │ │ │ │ │ │ ├── PartitionKey.java │ │ │ │ │ │ │ │ ├── PrimeUserDataType.java │ │ │ │ │ │ │ │ └── association/ │ │ │ │ │ │ │ │ ├── AddressOTOPK.java │ │ │ │ │ │ │ │ ├── CassandraAddressUniOTM.java │ │ │ │ │ │ │ │ ├── CassandraUserOTMTest.java │ │ │ │ │ │ │ │ ├── CassandraUserUniOTM.java │ │ │ │ │ │ │ │ ├── UserInfo.java │ │ │ │ │ │ │ │ ├── UserInfoTest.java │ │ │ │ │ │ │ │ ├── UserOTOPK.java │ │ │ │ │ │ │ │ └── UserOTOPKTest.java │ │ │ │ │ │ │ ├── countercolumns/ │ │ │ │ │ │ │ │ ├── CounterWithStringId.java │ │ │ │ │ │ │ │ ├── CounterWithStringIdTest.java │ │ │ │ │ │ │ │ ├── Counters.java │ │ │ │ │ │ │ │ ├── CountersCQL3BatchTest.java │ │ │ │ │ │ │ │ ├── CountersTest.java │ │ │ │ │ │ │ │ ├── SubCounter.java │ │ │ │ │ │ │ │ ├── SuperCounters.java │ │ │ │ │ │ │ │ └── SuperCountersTest.java │ │ │ │ │ │ │ ├── datatypes/ │ │ │ │ │ │ │ │ ├── ByteDataTest.java │ │ │ │ │ │ │ │ ├── CassandraBase.java │ │ │ │ │ │ │ │ ├── CollectionTest.java │ │ │ │ │ │ │ │ ├── EntityWithUnicode.java │ │ │ │ │ │ │ │ ├── EntityWithUnicodeTest.java │ │ │ │ │ │ │ │ ├── StudentCassandra.java │ │ │ │ │ │ │ │ ├── StudentCassandraBase.java │ │ │ │ │ │ │ │ ├── StudentCassandraBigDecimalTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraBigIntegerTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraBooleanPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraBooleanWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraBytePrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraByteWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraCharTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraCharacterTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraDateTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraDoublePrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraDoubleWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraFloatPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraFloatWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraIntTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraIntegerTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraLongPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraLongWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraShortPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraShortWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraSqlDateTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraStringTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraTimeTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraTimestampTest.java │ │ │ │ │ │ │ │ ├── StudentCassandraUUIDTest.java │ │ │ │ │ │ │ │ ├── StudentEntityDef.java │ │ │ │ │ │ │ │ └── entities/ │ │ │ │ │ │ │ │ ├── EntityWithCollection.java │ │ │ │ │ │ │ │ ├── StudentBigDecimal.java │ │ │ │ │ │ │ │ ├── StudentBigInteger.java │ │ │ │ │ │ │ │ ├── StudentBooleanPrimitive.java │ │ │ │ │ │ │ │ ├── StudentBooleanWrapper.java │ │ │ │ │ │ │ │ ├── StudentBytePrimitive.java │ │ │ │ │ │ │ │ ├── StudentByteWrapper.java │ │ │ │ │ │ │ │ ├── StudentCalendar.java │ │ │ │ │ │ │ │ ├── StudentChar.java │ │ │ │ │ │ │ │ ├── StudentCharacter.java │ │ │ │ │ │ │ │ ├── StudentDate.java │ │ │ │ │ │ │ │ ├── StudentDoublePrimitive.java │ │ │ │ │ │ │ │ ├── StudentDoubleWrapper.java │ │ │ │ │ │ │ │ ├── StudentFloatPrimitive.java │ │ │ │ │ │ │ │ ├── StudentFloatWrapper.java │ │ │ │ │ │ │ │ ├── StudentInt.java │ │ │ │ │ │ │ │ ├── StudentInteger.java │ │ │ │ │ │ │ │ ├── StudentLongPrimitive.java │ │ │ │ │ │ │ │ ├── StudentLongWrapper.java │ │ │ │ │ │ │ │ ├── StudentShortPrimitive.java │ │ │ │ │ │ │ │ ├── StudentShortWrapper.java │ │ │ │ │ │ │ │ ├── StudentSqlDate.java │ │ │ │ │ │ │ │ ├── StudentString.java │ │ │ │ │ │ │ │ ├── StudentTime.java │ │ │ │ │ │ │ │ ├── StudentTimestamp.java │ │ │ │ │ │ │ │ └── StudentUUID.java │ │ │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ │ │ └── inheritence/ │ │ │ │ │ │ │ ├── CassandraEntityWithoutFieldsTest.java │ │ │ │ │ │ │ ├── CassandraMappedSuperClassTest.java │ │ │ │ │ │ │ └── CassandraMappedSuperClassTestCQL3.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── PromoCode.java │ │ │ │ │ │ │ └── Users.java │ │ │ │ │ │ ├── esindexer/ │ │ │ │ │ │ │ ├── CassandraESAggregationTest.java │ │ │ │ │ │ │ ├── CassandraESGroupByTest.java │ │ │ │ │ │ │ ├── CassandraESOrderByTest.java │ │ │ │ │ │ │ ├── PersonCassandraESIndexerTest.java │ │ │ │ │ │ │ ├── PersonCassandraESIndexerTestCQL3.java │ │ │ │ │ │ │ ├── PersonESIndexerCassandra.java │ │ │ │ │ │ │ └── PersonESIndexerCassandraUUID.java │ │ │ │ │ │ ├── generatedId/ │ │ │ │ │ │ │ ├── CassandraGeneratedIdCqlTest.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdTest.java │ │ │ │ │ │ │ ├── CustomGeneratedIdTest.java │ │ │ │ │ │ │ ├── CustomIdGenerator.java │ │ │ │ │ │ │ └── entites/ │ │ │ │ │ │ │ ├── CassandraGeneratedIdDefault.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdStrategyAuto.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdStrategyIdentity.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdStrategySequence.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdStrategyTable.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdWithOutSequenceGenerator.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdWithOutTableGenerator.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdWithSequenceGenerator.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdWithTableGenerator.java │ │ │ │ │ │ │ ├── EmployeeAddress.java │ │ │ │ │ │ │ ├── EmployeeInfo.java │ │ │ │ │ │ │ └── EmployeeInfoTest.java │ │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ │ ├── CassandraBatchEntity.java │ │ │ │ │ │ │ ├── CassandraEntity.java │ │ │ │ │ │ │ ├── CassandraEntitySample.java │ │ │ │ │ │ │ ├── NativeQueryCQLV3Test.java │ │ │ │ │ │ │ ├── NativeQueryTest.java │ │ │ │ │ │ │ ├── NullableFieldAccessorTest.java │ │ │ │ │ │ │ └── UpdateDeleteNamedQueryTest.java │ │ │ │ │ │ ├── schemamanager/ │ │ │ │ │ │ │ ├── CassandraSchemaManagerMTM.java │ │ │ │ │ │ │ ├── CassandraSchemaManagerMTMTest.java │ │ │ │ │ │ │ ├── CassandraSchemaManagerTest.java │ │ │ │ │ │ │ ├── CassandraSchemaManagerValidateEntityTest.java │ │ │ │ │ │ │ ├── CassandraSchemaOperationTest.java │ │ │ │ │ │ │ ├── CassanrdaGeneratedIdSchemaTest.java │ │ │ │ │ │ │ └── entites/ │ │ │ │ │ │ │ ├── Actor.java │ │ │ │ │ │ │ ├── ActorTest.java │ │ │ │ │ │ │ ├── CassandraEmbeddedPersonUniMto1.java │ │ │ │ │ │ │ ├── CassandraEntityAddressBi1To1FK.java │ │ │ │ │ │ │ ├── CassandraEntityAddressBi1To1PK.java │ │ │ │ │ │ │ ├── CassandraEntityAddressBi1ToM.java │ │ │ │ │ │ │ ├── CassandraEntityAddressBiMTo1.java │ │ │ │ │ │ │ ├── CassandraEntityAddressUni1To1.java │ │ │ │ │ │ │ ├── CassandraEntityAddressUni1To1PK.java │ │ │ │ │ │ │ ├── CassandraEntityAddressUni1ToM.java │ │ │ │ │ │ │ ├── CassandraEntityAddressUniMTo1.java │ │ │ │ │ │ │ ├── CassandraEntityHabitatUniMToM.java │ │ │ │ │ │ │ ├── CassandraEntityPersonBi1To1FK.java │ │ │ │ │ │ │ ├── CassandraEntityPersonBi1To1PK.java │ │ │ │ │ │ │ ├── CassandraEntityPersonBi1ToM.java │ │ │ │ │ │ │ ├── CassandraEntityPersonBiMTo1.java │ │ │ │ │ │ │ ├── CassandraEntityPersonUni1To1.java │ │ │ │ │ │ │ ├── CassandraEntityPersonUni1To1PK.java │ │ │ │ │ │ │ ├── CassandraEntityPersonUni1ToM.java │ │ │ │ │ │ │ ├── CassandraEntityPersonUniMto1.java │ │ │ │ │ │ │ ├── CassandraEntityPersonnelUniMToM.java │ │ │ │ │ │ │ ├── CassandraEntitySimple.java │ │ │ │ │ │ │ ├── CassandraEntitySuper.java │ │ │ │ │ │ │ ├── CassandraPersonalData.java │ │ │ │ │ │ │ ├── CompositeUser.java │ │ │ │ │ │ │ ├── Doctor.java │ │ │ │ │ │ │ ├── InvalidCounterColumnEntity.java │ │ │ │ │ │ │ ├── Movie.java │ │ │ │ │ │ │ ├── TwitterUser.java │ │ │ │ │ │ │ └── ValidCounterColumnFamily.java │ │ │ │ │ │ └── twitter/ │ │ │ │ │ │ ├── TwissandraSuperColumnDatatypeTest.java │ │ │ │ │ │ ├── TwissandraTest.java │ │ │ │ │ │ ├── TwitterTestBaseCassandra.java │ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ │ ├── SuperDaoCassandra.java │ │ │ │ │ │ │ ├── TwitterCassandra.java │ │ │ │ │ │ │ └── TwitterServiceCassandra.java │ │ │ │ │ │ ├── entities/ │ │ │ │ │ │ │ ├── ExternalLinkCassandra.java │ │ │ │ │ │ │ ├── PersonalDetailCassandra.java │ │ │ │ │ │ │ ├── PreferenceCassandra.java │ │ │ │ │ │ │ ├── ProfessionalDetailCassandra.java │ │ │ │ │ │ │ ├── TweetCassandra.java │ │ │ │ │ │ │ └── UserCassandra.java │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ └── ExampleUtilsCassandra.java │ │ │ │ │ └── kundera/ │ │ │ │ │ ├── client/ │ │ │ │ │ │ ├── cassandra/ │ │ │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ │ │ └── CassandraCli.java │ │ │ │ │ │ │ └── thrift/ │ │ │ │ │ │ │ ├── ThriftClientFactoryTest.java │ │ │ │ │ │ │ └── ThriftClientTest.java │ │ │ │ │ │ └── crud/ │ │ │ │ │ │ ├── entitylisteners/ │ │ │ │ │ │ │ ├── AbstractSuperClass.java │ │ │ │ │ │ │ ├── EntityListenersTest.java │ │ │ │ │ │ │ ├── Listener.java │ │ │ │ │ │ │ └── Person.java │ │ │ │ │ │ ├── inheritence/ │ │ │ │ │ │ │ ├── FacebookProfile.java │ │ │ │ │ │ │ ├── GuidDomainObject.java │ │ │ │ │ │ │ ├── InheritenceDomainTest.java │ │ │ │ │ │ │ ├── SocialProfile.java │ │ │ │ │ │ │ ├── TwitterProfile.java │ │ │ │ │ │ │ └── UserAccount.java │ │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ │ ├── CreditTransaction.java │ │ │ │ │ │ └── DebitTransaction.java │ │ │ │ │ └── query/ │ │ │ │ │ ├── ResultIteratorEmbeddableTest.java │ │ │ │ │ └── ResultIteratorTest.java │ │ │ │ └── org/ │ │ │ │ └── apache/ │ │ │ │ └── cassandra/ │ │ │ │ └── auth/ │ │ │ │ ├── SimpleAuthenticator.java │ │ │ │ └── SimpleAuthority.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── persistence.xml │ │ │ │ └── persistence_2_0.xsd │ │ │ ├── access.properties │ │ │ ├── cassandra.yaml │ │ │ ├── ehcache-test.xml │ │ │ ├── kundera-cassandra.properties │ │ │ ├── kunderaConnectionTest.xml │ │ │ ├── kunderaLoadbalancingTest.xml │ │ │ ├── log4j.properties │ │ │ ├── logback.xml │ │ │ └── passwd.properties │ │ ├── cassandra-ds-driver/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ └── client/ │ │ │ │ └── cassandra/ │ │ │ │ └── dsdriver/ │ │ │ │ ├── DSCassQuery.java │ │ │ │ ├── DSClient.java │ │ │ │ ├── DSClientFactory.java │ │ │ │ ├── DSClientUtilities.java │ │ │ │ ├── DSIdGenerator.java │ │ │ │ └── DSResultIterator.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ ├── client/ │ │ │ │ │ ├── cassandra/ │ │ │ │ │ │ ├── crud/ │ │ │ │ │ │ │ └── compositeType/ │ │ │ │ │ │ │ └── association/ │ │ │ │ │ │ │ ├── AddressOTOPK.java │ │ │ │ │ │ │ ├── CassandraAddressUniOTM.java │ │ │ │ │ │ │ ├── CassandraCompoundKey.java │ │ │ │ │ │ │ ├── CassandraEmbeddedAssociation.java │ │ │ │ │ │ │ ├── CassandraUserOTMTest.java │ │ │ │ │ │ │ ├── CassandraUserUniOTM.java │ │ │ │ │ │ │ ├── UserInfo.java │ │ │ │ │ │ │ ├── UserInfoTest.java │ │ │ │ │ │ │ ├── UserOTOPK.java │ │ │ │ │ │ │ └── UserOTOPKTest.java │ │ │ │ │ │ ├── generatedId/ │ │ │ │ │ │ │ ├── CassandraGeneratedIdTest.java │ │ │ │ │ │ │ └── entites/ │ │ │ │ │ │ │ ├── CassandraGeneratedIdDefault.java │ │ │ │ │ │ │ ├── CassandraGeneratedIdStrategyAuto.java │ │ │ │ │ │ │ ├── EmployeeAddress.java │ │ │ │ │ │ │ ├── EmployeeInfo.java │ │ │ │ │ │ │ └── EmployeeInfoTest.java │ │ │ │ │ │ └── udt/ │ │ │ │ │ │ ├── Address.java │ │ │ │ │ │ ├── Fullname.java │ │ │ │ │ │ ├── PersonUDT.java │ │ │ │ │ │ ├── PersonalDetailsUDT.java │ │ │ │ │ │ ├── Phone.java │ │ │ │ │ │ ├── ProfessionalDetailsUDT.java │ │ │ │ │ │ ├── Spouse.java │ │ │ │ │ │ └── UdtAsEmbeddablesCRUDTest.java │ │ │ │ │ └── crud/ │ │ │ │ │ ├── CassandraScalarQueriesTest.java │ │ │ │ │ ├── ClassMTM.java │ │ │ │ │ ├── DSClientSecondaryTableTest.java │ │ │ │ │ ├── ManyToManyAssociationTest.java │ │ │ │ │ ├── PersonCassandra.java │ │ │ │ │ ├── SecondaryTableEntity.java │ │ │ │ │ ├── StudentMTM.java │ │ │ │ │ └── collection/ │ │ │ │ │ ├── BlogPost.java │ │ │ │ │ └── BlogPostTest.java │ │ │ │ └── kundera/ │ │ │ │ └── client/ │ │ │ │ └── cassandra/ │ │ │ │ ├── composite/ │ │ │ │ │ ├── CompoundKeyDataType.java │ │ │ │ │ ├── DSCQLTranslatorTest.java │ │ │ │ │ ├── DSCompositeDataTypeTest.java │ │ │ │ │ ├── DSCompositeTypeOrderByTest.java │ │ │ │ │ ├── DSCompositeTypeTest.java │ │ │ │ │ ├── DSEmbeddedAssociation.java │ │ │ │ │ ├── DSEntityWithMultiplePartitionKey.java │ │ │ │ │ ├── DSEntityWithMultiplePartitionKeyTest.java │ │ │ │ │ ├── DSIdWithMultiplePartitionKey.java │ │ │ │ │ ├── DSPartitionKey.java │ │ │ │ │ ├── PrimeUser.java │ │ │ │ │ ├── PrimeUserDataType.java │ │ │ │ │ └── UserTimeLine.java │ │ │ │ ├── crud/ │ │ │ │ │ ├── CassandraBatchEntity.java │ │ │ │ │ ├── CassandraBatchProcessorTest.java │ │ │ │ │ ├── CassandraEntity.java │ │ │ │ │ ├── CassandraEntitySample.java │ │ │ │ │ ├── CollectionEntity.java │ │ │ │ │ ├── CollectionTest.java │ │ │ │ │ ├── CriteriaQueryTest.java │ │ │ │ │ ├── NativeQueryBindParametersTest.java │ │ │ │ │ ├── NativeQueryCQLV3Test.java │ │ │ │ │ ├── NativeQueryTest.java │ │ │ │ │ ├── PersonEntityTest.java │ │ │ │ │ ├── ResultIteratorEmbeddableTest.java │ │ │ │ │ └── ResultIteratorTest.java │ │ │ │ └── dsdriver/ │ │ │ │ ├── CustomRetry.java │ │ │ │ ├── DSClientExternalPropertyTest.java │ │ │ │ └── HostFilterPredicate.java │ │ │ └── resources/ │ │ │ ├── DSClientTestWithMissingProperties.xml │ │ │ ├── DSClientTestWithMissingProperties2.xml │ │ │ ├── META-INF/ │ │ │ │ ├── persistence.xml │ │ │ │ └── persistence_2_0.xsd │ │ │ ├── dsclient.xml │ │ │ ├── dsclienttest2.xml │ │ │ └── dsclienttest3.xml │ │ ├── cassandra-pelops/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── cassandra/ │ │ │ │ └── pelops/ │ │ │ │ ├── PelopsClient.java │ │ │ │ ├── PelopsClientFactory.java │ │ │ │ ├── PelopsDataHandler.java │ │ │ │ ├── PelopsIdGenerator.java │ │ │ │ ├── PelopsInvertedIndexHandler.java │ │ │ │ └── PelopsUtils.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ ├── client/ │ │ │ │ │ └── crud/ │ │ │ │ │ ├── EmbeddedEntity.java │ │ │ │ │ └── SecondaryTableEntity.java │ │ │ │ └── kundera/ │ │ │ │ ├── client/ │ │ │ │ │ └── cassandra/ │ │ │ │ │ └── pelops/ │ │ │ │ │ └── crud/ │ │ │ │ │ ├── CassandraAuthenticationTest.java │ │ │ │ │ ├── CassandraPelopsSecondaryTableTest.java │ │ │ │ │ ├── CassandraUUIDEntity.java │ │ │ │ │ ├── EntityManagerFactoryImplTest.java │ │ │ │ │ ├── FacebookProfile.java │ │ │ │ │ ├── GuidDomainObject.java │ │ │ │ │ ├── InheritenceDomainTest.java │ │ │ │ │ ├── PersonAuth.java │ │ │ │ │ ├── SocialProfile.java │ │ │ │ │ ├── TestCassandra.java │ │ │ │ │ ├── TwitterProfile.java │ │ │ │ │ └── UserAccount.java │ │ │ │ └── query/ │ │ │ │ └── KunderaQueryTest.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ ├── persistence.xml │ │ │ └── persistence_2_0.xsd │ │ └── pom.xml │ ├── kundera-couchbase/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── couchbase/ │ │ │ ├── CouchbaseBucketUtils.java │ │ │ ├── CouchbaseClient.java │ │ │ ├── CouchbaseClientFactory.java │ │ │ ├── CouchbaseConstants.java │ │ │ ├── CouchbaseDataHandler.java │ │ │ ├── CouchbasePropertyReader.java │ │ │ ├── DefaultCouchbaseDataHandler.java │ │ │ ├── query/ │ │ │ │ ├── CouchbaseEntityReader.java │ │ │ │ └── CouchbaseQuery.java │ │ │ └── schemamanager/ │ │ │ └── CouchbaseSchemaManager.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── couchbase/ │ │ │ ├── crud/ │ │ │ │ └── CouchbaseCRUDTest.java │ │ │ ├── entities/ │ │ │ │ └── Person.java │ │ │ └── query/ │ │ │ └── CouchbaseQueryTest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ └── kunderaCouchbaseTest.xml │ ├── kundera-couchdb/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── couchdb/ │ │ │ ├── CouchDBClient.java │ │ │ ├── CouchDBClientFactory.java │ │ │ ├── CouchDBConstants.java │ │ │ ├── CouchDBDesignDocument.java │ │ │ ├── CouchDBEntityReader.java │ │ │ ├── CouchDBIdGenerator.java │ │ │ ├── CouchDBObjectMapper.java │ │ │ ├── CouchDBPropertyReader.java │ │ │ ├── CouchDBQuery.java │ │ │ ├── CouchDBQueryInterpreter.java │ │ │ ├── CouchDBSchemaManager.java │ │ │ ├── CouchDBUtils.java │ │ │ ├── CouchDbDBClientProperties.java │ │ │ └── ResultIterator.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── client/ │ │ │ │ └── couchdb/ │ │ │ │ ├── crud/ │ │ │ │ │ ├── CouchBiAssociationsTest.java │ │ │ │ │ ├── CouchDBClientTest.java │ │ │ │ │ ├── CouchDBCompositeKeyTest.java │ │ │ │ │ ├── CouchDBESAggregationTest.java │ │ │ │ │ ├── CouchDBESGroupByTest.java │ │ │ │ │ ├── CouchDBEmbeddableTest.java │ │ │ │ │ ├── CouchDBJTATest.java │ │ │ │ │ ├── CouchMTMTest.java │ │ │ │ │ ├── CouchMTOTest.java │ │ │ │ │ ├── CouchOTMTest.java │ │ │ │ │ └── CouchOTOTest.java │ │ │ │ ├── datatypes/ │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── StudentCouchDBBigDecimal.java │ │ │ │ │ │ ├── StudentCouchDBBigInteger.java │ │ │ │ │ │ ├── StudentCouchDBBooleanPrimitive.java │ │ │ │ │ │ ├── StudentCouchDBBooleanWrapper.java │ │ │ │ │ │ ├── StudentCouchDBBytePrimitive.java │ │ │ │ │ │ ├── StudentCouchDBByteWrapper.java │ │ │ │ │ │ ├── StudentCouchDBCalendar.java │ │ │ │ │ │ ├── StudentCouchDBChar.java │ │ │ │ │ │ ├── StudentCouchDBCharacter.java │ │ │ │ │ │ ├── StudentCouchDBDate.java │ │ │ │ │ │ ├── StudentCouchDBDoublePrimitive.java │ │ │ │ │ │ ├── StudentCouchDBDoubleWrapper.java │ │ │ │ │ │ ├── StudentCouchDBFloatPrimitive.java │ │ │ │ │ │ ├── StudentCouchDBFloatWrapper.java │ │ │ │ │ │ ├── StudentCouchDBInt.java │ │ │ │ │ │ ├── StudentCouchDBInteger.java │ │ │ │ │ │ ├── StudentCouchDBLongPrimitive.java │ │ │ │ │ │ ├── StudentCouchDBLongWrapper.java │ │ │ │ │ │ ├── StudentCouchDBShortPrimitive.java │ │ │ │ │ │ ├── StudentCouchDBShortWrapper.java │ │ │ │ │ │ ├── StudentCouchDBSqlDate.java │ │ │ │ │ │ ├── StudentCouchDBString.java │ │ │ │ │ │ ├── StudentCouchDBTime.java │ │ │ │ │ │ ├── StudentCouchDBTimestamp.java │ │ │ │ │ │ └── StudentCouchDBUUID.java │ │ │ │ │ └── tests/ │ │ │ │ │ ├── CouchDBBase.java │ │ │ │ │ ├── StudentCouchDBBigDecimalTest.java │ │ │ │ │ ├── StudentCouchDBBigIntegerTest.java │ │ │ │ │ ├── StudentCouchDBBooleanPrimitiveTest.java │ │ │ │ │ ├── StudentCouchDBBooleanWrapperTest.java │ │ │ │ │ ├── StudentCouchDBBytePrimitiveTest.java │ │ │ │ │ ├── StudentCouchDBByteWrapperTest.java │ │ │ │ │ ├── StudentCouchDBCharTest.java │ │ │ │ │ ├── StudentCouchDBCharacterTest.java │ │ │ │ │ ├── StudentCouchDBDateTest.java │ │ │ │ │ ├── StudentCouchDBDoublePrimitiveTest.java │ │ │ │ │ ├── StudentCouchDBDoubleWrapperTest.java │ │ │ │ │ ├── StudentCouchDBFloatPrimitiveTest.java │ │ │ │ │ ├── StudentCouchDBFloatWrapperTest.java │ │ │ │ │ ├── StudentCouchDBIntTest.java │ │ │ │ │ ├── StudentCouchDBIntegerTest.java │ │ │ │ │ ├── StudentCouchDBLongPrimitiveTest.java │ │ │ │ │ ├── StudentCouchDBLongWrapperTest.java │ │ │ │ │ ├── StudentCouchDBShortPrimitiveTest.java │ │ │ │ │ ├── StudentCouchDBShortWrapperTest.java │ │ │ │ │ ├── StudentCouchDBSqlDateTest.java │ │ │ │ │ ├── StudentCouchDBStringTest.java │ │ │ │ │ ├── StudentCouchDBTimeTest.java │ │ │ │ │ ├── StudentCouchDBTimestampTest.java │ │ │ │ │ └── StudentCouchDBUUIDTest.java │ │ │ │ ├── entities/ │ │ │ │ │ ├── AddressCouchMTM.java │ │ │ │ │ ├── AddressCouchMTO.java │ │ │ │ │ ├── AddressCouchOTM.java │ │ │ │ │ ├── AddressCouchOTO.java │ │ │ │ │ ├── CouchDBAddressJTAEntity.java │ │ │ │ │ ├── CouchDBCompoundKey.java │ │ │ │ │ ├── CouchDBEmbeddedUser.java │ │ │ │ │ ├── CouchDBPersonJTAEntity.java │ │ │ │ │ ├── CouchDBPrimeUser.java │ │ │ │ │ ├── CouchDBToken.java │ │ │ │ │ ├── CouchDBTokenClient.java │ │ │ │ │ ├── Month.java │ │ │ │ │ ├── PersonCouchDB.java │ │ │ │ │ ├── PersonCouchMTM.java │ │ │ │ │ ├── PersonCouchMTO.java │ │ │ │ │ ├── PersonCouchOTM.java │ │ │ │ │ └── PersonCouchOTO.java │ │ │ │ ├── query/ │ │ │ │ │ ├── CouchDBQueryTest.java │ │ │ │ │ └── ResultIteratorTest.java │ │ │ │ └── utils/ │ │ │ │ └── CouchDBTestUtils.java │ │ │ └── kundera/ │ │ │ └── client/ │ │ │ └── crud/ │ │ │ └── mappedsuperclass/ │ │ │ ├── CouchDBEntityWithoutFieldsTest.java │ │ │ ├── CouchDBMappedSuperClassTest.java │ │ │ ├── CreditTransaction.java │ │ │ └── DebitTransaction.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── esindexer.xml │ │ └── log4j.properties │ ├── kundera-elastic-search/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── es/ │ │ │ ├── ESClient.java │ │ │ ├── ESClientFactory.java │ │ │ ├── ESClientPropertyReader.java │ │ │ ├── ESConstants.java │ │ │ ├── ESEntityReader.java │ │ │ ├── ESFilterBuilder.java │ │ │ ├── ESQuery.java │ │ │ ├── EsIdGenerator.java │ │ │ ├── index/ │ │ │ │ └── ESIndexer.java │ │ │ └── utils/ │ │ │ └── ESResponseWrapper.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── client/ │ │ │ │ └── es/ │ │ │ │ ├── Book.java │ │ │ │ ├── CRUDTestWithRefreshedIndexes.java │ │ │ │ ├── CRUDTestWithRefreshedIndexesViaExternalProperty.java │ │ │ │ ├── ESAggregationTest.java │ │ │ │ ├── ESClientFactoryTest.java │ │ │ │ ├── ESClientPropertyReaderTest.java │ │ │ │ ├── ESClientTest.java │ │ │ │ ├── ESGroupByTest.java │ │ │ │ ├── ESNestedQueryTest.java │ │ │ │ ├── ESOrderByTest.java │ │ │ │ ├── ESQueryWithPaginationTest.java │ │ │ │ ├── PersonES.java │ │ │ │ ├── PersonESTest.java │ │ │ │ ├── WebTraffic.java │ │ │ │ ├── WebTrafficCompositeKey.java │ │ │ │ ├── WebTrafficTest.java │ │ │ │ ├── association/ │ │ │ │ │ ├── Address1M.java │ │ │ │ │ ├── AddressBiMM.java │ │ │ │ │ ├── AddressM1.java │ │ │ │ │ ├── AddressMM.java │ │ │ │ │ ├── ESAssociationTest.java │ │ │ │ │ ├── ManyToManyAssociationTest.java │ │ │ │ │ ├── Person1M.java │ │ │ │ │ ├── PersonBiMM.java │ │ │ │ │ ├── PersonM1.java │ │ │ │ │ └── PersonMM.java │ │ │ │ ├── autogeneratedid/ │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── IdAutoGenerationTest.java │ │ │ │ ├── mappedsuperclass/ │ │ │ │ │ ├── ESEntityWithoutFieldsTest.java │ │ │ │ │ └── ESMappedSuperClassTest.java │ │ │ │ └── validator/ │ │ │ │ ├── BookEntity.java │ │ │ │ └── ConstructorValidationTest.java │ │ │ └── kundera/ │ │ │ └── client/ │ │ │ └── crud/ │ │ │ └── mappedsuperclass/ │ │ │ ├── CreditTransaction.java │ │ │ └── DebitTransaction.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── esindexer.xml │ │ └── kunderaes.xml │ ├── kundera-ethereum/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── blockchain/ │ │ │ ├── entities/ │ │ │ │ ├── Block.java │ │ │ │ └── Transaction.java │ │ │ ├── ethereum/ │ │ │ │ ├── BlockchainImporter.java │ │ │ │ ├── Datasource.java │ │ │ │ ├── EtherObjectConverterUtil.java │ │ │ │ └── KunderaWeb3jClient.java │ │ │ └── util/ │ │ │ ├── EthConstants.java │ │ │ ├── KunderaPropertyBuilder.java │ │ │ └── PropertyReader.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── persistence.xml │ ├── kundera-hbase/ │ │ ├── kundera-hbase/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── hbase/ │ │ │ │ ├── HBaseClient.java │ │ │ │ ├── HBaseClientFactory.java │ │ │ │ ├── HBaseClientProperties.java │ │ │ │ ├── HBaseConstants.java │ │ │ │ ├── HBaseData.java │ │ │ │ ├── HBaseEntityReader.java │ │ │ │ ├── HBaseIdGenerator.java │ │ │ │ ├── Reader.java │ │ │ │ ├── Writer.java │ │ │ │ ├── admin/ │ │ │ │ │ ├── DataHandler.java │ │ │ │ │ └── HBaseDataHandler.java │ │ │ │ ├── config/ │ │ │ │ │ └── HBasePropertyReader.java │ │ │ │ ├── query/ │ │ │ │ │ ├── BinaryComparatorFactory.java │ │ │ │ │ ├── HBaseQuery.java │ │ │ │ │ ├── LikeComparatorFactory.java │ │ │ │ │ ├── RegexComparatorFactory.java │ │ │ │ │ ├── ResultIterator.java │ │ │ │ │ └── SingleColumnFilterFactory.java │ │ │ │ ├── schemamanager/ │ │ │ │ │ └── HBaseSchemaManager.java │ │ │ │ ├── service/ │ │ │ │ │ ├── HBaseReader.java │ │ │ │ │ └── HBaseWriter.java │ │ │ │ └── utils/ │ │ │ │ └── HBaseUtils.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ ├── client/ │ │ │ │ │ ├── hbase/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── HBaseEntity.java │ │ │ │ │ │ │ ├── HBaseUser.java │ │ │ │ │ │ │ ├── HBaseUserTest.java │ │ │ │ │ │ │ └── HbasePropertySetterTest.java │ │ │ │ │ │ ├── crud/ │ │ │ │ │ │ │ ├── BaseTest.java │ │ │ │ │ │ │ ├── Book.java │ │ │ │ │ │ │ ├── BookDetails.java │ │ │ │ │ │ │ ├── Categories.java │ │ │ │ │ │ │ ├── EmbeddedCollectionEntity.java │ │ │ │ │ │ │ ├── EmbeddedEntity.java │ │ │ │ │ │ │ ├── HBaseBatchProcessorTest.java │ │ │ │ │ │ │ ├── HBaseGroupByTest.java │ │ │ │ │ │ │ ├── HBaseIdQueryTest.java │ │ │ │ │ │ │ ├── HBaseLuceneAssociatedEntitiesTest.java │ │ │ │ │ │ │ ├── HBaseLuceneTest.java │ │ │ │ │ │ │ ├── HbaseESAggregationTest.java │ │ │ │ │ │ │ ├── HbaseSecondaryTableEntity.java │ │ │ │ │ │ │ ├── HbaseSecondaryTableTest.java │ │ │ │ │ │ │ ├── HbaseShowQueryTest.java │ │ │ │ │ │ │ ├── Human.java │ │ │ │ │ │ │ ├── HumanTest.java │ │ │ │ │ │ │ ├── HumansPrivatePhoto.java │ │ │ │ │ │ │ ├── Languages.java │ │ │ │ │ │ │ ├── LikeQueryTest.java │ │ │ │ │ │ │ ├── Month.java │ │ │ │ │ │ │ ├── PersonBatchHBaseEntity.java │ │ │ │ │ │ │ ├── PersonESIndexerHbase.java │ │ │ │ │ │ │ ├── PersonHBase.java │ │ │ │ │ │ │ ├── PersonHBaseTest.java │ │ │ │ │ │ │ ├── PersonSecondaryTableAddress.java │ │ │ │ │ │ │ ├── RegexpQueryTest.java │ │ │ │ │ │ │ ├── association/ │ │ │ │ │ │ │ │ ├── AddressOTOHbase.java │ │ │ │ │ │ │ │ ├── HBaseBiAssociationTest.java │ │ │ │ │ │ │ │ ├── HabitatMToM.java │ │ │ │ │ │ │ │ ├── HbaseAssociationTest.java │ │ │ │ │ │ │ │ ├── HbaseManyToManyTest.java │ │ │ │ │ │ │ │ ├── PersonOTOHbase.java │ │ │ │ │ │ │ │ └── PersonnelMToM.java │ │ │ │ │ │ │ ├── compositeType/ │ │ │ │ │ │ │ │ ├── HBaseCompositeTypeTest.java │ │ │ │ │ │ │ │ ├── HBaseCompoundKey.java │ │ │ │ │ │ │ │ └── HBasePrimeUser.java │ │ │ │ │ │ │ ├── datatypes/ │ │ │ │ │ │ │ │ ├── Base.java │ │ │ │ │ │ │ │ ├── StudentBase.java │ │ │ │ │ │ │ │ ├── StudentEntityDef.java │ │ │ │ │ │ │ │ ├── StudentHBase.java │ │ │ │ │ │ │ │ ├── StudentHBaseBigDecimalTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseBigIntegerTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseBooleanPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseBooleanWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseBytePrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseByteWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseCalendarTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseCharTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseCharacterTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseDateTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseDoublePrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseDoubleWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseFloatPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseFloatWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseIntTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseIntegerTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseLongPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseLongWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseShortPrimitiveTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseShortWrapperTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseSqlDateTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseStringTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseTimeTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseTimestampTest.java │ │ │ │ │ │ │ │ ├── StudentHBaseUUIDTest.java │ │ │ │ │ │ │ │ ├── ZkShutDownTest.java │ │ │ │ │ │ │ │ └── entities/ │ │ │ │ │ │ │ │ ├── StudentHBaseBigDecimal.java │ │ │ │ │ │ │ │ ├── StudentHBaseBigInteger.java │ │ │ │ │ │ │ │ ├── StudentHBaseBooleanPrimitive.java │ │ │ │ │ │ │ │ ├── StudentHBaseBooleanWrapper.java │ │ │ │ │ │ │ │ ├── StudentHBaseBytePrimitive.java │ │ │ │ │ │ │ │ ├── StudentHBaseByteWrapper.java │ │ │ │ │ │ │ │ ├── StudentHBaseCalendar.java │ │ │ │ │ │ │ │ ├── StudentHBaseChar.java │ │ │ │ │ │ │ │ ├── StudentHBaseCharacter.java │ │ │ │ │ │ │ │ ├── StudentHBaseDate.java │ │ │ │ │ │ │ │ ├── StudentHBaseDoublePrimitive.java │ │ │ │ │ │ │ │ ├── StudentHBaseDoubleWrapper.java │ │ │ │ │ │ │ │ ├── StudentHBaseFloatPrimitive.java │ │ │ │ │ │ │ │ ├── StudentHBaseFloatWrapper.java │ │ │ │ │ │ │ │ ├── StudentHBaseInt.java │ │ │ │ │ │ │ │ ├── StudentHBaseInteger.java │ │ │ │ │ │ │ │ ├── StudentHBaseLongPrimitive.java │ │ │ │ │ │ │ │ ├── StudentHBaseLongWrapper.java │ │ │ │ │ │ │ │ ├── StudentHBaseShortPrimitive.java │ │ │ │ │ │ │ │ ├── StudentHBaseShortWrapper.java │ │ │ │ │ │ │ │ ├── StudentHBaseSqlDate.java │ │ │ │ │ │ │ │ ├── StudentHBaseString.java │ │ │ │ │ │ │ │ ├── StudentHBaseTime.java │ │ │ │ │ │ │ │ ├── StudentHBaseTimestamp.java │ │ │ │ │ │ │ │ └── StudentHBaseUUID.java │ │ │ │ │ │ │ ├── embedded/ │ │ │ │ │ │ │ │ ├── EmbeddedEntityTest.java │ │ │ │ │ │ │ │ ├── NetstatData.java │ │ │ │ │ │ │ │ └── NetstatDataId.java │ │ │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ │ │ └── inheritence/ │ │ │ │ │ │ │ ├── HBaseEntityWithoutFieldsTest.java │ │ │ │ │ │ │ └── HBaseMappedSuperClassTest.java │ │ │ │ │ │ ├── generatedId/ │ │ │ │ │ │ │ ├── HBaseGeneratedIdTest.java │ │ │ │ │ │ │ └── entites/ │ │ │ │ │ │ │ ├── HBaseGeneratedIdDefault.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdStrategyAuto.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdStrategyIdentity.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdStrategySequence.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdStrategyTable.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdWithOutSequenceGenerator.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdWithOutTableGenerator.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdWithSequenceGenerator.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdWithTableGenerator.java │ │ │ │ │ │ │ └── HBaseGeneratedIdWithTableGeneratorWihtoutInit.java │ │ │ │ │ │ ├── junits/ │ │ │ │ │ │ │ └── HBaseCli.java │ │ │ │ │ │ ├── query/ │ │ │ │ │ │ │ └── LikeComparatorFactoryTest.java │ │ │ │ │ │ ├── schemaManager/ │ │ │ │ │ │ │ ├── HBaseEntityAddressUni1To1.java │ │ │ │ │ │ │ ├── HBaseEntityAddressUni1To1PK.java │ │ │ │ │ │ │ ├── HBaseEntityAddressUni1ToM.java │ │ │ │ │ │ │ ├── HBaseEntityAddressUniMTo1.java │ │ │ │ │ │ │ ├── HBaseEntityPersonUni1To1.java │ │ │ │ │ │ │ ├── HBaseEntityPersonUni1To1PK.java │ │ │ │ │ │ │ ├── HBaseEntityPersonUni1ToM.java │ │ │ │ │ │ │ ├── HBaseEntityPersonUniMto1.java │ │ │ │ │ │ │ ├── HBaseEntitySimple.java │ │ │ │ │ │ │ ├── HBaseEntitySuper.java │ │ │ │ │ │ │ ├── HBaseGeneratedIdSchemaTest.java │ │ │ │ │ │ │ ├── HBasePersonalData.java │ │ │ │ │ │ │ ├── HBaseSchemaManagerTest.java │ │ │ │ │ │ │ └── HBaseSchemaOperationTest.java │ │ │ │ │ │ ├── transaction/ │ │ │ │ │ │ │ └── HBaseTransactionTest.java │ │ │ │ │ │ └── validator/ │ │ │ │ │ │ ├── BookEntity.java │ │ │ │ │ │ └── ConstructorValidationTest.java │ │ │ │ │ ├── query/ │ │ │ │ │ │ ├── HbaseToken.java │ │ │ │ │ │ ├── HbaseTokenClient.java │ │ │ │ │ │ ├── PaginationTests.java │ │ │ │ │ │ └── ResultIteratorTest.java │ │ │ │ │ └── twitter/ │ │ │ │ │ ├── TwibaseTest.java │ │ │ │ │ ├── TwitterTestBaseHbase.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── SuperDaoHbase.java │ │ │ │ │ │ ├── TwitterHbase.java │ │ │ │ │ │ └── TwitterServiceHbase.java │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── ExternalLinkHBase.java │ │ │ │ │ │ ├── PersonalDetailHbase.java │ │ │ │ │ │ ├── PreferenceHBase.java │ │ │ │ │ │ ├── TweetHbase.java │ │ │ │ │ │ └── UserHBase.java │ │ │ │ │ └── utils/ │ │ │ │ │ └── ExampleUtilsHbase.java │ │ │ │ ├── kundera/ │ │ │ │ │ └── client/ │ │ │ │ │ └── crud/ │ │ │ │ │ ├── inheritence/ │ │ │ │ │ │ ├── FacebookProfile.java │ │ │ │ │ │ ├── GuidDomainObject.java │ │ │ │ │ │ ├── InheritenceDomainTest.java │ │ │ │ │ │ ├── SocialProfile.java │ │ │ │ │ │ ├── TwitterProfile.java │ │ │ │ │ │ └── UserAccount.java │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ ├── CreditTransaction.java │ │ │ │ │ └── DebitTransaction.java │ │ │ │ └── recommendation/ │ │ │ │ └── hbase/ │ │ │ │ └── model/ │ │ │ │ ├── BookInfo.java │ │ │ │ ├── CitySimilarity.java │ │ │ │ ├── CitySimilarityTest.java │ │ │ │ ├── UserAndPassword.java │ │ │ │ ├── UserAndPasswordTest.java │ │ │ │ └── UserInfo.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── persistence.xml │ │ │ │ └── persistence_2_0.xsd │ │ │ ├── esindexer.xml │ │ │ ├── kundera-hbase.properties │ │ │ └── log4j.properties │ │ ├── kundera-hbase-v2/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── hbase/ │ │ │ │ ├── HBaseClient.java │ │ │ │ ├── HBaseClientFactory.java │ │ │ │ ├── HBaseClientProperties.java │ │ │ │ ├── HBaseConstants.java │ │ │ │ ├── HBaseDataWrapper.java │ │ │ │ ├── HBaseEntityReader.java │ │ │ │ ├── HBaseIdGenerator.java │ │ │ │ ├── Reader.java │ │ │ │ ├── Writer.java │ │ │ │ ├── admin/ │ │ │ │ │ ├── DataHandler.java │ │ │ │ │ ├── HBaseCell.java │ │ │ │ │ ├── HBaseDataHandler.java │ │ │ │ │ └── HBaseRow.java │ │ │ │ ├── config/ │ │ │ │ │ └── HBasePropertyReader.java │ │ │ │ ├── query/ │ │ │ │ │ ├── BinaryComparatorFactory.java │ │ │ │ │ ├── HBaseQuery.java │ │ │ │ │ ├── LikeComparatorFactory.java │ │ │ │ │ ├── RegexComparatorFactory.java │ │ │ │ │ ├── ResultIterator.java │ │ │ │ │ └── SingleColumnFilterFactory.java │ │ │ │ ├── schemamanager/ │ │ │ │ │ └── HBaseSchemaManager.java │ │ │ │ ├── service/ │ │ │ │ │ ├── HBaseReader.java │ │ │ │ │ └── HBaseWriter.java │ │ │ │ └── utils/ │ │ │ │ └── HBaseUtils.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ ├── hbase/ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ ├── HBaseUser.java │ │ │ │ │ │ ├── HBaseUserTest.java │ │ │ │ │ │ └── HbasePropertySetterTest.java │ │ │ │ │ ├── crud/ │ │ │ │ │ │ ├── BasicCRUDTest.java │ │ │ │ │ │ ├── HBaseBatchProcessorTest.java │ │ │ │ │ │ ├── PersonHBase.java │ │ │ │ │ │ ├── association/ │ │ │ │ │ │ │ ├── AddressBiOTO.java │ │ │ │ │ │ │ ├── AddressUniOTO.java │ │ │ │ │ │ │ ├── HBaseBiAssociationTest.java │ │ │ │ │ │ │ ├── HBaseBiOneToOneTest.java │ │ │ │ │ │ │ ├── HBaseUniOneToOneTest.java │ │ │ │ │ │ │ ├── HabitatMToM.java │ │ │ │ │ │ │ ├── HbaseManyToManyTest.java │ │ │ │ │ │ │ ├── PersonBiOTO.java │ │ │ │ │ │ │ ├── PersonUniOTO.java │ │ │ │ │ │ │ ├── PersonnelMToM.java │ │ │ │ │ │ │ ├── SelfReferentialUserOTMTest.java │ │ │ │ │ │ │ └── UserOTM.java │ │ │ │ │ │ ├── compositetype/ │ │ │ │ │ │ │ ├── HBaseCompositeTypeTest.java │ │ │ │ │ │ │ ├── HBaseCompoundKey.java │ │ │ │ │ │ │ └── HBasePrimeUser.java │ │ │ │ │ │ ├── datatypes/ │ │ │ │ │ │ │ ├── Base.java │ │ │ │ │ │ │ ├── StudentHBaseBigDecimalTest.java │ │ │ │ │ │ │ ├── StudentHBaseBigIntegerTest.java │ │ │ │ │ │ │ ├── StudentHBaseBooleanPrimitiveTest.java │ │ │ │ │ │ │ ├── StudentHBaseBooleanWrapperTest.java │ │ │ │ │ │ │ ├── StudentHBaseBytePrimitiveTest.java │ │ │ │ │ │ │ ├── StudentHBaseByteWrapperTest.java │ │ │ │ │ │ │ ├── StudentHBaseCalendarTest.java │ │ │ │ │ │ │ ├── StudentHBaseCharTest.java │ │ │ │ │ │ │ ├── StudentHBaseCharacterTest.java │ │ │ │ │ │ │ ├── StudentHBaseDateTest.java │ │ │ │ │ │ │ ├── StudentHBaseDoublePrimitiveTest.java │ │ │ │ │ │ │ ├── StudentHBaseDoubleWrapperTest.java │ │ │ │ │ │ │ ├── StudentHBaseFloatPrimitiveTest.java │ │ │ │ │ │ │ ├── StudentHBaseFloatWrapperTest.java │ │ │ │ │ │ │ ├── StudentHBaseIntTest.java │ │ │ │ │ │ │ ├── StudentHBaseIntegerTest.java │ │ │ │ │ │ │ ├── StudentHBaseLongPrimitiveTest.java │ │ │ │ │ │ │ ├── StudentHBaseLongWrapperTest.java │ │ │ │ │ │ │ ├── StudentHBaseShortPrimitiveTest.java │ │ │ │ │ │ │ ├── StudentHBaseShortWrapperTest.java │ │ │ │ │ │ │ ├── StudentHBaseSqlDateTest.java │ │ │ │ │ │ │ ├── StudentHBaseStringTest.java │ │ │ │ │ │ │ ├── StudentHBaseTimeTest.java │ │ │ │ │ │ │ ├── StudentHBaseTimestampTest.java │ │ │ │ │ │ │ ├── StudentHBaseUUIDTest.java │ │ │ │ │ │ │ └── entities/ │ │ │ │ │ │ │ ├── StudentHBaseBigDecimal.java │ │ │ │ │ │ │ ├── StudentHBaseBigInteger.java │ │ │ │ │ │ │ ├── StudentHBaseBooleanPrimitive.java │ │ │ │ │ │ │ ├── StudentHBaseBooleanWrapper.java │ │ │ │ │ │ │ ├── StudentHBaseBytePrimitive.java │ │ │ │ │ │ │ ├── StudentHBaseByteWrapper.java │ │ │ │ │ │ │ ├── StudentHBaseCalendar.java │ │ │ │ │ │ │ ├── StudentHBaseChar.java │ │ │ │ │ │ │ ├── StudentHBaseCharacter.java │ │ │ │ │ │ │ ├── StudentHBaseDate.java │ │ │ │ │ │ │ ├── StudentHBaseDoublePrimitive.java │ │ │ │ │ │ │ ├── StudentHBaseDoubleWrapper.java │ │ │ │ │ │ │ ├── StudentHBaseFloatPrimitive.java │ │ │ │ │ │ │ ├── StudentHBaseFloatWrapper.java │ │ │ │ │ │ │ ├── StudentHBaseInt.java │ │ │ │ │ │ │ ├── StudentHBaseInteger.java │ │ │ │ │ │ │ ├── StudentHBaseLongPrimitive.java │ │ │ │ │ │ │ ├── StudentHBaseLongWrapper.java │ │ │ │ │ │ │ ├── StudentHBaseShortPrimitive.java │ │ │ │ │ │ │ ├── StudentHBaseShortWrapper.java │ │ │ │ │ │ │ ├── StudentHBaseSqlDate.java │ │ │ │ │ │ │ ├── StudentHBaseString.java │ │ │ │ │ │ │ ├── StudentHBaseTime.java │ │ │ │ │ │ │ ├── StudentHBaseTimestamp.java │ │ │ │ │ │ │ └── StudentHBaseUUID.java │ │ │ │ │ │ ├── embedded/ │ │ │ │ │ │ │ ├── Address.java │ │ │ │ │ │ │ ├── EmbeddablesBase.java │ │ │ │ │ │ │ ├── EmbeddablesCrudTest.java │ │ │ │ │ │ │ ├── EmbeddablesQueryTest.java │ │ │ │ │ │ │ ├── Fullname.java │ │ │ │ │ │ │ ├── PersonEmbed.java │ │ │ │ │ │ │ ├── PersonalDetails.java │ │ │ │ │ │ │ └── ProfessionalDetails.java │ │ │ │ │ │ ├── inheritence/ │ │ │ │ │ │ │ ├── FacebookProfile.java │ │ │ │ │ │ │ ├── GuidDomainObject.java │ │ │ │ │ │ │ ├── InheritenceDomainTest.java │ │ │ │ │ │ │ ├── SocialProfile.java │ │ │ │ │ │ │ ├── TwitterProfile.java │ │ │ │ │ │ │ └── UserAccount.java │ │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ │ └── inheritence/ │ │ │ │ │ │ ├── HBaseEntityWithoutFieldsTest.java │ │ │ │ │ │ └── HBaseMappedSuperClassTest.java │ │ │ │ │ ├── generatedId/ │ │ │ │ │ │ ├── HBaseGeneratedIdTest.java │ │ │ │ │ │ └── entites/ │ │ │ │ │ │ ├── HBaseGeneratedIdDefault.java │ │ │ │ │ │ ├── HBaseGeneratedIdStrategyAuto.java │ │ │ │ │ │ ├── HBaseGeneratedIdStrategyIdentity.java │ │ │ │ │ │ ├── HBaseGeneratedIdStrategySequence.java │ │ │ │ │ │ ├── HBaseGeneratedIdStrategyTable.java │ │ │ │ │ │ ├── HBaseGeneratedIdWithOutSequenceGenerator.java │ │ │ │ │ │ ├── HBaseGeneratedIdWithOutTableGenerator.java │ │ │ │ │ │ ├── HBaseGeneratedIdWithSequenceGenerator.java │ │ │ │ │ │ ├── HBaseGeneratedIdWithTableGenerator.java │ │ │ │ │ │ └── HBaseGeneratedIdWithTableGeneratorWihtoutInit.java │ │ │ │ │ ├── schema/ │ │ │ │ │ │ ├── HBaseSchemaGenerationTest.java │ │ │ │ │ │ ├── ProductHBase.java │ │ │ │ │ │ └── UserHBase.java │ │ │ │ │ ├── secondarytable/ │ │ │ │ │ │ ├── EmbeddedCollectionEntity.java │ │ │ │ │ │ ├── EmbeddedEntity.java │ │ │ │ │ │ ├── HbaseSecondaryTableEntity.java │ │ │ │ │ │ ├── HbaseSecondaryTableTest.java │ │ │ │ │ │ └── PersonSecondaryTableAddress.java │ │ │ │ │ ├── testingutil/ │ │ │ │ │ │ └── HBaseTestingUtils.java │ │ │ │ │ ├── transaction/ │ │ │ │ │ │ ├── HBaseTransactionTest.java │ │ │ │ │ │ └── User.java │ │ │ │ │ └── validator/ │ │ │ │ │ ├── BookEntity.java │ │ │ │ │ └── ConstructorValidationTest.java │ │ │ │ └── query/ │ │ │ │ ├── Book.java │ │ │ │ ├── BookBaseTest.java │ │ │ │ ├── HBaseESQueryTest.java │ │ │ │ ├── HBaseGroupByTest.java │ │ │ │ ├── HBaseLuceneQueryTest.java │ │ │ │ ├── HBaseParameterizedQueryTest.java │ │ │ │ ├── HBasePerson.java │ │ │ │ ├── HBaseQueryBaseTest.java │ │ │ │ ├── LikeQueryTest.java │ │ │ │ ├── RegexpQueryTest.java │ │ │ │ ├── ResultIteratorTest.java │ │ │ │ ├── Student.java │ │ │ │ └── StudentBaseTest.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── persistence.xml │ │ │ │ └── persistence_2_0.xsd │ │ │ ├── esindexer.xml │ │ │ ├── kundera-hbase.properties │ │ │ └── log4j.properties │ │ └── pom.xml │ ├── kundera-kudu/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── kudu/ │ │ │ ├── KuduDBClient.java │ │ │ ├── KuduDBClientFactory.java │ │ │ ├── KuduDBDataHandler.java │ │ │ ├── KuduDBIdGenerator.java │ │ │ ├── KuduDBPropertyReader.java │ │ │ ├── KuduDBValidationClassMapper.java │ │ │ ├── query/ │ │ │ │ ├── KuduDBEntityReader.java │ │ │ │ └── KuduDBQuery.java │ │ │ └── schemamanager/ │ │ │ └── KuduDBSchemaManager.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── kudu/ │ │ │ ├── autogeneratedid/ │ │ │ │ ├── Employee.java │ │ │ │ └── KuduIdAutoGenerationTest.java │ │ │ ├── crud/ │ │ │ │ ├── KuduCRUDTest.java │ │ │ │ └── datatypes/ │ │ │ │ ├── KuduBase.java │ │ │ │ ├── StudentKuduBytePrimitiveTest.java │ │ │ │ ├── StudentKuduByteWrapperTest.java │ │ │ │ ├── StudentKuduIntTest.java │ │ │ │ ├── StudentKuduIntegerTest.java │ │ │ │ ├── StudentKuduLongPrimitiveTest.java │ │ │ │ ├── StudentKuduLongWrapperTest.java │ │ │ │ ├── StudentKuduShortPrimitiveTest.java │ │ │ │ ├── StudentKuduShortWrapperTest.java │ │ │ │ ├── StudentKuduStringTest.java │ │ │ │ └── entities/ │ │ │ │ ├── StudentKuduBytePrimitive.java │ │ │ │ ├── StudentKuduByteWrapper.java │ │ │ │ ├── StudentKuduInt.java │ │ │ │ ├── StudentKuduInteger.java │ │ │ │ ├── StudentKuduLongPrimitive.java │ │ │ │ ├── StudentKuduLongWrapper.java │ │ │ │ ├── StudentKuduShortPrimitive.java │ │ │ │ ├── StudentKuduShortWrapper.java │ │ │ │ └── StudentKuduString.java │ │ │ ├── embeddables/ │ │ │ │ ├── Address.java │ │ │ │ ├── EmbeddablePerson.java │ │ │ │ ├── KuduEmbeddableIdTest.java │ │ │ │ ├── KuduEmbeddableTest.java │ │ │ │ ├── Metrics.java │ │ │ │ └── MetricsId.java │ │ │ ├── entities/ │ │ │ │ ├── Item.java │ │ │ │ └── Person.java │ │ │ ├── es/ │ │ │ │ └── KuduESAggregationTest.java │ │ │ └── query/ │ │ │ └── KuduQueryTest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ └── esindexer.xml │ ├── kundera-mongo/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ ├── META-INF/ │ │ │ │ └── MANIFEST.MF │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── mongodb/ │ │ │ ├── DefaultMongoDBDataHandler.java │ │ │ ├── DocumentObjectMapper.java │ │ │ ├── MongoDBClient.java │ │ │ ├── MongoDBClientFactory.java │ │ │ ├── MongoDBClientProperties.java │ │ │ ├── MongoDBConstants.java │ │ │ ├── MongoDBDataHandler.java │ │ │ ├── MongoDBIdGenerator.java │ │ │ ├── MongoEntityReader.java │ │ │ ├── config/ │ │ │ │ └── MongoDBPropertyReader.java │ │ │ ├── index/ │ │ │ │ └── IndexType.java │ │ │ ├── query/ │ │ │ │ ├── MongoDBQuery.java │ │ │ │ ├── ResultIterator.java │ │ │ │ ├── gfs/ │ │ │ │ │ └── KunderaGridFS.java │ │ │ │ └── gis/ │ │ │ │ ├── CircleQueryImpl.java │ │ │ │ ├── EnvelopeQueryImpl.java │ │ │ │ ├── GeospatialQueryFactory.java │ │ │ │ ├── NearQueryImpl.java │ │ │ │ ├── PolygonQueryImpl.java │ │ │ │ └── TriangleQueryImpl.java │ │ │ ├── schemamanager/ │ │ │ │ └── MongoDBSchemaManager.java │ │ │ └── utils/ │ │ │ └── MongoDBUtils.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── client/ │ │ │ │ ├── crud/ │ │ │ │ │ ├── AddressMTM.java │ │ │ │ │ ├── AddressMongoMTO.java │ │ │ │ │ ├── ArticleGFSTest.java │ │ │ │ │ ├── ArticleMongoTest.java │ │ │ │ │ ├── BaseTest.java │ │ │ │ │ ├── CappedCollectionTest.java │ │ │ │ │ ├── CollecteTest.java │ │ │ │ │ ├── EmbeddableIdTest.java │ │ │ │ │ ├── EmbeddableUserTest.java │ │ │ │ │ ├── EmbeddedEntity.java │ │ │ │ │ ├── MongoAuthenticationTest.java │ │ │ │ │ ├── MongoBatchProcessorTest.java │ │ │ │ │ ├── MongoBiAssociationTest.java │ │ │ │ │ ├── MongoDBQueryOnIdTest.java │ │ │ │ │ ├── MongoLuceneTest.java │ │ │ │ │ ├── MongoMTOTest.java │ │ │ │ │ ├── MongoSecondaryTableTest.java │ │ │ │ │ ├── MongoUniMTMTest.java │ │ │ │ │ ├── PersonMTM.java │ │ │ │ │ ├── PersonMongoNameTest.java │ │ │ │ │ ├── PersonMongoTest.java │ │ │ │ │ ├── PersonnelEmbeddedTest.java │ │ │ │ │ ├── ResultIteratorTest.java │ │ │ │ │ ├── SecondaryTableEntity.java │ │ │ │ │ ├── SelfReferentialUserOTMTest.java │ │ │ │ │ ├── UserOTM.java │ │ │ │ │ ├── UserRoleTest.java │ │ │ │ │ ├── autogeneratedid/ │ │ │ │ │ │ ├── AutoGeneratedUser.java │ │ │ │ │ │ ├── Cubicle.java │ │ │ │ │ │ ├── Document.java │ │ │ │ │ │ ├── EmployeeCubicle.java │ │ │ │ │ │ ├── EmployeeCubicleTest.java │ │ │ │ │ │ ├── OneToManyAutoGenerationTest.java │ │ │ │ │ │ ├── Product.java │ │ │ │ │ │ ├── ProductEcosystemMap.java │ │ │ │ │ │ └── ProductEcosystemMapTest.java │ │ │ │ │ ├── compositeType/ │ │ │ │ │ │ ├── MongoCompositeTypeTest.java │ │ │ │ │ │ ├── MongoCompoundKey.java │ │ │ │ │ │ ├── MongoPrimeUser.java │ │ │ │ │ │ └── association/ │ │ │ │ │ │ ├── UserInfo.java │ │ │ │ │ │ └── UserInfoTest.java │ │ │ │ │ ├── datatypes/ │ │ │ │ │ │ ├── MongoBase.java │ │ │ │ │ │ ├── StudentEntityDef.java │ │ │ │ │ │ ├── StudentMongo.java │ │ │ │ │ │ ├── StudentMongoBase.java │ │ │ │ │ │ ├── StudentMongoBigDecimalTest.java │ │ │ │ │ │ ├── StudentMongoBigIntegerTest.java │ │ │ │ │ │ ├── StudentMongoBooleanPrimitiveTest.java │ │ │ │ │ │ ├── StudentMongoBooleanWrapperTest.java │ │ │ │ │ │ ├── StudentMongoBytePrimitiveTest.java │ │ │ │ │ │ ├── StudentMongoByteWrapperTest.java │ │ │ │ │ │ ├── StudentMongoCalendarTest.java │ │ │ │ │ │ ├── StudentMongoCharTest.java │ │ │ │ │ │ ├── StudentMongoCharacterTest.java │ │ │ │ │ │ ├── StudentMongoDateTest.java │ │ │ │ │ │ ├── StudentMongoDoublePrimitiveTest.java │ │ │ │ │ │ ├── StudentMongoDoubleWrapperTest.java │ │ │ │ │ │ ├── StudentMongoFloatPrimitiveTest.java │ │ │ │ │ │ ├── StudentMongoFloatWrapperTest.java │ │ │ │ │ │ ├── StudentMongoIntTest.java │ │ │ │ │ │ ├── StudentMongoIntegerTest.java │ │ │ │ │ │ ├── StudentMongoLongPrimitiveTest.java │ │ │ │ │ │ ├── StudentMongoLongWrapperTest.java │ │ │ │ │ │ ├── StudentMongoShortPrimitiveTest.java │ │ │ │ │ │ ├── StudentMongoShortWrapperTest.java │ │ │ │ │ │ ├── StudentMongoSqlDateTest.java │ │ │ │ │ │ ├── StudentMongoStringTest.java │ │ │ │ │ │ ├── StudentMongoTest.java │ │ │ │ │ │ ├── StudentMongoTimeTest.java │ │ │ │ │ │ ├── StudentMongoTimestampTest.java │ │ │ │ │ │ ├── StudentMongoUUIDTest.java │ │ │ │ │ │ └── entities/ │ │ │ │ │ │ ├── Collecte.java │ │ │ │ │ │ ├── Photoo.java │ │ │ │ │ │ ├── StudentMongoBigDecimal.java │ │ │ │ │ │ ├── StudentMongoBigInteger.java │ │ │ │ │ │ ├── StudentMongoBooleanPrimitive.java │ │ │ │ │ │ ├── StudentMongoBooleanWrapper.java │ │ │ │ │ │ ├── StudentMongoBytePrimitive.java │ │ │ │ │ │ ├── StudentMongoByteWrapper.java │ │ │ │ │ │ ├── StudentMongoCalendar.java │ │ │ │ │ │ ├── StudentMongoChar.java │ │ │ │ │ │ ├── StudentMongoCharacter.java │ │ │ │ │ │ ├── StudentMongoDate.java │ │ │ │ │ │ ├── StudentMongoDoublePrimitive.java │ │ │ │ │ │ ├── StudentMongoDoubleWrapper.java │ │ │ │ │ │ ├── StudentMongoFloatPrimitive.java │ │ │ │ │ │ ├── StudentMongoFloatWrapper.java │ │ │ │ │ │ ├── StudentMongoInt.java │ │ │ │ │ │ ├── StudentMongoInteger.java │ │ │ │ │ │ ├── StudentMongoLongPrimitive.java │ │ │ │ │ │ ├── StudentMongoLongWrapper.java │ │ │ │ │ │ ├── StudentMongoShortPrimitive.java │ │ │ │ │ │ ├── StudentMongoShortWrapper.java │ │ │ │ │ │ ├── StudentMongoSqlDate.java │ │ │ │ │ │ ├── StudentMongoString.java │ │ │ │ │ │ ├── StudentMongoTime.java │ │ │ │ │ │ ├── StudentMongoTimestamp.java │ │ │ │ │ │ └── StudentMongoUUID.java │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── AppUser.java │ │ │ │ │ │ ├── ArticleDetails.java │ │ │ │ │ │ ├── ArticleGFS.java │ │ │ │ │ │ ├── ArticleMTO.java │ │ │ │ │ │ ├── ArticleMongo.java │ │ │ │ │ │ ├── CompositeId.java │ │ │ │ │ │ ├── CompositeUser.java │ │ │ │ │ │ ├── Day.java │ │ │ │ │ │ ├── MongoDBCappedEntity.java │ │ │ │ │ │ ├── MongoToken.java │ │ │ │ │ │ ├── MongoTokenClient.java │ │ │ │ │ │ ├── PersonBatchMongoEntity.java │ │ │ │ │ │ ├── PersonMongo.java │ │ │ │ │ │ ├── PersonMongoEmptyTableName.java │ │ │ │ │ │ ├── PersonMongoMTO.java │ │ │ │ │ │ ├── PersonMongoNameAnnotation.java │ │ │ │ │ │ ├── PersonalDetailEmbedded.java │ │ │ │ │ │ ├── PersonnelEmbedded.java │ │ │ │ │ │ ├── PhoneDirectory.java │ │ │ │ │ │ └── UserInformation.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ ├── EntityEventDispatcherTest.java │ │ │ │ │ │ ├── PersonEventDispatch.java │ │ │ │ │ │ └── PersonHandler.java │ │ │ │ │ ├── gfs/ │ │ │ │ │ │ ├── GFSUser.java │ │ │ │ │ │ └── GridFSTest.java │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ └── inheritence/ │ │ │ │ │ ├── MongoEntityWithoutFieldsTest.java │ │ │ │ │ └── MongoMappedSuperClassTest.java │ │ │ │ ├── esindexer/ │ │ │ │ │ ├── MongoESAggregationTest.java │ │ │ │ │ ├── MongoESGroupByTest.java │ │ │ │ │ └── MongoESOrderByTest.java │ │ │ │ ├── generatedId/ │ │ │ │ │ ├── MongoGeneratedIdTest.java │ │ │ │ │ └── entites/ │ │ │ │ │ ├── MongoGeneratedIdDefault.java │ │ │ │ │ ├── MongoGeneratedIdStrategyAuto.java │ │ │ │ │ ├── MongoGeneratedIdStrategyIdentity.java │ │ │ │ │ ├── MongoGeneratedIdStrategySequence.java │ │ │ │ │ ├── MongoGeneratedIdStrategyTable.java │ │ │ │ │ ├── MongoGeneratedIdWithOutSequenceGenerator.java │ │ │ │ │ ├── MongoGeneratedIdWithOutTableGenerator.java │ │ │ │ │ ├── MongoGeneratedIdWithSequenceGenerator.java │ │ │ │ │ └── MongoGeneratedIdWithTableGenerator.java │ │ │ │ ├── gis/ │ │ │ │ │ ├── MongoGISTest.java │ │ │ │ │ ├── Person.java │ │ │ │ │ ├── PersonGISDao.java │ │ │ │ │ └── Vehicle.java │ │ │ │ ├── mongodb/ │ │ │ │ │ ├── MongoDBAddressConfigurationValidationTest.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── MongoDBPropertyReaderTest.java │ │ │ │ │ │ ├── MongoDBShowQueryTest.java │ │ │ │ │ │ ├── MongoUser.java │ │ │ │ │ │ ├── MongoUserTest.java │ │ │ │ │ │ └── OperationLevelPropertiesTest.java │ │ │ │ │ ├── index/ │ │ │ │ │ │ ├── Book.java │ │ │ │ │ │ ├── IndexTypeTest.java │ │ │ │ │ │ └── UniqueIndexTest.java │ │ │ │ │ ├── schemamanager/ │ │ │ │ │ │ ├── Location.java │ │ │ │ │ │ ├── MongoDBEmbeddedEntity.java │ │ │ │ │ │ ├── MongoDBEntitySimple.java │ │ │ │ │ │ ├── MongoDBSchemaManagerTest.java │ │ │ │ │ │ └── MongoGFSBookEntity.java │ │ │ │ │ └── validator/ │ │ │ │ │ ├── BookEntity.java │ │ │ │ │ └── ConstructorValidationTest.java │ │ │ │ ├── twitter/ │ │ │ │ │ ├── TwingoTest.java │ │ │ │ │ ├── TwitterTestBaseMongo.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── SuperDao.java │ │ │ │ │ │ ├── Twitter.java │ │ │ │ │ │ └── TwitterService.java │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── ExternalLinkMongo.java │ │ │ │ │ │ ├── PersonalDetailMongo.java │ │ │ │ │ │ ├── PreferenceMongo.java │ │ │ │ │ │ ├── RoleMongo.java │ │ │ │ │ │ ├── TweetMongo.java │ │ │ │ │ │ ├── User.java │ │ │ │ │ │ └── UserMongo.java │ │ │ │ │ └── utils/ │ │ │ │ │ └── ExampleUtilsMongo.java │ │ │ │ └── utils/ │ │ │ │ └── MongoUtils.java │ │ │ └── kundera/ │ │ │ └── client/ │ │ │ ├── crud/ │ │ │ │ ├── inheritence/ │ │ │ │ │ ├── AbstractClassEventEntity.java │ │ │ │ │ ├── AbstractEntityEventListenerTest.java │ │ │ │ │ ├── EventEntity.java │ │ │ │ │ ├── FacebookProfile.java │ │ │ │ │ ├── GuidDomainObject.java │ │ │ │ │ ├── InheritenceDomainTest.java │ │ │ │ │ ├── MappedSuperClassEventEntity.java │ │ │ │ │ ├── SocialProfile.java │ │ │ │ │ ├── TwitterProfile.java │ │ │ │ │ └── UserAccount.java │ │ │ │ └── mappedsuperclass/ │ │ │ │ ├── CreditTransaction.java │ │ │ │ └── DebitTransaction.java │ │ │ └── mongo/ │ │ │ ├── MongoDBConfigurationTest.java │ │ │ └── mappedsuperclass/ │ │ │ ├── Ledger.java │ │ │ └── Transaction.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ ├── persistence.xml │ │ │ └── persistence_2_0.xsd │ │ ├── esindexer.xml │ │ ├── kundera-mongo.properties │ │ ├── kunderaMongoTest.xml │ │ └── log4j.properties │ ├── kundera-neo4j/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── neo4j/ │ │ │ ├── GraphEntityMapper.java │ │ │ ├── Neo4JClient.java │ │ │ ├── Neo4JClientBase.java │ │ │ ├── Neo4JClientFactory.java │ │ │ ├── Neo4JEntityReader.java │ │ │ ├── Neo4JTransaction.java │ │ │ ├── config/ │ │ │ │ └── Neo4JPropertyReader.java │ │ │ ├── index/ │ │ │ │ └── Neo4JIndexManager.java │ │ │ └── query/ │ │ │ ├── Neo4JLuceneQuery.java │ │ │ ├── Neo4JNativeQuery.java │ │ │ ├── Neo4JNativeQueryFactory.java │ │ │ ├── Neo4JQuery.java │ │ │ └── Neo4JQueryType.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── neo4j/ │ │ │ ├── GraphEntityMapperTest.java │ │ │ ├── Neo4JClientFactoryTest.java │ │ │ ├── Neo4JClientTest.java │ │ │ └── imdb/ │ │ │ ├── Actor.java │ │ │ ├── ActorWithMultipleRelation.java │ │ │ ├── ActorWithMultipleRelationTest.java │ │ │ ├── ArchivedMovie.java │ │ │ ├── IMDBBatchInsertionTest.java │ │ │ ├── IMDBCRUDTest.java │ │ │ ├── IMDBJPAQueriesTest.java │ │ │ ├── IMDBMapMetamodelTest.java │ │ │ ├── IMDBNativeLuceneQueryTest.java │ │ │ ├── IMDBTestBase.java │ │ │ ├── IMDBTransactionTest.java │ │ │ ├── LatestMovie.java │ │ │ ├── Movie.java │ │ │ ├── NewRole.java │ │ │ ├── OldRole.java │ │ │ ├── Role.java │ │ │ ├── SimpleCRUDTest.java │ │ │ ├── composite/ │ │ │ │ ├── ActorComposite.java │ │ │ │ ├── ActorId.java │ │ │ │ ├── IMDBCompositeKeyTest.java │ │ │ │ ├── MovieComposite.java │ │ │ │ ├── MovieId.java │ │ │ │ ├── RoleComposite.java │ │ │ │ └── RoleId.java │ │ │ └── datatype/ │ │ │ ├── ActorAllDataType.java │ │ │ ├── IMDBAllDataTypeTest.java │ │ │ ├── MovieAllDataType.java │ │ │ └── RoleAllDataType.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ └── kunderaNeo4JTest.xml │ ├── kundera-oracle-nosql/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── oraclenosql/ │ │ │ ├── NoSqlDBUtils.java │ │ │ ├── OracleNOSQLConstants.java │ │ │ ├── OracleNoSQLClient.java │ │ │ ├── OracleNoSQLClientFactory.java │ │ │ ├── OracleNoSQLDataHandler.java │ │ │ ├── OracleNoSQLEntityReader.java │ │ │ ├── config/ │ │ │ │ ├── OracleNoSQLClientProperties.java │ │ │ │ └── OracleNoSQLPropertyReader.java │ │ │ ├── index/ │ │ │ │ └── OracleNoSQLInvertedIndexer.java │ │ │ ├── query/ │ │ │ │ ├── OracleNoSQLQuery.java │ │ │ │ └── OracleNoSQLQueryInterpreter.java │ │ │ ├── schemamanager/ │ │ │ │ ├── OracleNoSQLSchemaManager.java │ │ │ │ └── OracleNoSQLValidationClassMapper.java │ │ │ └── server/ │ │ │ ├── OracleNoSQLHost.java │ │ │ └── OracleNoSQLHostConfiguration.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── client/ │ │ │ │ └── oraclenosql/ │ │ │ │ ├── OracleEntityTransactionTest.java │ │ │ │ ├── OracleNoSQLAssociationTest.java │ │ │ │ ├── OracleNoSQLClientFactoryTest.java │ │ │ │ ├── OracleNoSQLClientTest.java │ │ │ │ ├── OracleNoSQLEmbeddableTest.java │ │ │ │ ├── OracleNoSQLLOBTest.java │ │ │ │ ├── OracleNoSQLMinorKeyAllDataTypeTest.java │ │ │ │ ├── OracleNoSQLPropertySetterTest.java │ │ │ │ ├── OracleNoSQLSingleEntityTest.java │ │ │ │ ├── OracleNoSQLTestBase.java │ │ │ │ ├── OracleNosqlShowQueryTest.java │ │ │ │ ├── batch/ │ │ │ │ │ ├── AddressBatchOracleNosql.java │ │ │ │ │ ├── OracleNosqlBatchProcessorMixedTest.java │ │ │ │ │ ├── OracleNosqlBatchProcessorTest.java │ │ │ │ │ ├── PersonBatchOracleNosql.java │ │ │ │ │ └── PersonBatchOracleNosqlEntity.java │ │ │ │ ├── crud/ │ │ │ │ │ ├── OracleNoSqlESAggregationTest.java │ │ │ │ │ ├── OracleNoSqlESGroupByTest.java │ │ │ │ │ ├── OracleNoSqlLuceneTest.java │ │ │ │ │ ├── OracleNoSqlMTMTest.java │ │ │ │ │ ├── OracleNoSqlMTOTest.java │ │ │ │ │ ├── OracleNoSqlOTMTest.java │ │ │ │ │ └── OracleNoSqlOTOTest.java │ │ │ │ ├── datatypes/ │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── StudentOracleNoSQLChar.java │ │ │ │ │ │ ├── StudentOracleNoSQLCharacter.java │ │ │ │ │ │ ├── StudentOracleNoSQLDate.java │ │ │ │ │ │ ├── StudentOracleNoSQLDoublePrimitive.java │ │ │ │ │ │ ├── StudentOracleNoSQLDoubleWrapper.java │ │ │ │ │ │ ├── StudentOracleNoSQLFloatPrimitive.java │ │ │ │ │ │ ├── StudentOracleNoSQLFloatWrapper.java │ │ │ │ │ │ ├── StudentOracleNoSQLInt.java │ │ │ │ │ │ ├── StudentOracleNoSQLInteger.java │ │ │ │ │ │ ├── StudentOracleNoSQLLongPrimitive.java │ │ │ │ │ │ ├── StudentOracleNoSQLLongWrapper.java │ │ │ │ │ │ ├── StudentOracleNoSQLSqlDate.java │ │ │ │ │ │ └── StudentOracleNoSQLString.java │ │ │ │ │ └── tests/ │ │ │ │ │ ├── OracleNoSQLBase.java │ │ │ │ │ ├── StudentOracleNoSQLCharTest.java │ │ │ │ │ ├── StudentOracleNoSQLCharacterTest.java │ │ │ │ │ ├── StudentOracleNoSQLDateTest.java │ │ │ │ │ ├── StudentOracleNoSQLDoublePrimitiveTest.java │ │ │ │ │ ├── StudentOracleNoSQLDoubleWrapperTest.java │ │ │ │ │ ├── StudentOracleNoSQLFloatPrimitiveTest.java │ │ │ │ │ ├── StudentOracleNoSQLFloatWrapperTest.java │ │ │ │ │ ├── StudentOracleNoSQLIntTest.java │ │ │ │ │ ├── StudentOracleNoSQLIntegerTest.java │ │ │ │ │ ├── StudentOracleNoSQLLongPrimitiveTest.java │ │ │ │ │ ├── StudentOracleNoSQLLongWrapperTest.java │ │ │ │ │ ├── StudentOracleNoSQLSqlDateTest.java │ │ │ │ │ └── StudentOracleNoSQLStringTest.java │ │ │ │ ├── entities/ │ │ │ │ │ ├── AddressOTOOracleNoSQL.java │ │ │ │ │ ├── AddressOracleNoSqlMTM.java │ │ │ │ │ ├── AddressOracleNoSqlMTO.java │ │ │ │ │ ├── AddressOracleNoSqlOTM.java │ │ │ │ │ ├── AddressOracleNoSqlOTO.java │ │ │ │ │ ├── Month.java │ │ │ │ │ ├── Office.java │ │ │ │ │ ├── OracleNoSqlAddressJTAEntity.java │ │ │ │ │ ├── OracleNoSqlCompoundKey.java │ │ │ │ │ ├── OracleNoSqlEmbeddedUser.java │ │ │ │ │ ├── OracleNoSqlPersonJTAEntity.java │ │ │ │ │ ├── OracleNoSqlPrimeUser.java │ │ │ │ │ ├── OracleNoSqlToken.java │ │ │ │ │ ├── OracleNoSqlTokenClient.java │ │ │ │ │ ├── PersonEmbeddedKVStore.java │ │ │ │ │ ├── PersonKVStore.java │ │ │ │ │ ├── PersonOTOOracleNoSQL.java │ │ │ │ │ ├── PersonOracleNoSQLAllDataType.java │ │ │ │ │ ├── PersonOracleNoSql.java │ │ │ │ │ ├── PersonOracleNoSqlMTM.java │ │ │ │ │ ├── PersonOracleNoSqlMTO.java │ │ │ │ │ ├── PersonOracleNoSqlOTM.java │ │ │ │ │ ├── PersonOracleNoSqlOTO.java │ │ │ │ │ ├── UserInformation.java │ │ │ │ │ └── UserProfile.java │ │ │ │ └── schemamanager/ │ │ │ │ ├── OracleNoSQLSchemaGenerationTest.java │ │ │ │ ├── OracleNoSQLUser.java │ │ │ │ ├── OracleNoSQSchemaOperationTest.java │ │ │ │ └── UserDetails.java │ │ │ └── kundera/ │ │ │ └── client/ │ │ │ └── crud/ │ │ │ └── mappedsuperclass/ │ │ │ ├── CreditTransaction.java │ │ │ └── DebitTransaction.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── esindexer.xml │ │ ├── kvstoreSecurityConfig.xml │ │ └── oraclenosql_script │ ├── kundera-rdbms/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── rdbms/ │ │ │ ├── HibernateClient.java │ │ │ ├── HibernateUtils.java │ │ │ ├── RDBMSClientFactory.java │ │ │ ├── RDBMSPropertyReader.java │ │ │ └── query/ │ │ │ ├── RDBMSEntityReader.java │ │ │ ├── RDBMSQuery.java │ │ │ └── ResultIterator.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── client/ │ │ │ │ ├── crud/ │ │ │ │ │ ├── BaseTest.java │ │ │ │ │ ├── PersonRdbmsTest.java │ │ │ │ │ ├── RDBMSCli.java │ │ │ │ │ ├── RDBMSMTMEagerTest.java │ │ │ │ │ ├── RDBMSMTMLazyTest.java │ │ │ │ │ ├── RDBMSMTOEagerTest.java │ │ │ │ │ ├── RDBMSMTOLazyTest.java │ │ │ │ │ ├── RDBMSMappedSuperClassTest.java │ │ │ │ │ ├── RDBMSOTMEagerTest.java │ │ │ │ │ ├── RDBMSOTMLazyTest.java │ │ │ │ │ ├── RDBMSOTOEagerTest.java │ │ │ │ │ ├── RDBMSOTOLazyTest.java │ │ │ │ │ ├── RdbmsLuceneTest.java │ │ │ │ │ ├── ResultIteratorTest.java │ │ │ │ │ ├── compositeType/ │ │ │ │ │ │ ├── RdbmsCompositeTypeTest.java │ │ │ │ │ │ ├── RdbmsCompoundKey.java │ │ │ │ │ │ └── RdbmsPrimeUser.java │ │ │ │ │ ├── datatypes/ │ │ │ │ │ │ ├── RdbmsBase.java │ │ │ │ │ │ ├── StudentBase.java │ │ │ │ │ │ ├── StudentEntityDef.java │ │ │ │ │ │ ├── StudentRdbms.java │ │ │ │ │ │ ├── StudentRdbmsBigDecimalTest.java │ │ │ │ │ │ ├── StudentRdbmsBigIntegerTest.java │ │ │ │ │ │ ├── StudentRdbmsBooleanPrimitiveTest.java │ │ │ │ │ │ ├── StudentRdbmsBooleanWrapperTest.java │ │ │ │ │ │ ├── StudentRdbmsBytePrimitiveTest.java │ │ │ │ │ │ ├── StudentRdbmsByteWrapperTest.java │ │ │ │ │ │ ├── StudentRdbmsCharTest.java │ │ │ │ │ │ ├── StudentRdbmsCharacterTest.java │ │ │ │ │ │ ├── StudentRdbmsDateTest.java │ │ │ │ │ │ ├── StudentRdbmsDoublePrimitiveTest.java │ │ │ │ │ │ ├── StudentRdbmsDoubleWrapperTest.java │ │ │ │ │ │ ├── StudentRdbmsIntTest.java │ │ │ │ │ │ ├── StudentRdbmsIntegerTest.java │ │ │ │ │ │ ├── StudentRdbmsLongPrimitiveTest.java │ │ │ │ │ │ ├── StudentRdbmsLongWrapperTest.java │ │ │ │ │ │ ├── StudentRdbmsShortPrimitiveTest.java │ │ │ │ │ │ ├── StudentRdbmsShortWrapperTest.java │ │ │ │ │ │ ├── StudentRdbmsSqlDateTest.java │ │ │ │ │ │ ├── StudentRdbmsStringTest.java │ │ │ │ │ │ ├── StudentRdbmsTest.java │ │ │ │ │ │ ├── StudentRdbmsTimeTest.java │ │ │ │ │ │ ├── StudentRdbmsTimestampTest.java │ │ │ │ │ │ └── entities/ │ │ │ │ │ │ ├── StudentBigDecimal.java │ │ │ │ │ │ ├── StudentBigInteger.java │ │ │ │ │ │ ├── StudentBooleanPrimitive.java │ │ │ │ │ │ ├── StudentBooleanWrapper.java │ │ │ │ │ │ ├── StudentBytePrimitive.java │ │ │ │ │ │ ├── StudentByteWrapper.java │ │ │ │ │ │ ├── StudentCalendar.java │ │ │ │ │ │ ├── StudentChar.java │ │ │ │ │ │ ├── StudentCharacter.java │ │ │ │ │ │ ├── StudentDate.java │ │ │ │ │ │ ├── StudentDoublePrimitive.java │ │ │ │ │ │ ├── StudentDoubleWrapper.java │ │ │ │ │ │ ├── StudentFloatPrimitive.java │ │ │ │ │ │ ├── StudentFloatWrapper.java │ │ │ │ │ │ ├── StudentInt.java │ │ │ │ │ │ ├── StudentInteger.java │ │ │ │ │ │ ├── StudentLongPrimitive.java │ │ │ │ │ │ ├── StudentLongWrapper.java │ │ │ │ │ │ ├── StudentShortPrimitive.java │ │ │ │ │ │ ├── StudentShortWrapper.java │ │ │ │ │ │ ├── StudentSqlDate.java │ │ │ │ │ │ ├── StudentString.java │ │ │ │ │ │ ├── StudentTime.java │ │ │ │ │ │ ├── StudentTimestamp.java │ │ │ │ │ │ └── StudentUUID.java │ │ │ │ │ ├── entities/ │ │ │ │ │ │ ├── AddressRDBMSMTM.java │ │ │ │ │ │ ├── AddressRDBMSMTO.java │ │ │ │ │ │ ├── AddressRDBMSOTM.java │ │ │ │ │ │ ├── AddressRDBMSOTO.java │ │ │ │ │ │ ├── PersonEagerRDBMSMTM.java │ │ │ │ │ │ ├── PersonEagerRDBMSMTO.java │ │ │ │ │ │ ├── PersonEagerRDBMSOTM.java │ │ │ │ │ │ ├── PersonEagerRDBMSOTO.java │ │ │ │ │ │ ├── PersonLazyRDBMSMTM.java │ │ │ │ │ │ ├── PersonLazyRDBMSMTO.java │ │ │ │ │ │ ├── PersonLazyRDBMSOTM.java │ │ │ │ │ │ ├── PersonLazyRDBMSOTO.java │ │ │ │ │ │ ├── PersonRDBMS.java │ │ │ │ │ │ ├── RDBMSToken.java │ │ │ │ │ │ └── RDBMSTokenClient.java │ │ │ │ │ ├── generatedId/ │ │ │ │ │ │ ├── AddressGeneratedId.java │ │ │ │ │ │ ├── GeneratedIdTest.java │ │ │ │ │ │ └── UserGeneratedId.java │ │ │ │ │ └── mappedsuperclass/ │ │ │ │ │ └── inheritence/ │ │ │ │ │ └── RdbmsEntityWithoutFieldsTest.java │ │ │ │ └── twitter/ │ │ │ │ ├── TweetRDBMSTest.java │ │ │ │ ├── TwitterTestBaseRDBMS.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── SuperDao.java │ │ │ │ │ ├── Twitter.java │ │ │ │ │ └── TwitterService.java │ │ │ │ ├── entities/ │ │ │ │ │ ├── ExternalLinkRDBMS.java │ │ │ │ │ ├── PersonalDetailRDBMS.java │ │ │ │ │ ├── PreferenceRDBMS.java │ │ │ │ │ ├── TweetRDBMS.java │ │ │ │ │ └── UserRDBMS.java │ │ │ │ └── utils/ │ │ │ │ └── ExampleUtilsMongo.java │ │ │ └── kundera/ │ │ │ └── client/ │ │ │ └── crud/ │ │ │ └── mappedsuperclass/ │ │ │ ├── AbstractTransaction.java │ │ │ ├── MappedSuperClassBase.java │ │ │ ├── RDBMSCreditTransaction.java │ │ │ ├── RDBMSDebitTransaction.java │ │ │ ├── Status.java │ │ │ └── Transaction.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── hibernate.properties │ │ └── log4j.properties │ ├── kundera-redis/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── redis/ │ │ │ ├── RedisClient.java │ │ │ ├── RedisClientFactory.java │ │ │ ├── RedisEntityReader.java │ │ │ ├── RedisIdGenerator.java │ │ │ ├── RedisIndexer.java │ │ │ ├── RedisPropertyReader.java │ │ │ ├── RedisQuery.java │ │ │ ├── RedisQueryInterpreter.java │ │ │ └── RedisTransaction.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ ├── client/ │ │ │ │ ├── RedisAssociationTest.java │ │ │ │ ├── RedisAssociationTestMTM.java │ │ │ │ ├── RedisAssociationTestMTO.java │ │ │ │ ├── RedisClientFactoryTest.java │ │ │ │ ├── RedisClientTest.java │ │ │ │ ├── RedisCompositeKeyTest.java │ │ │ │ ├── RedisESAggregationTest.java │ │ │ │ ├── RedisESGroupByTest.java │ │ │ │ ├── RedisESIndexerTest.java │ │ │ │ ├── RedisESOrderByTest.java │ │ │ │ ├── RedisEmbeddableTest.java │ │ │ │ ├── RedisLuceneTest.java │ │ │ │ ├── RedisMappedSuperClassTest.java │ │ │ │ ├── RedisQueryTest.java │ │ │ │ ├── RedisShowQueryTest.java │ │ │ │ ├── RedisTransactionTest.java │ │ │ │ ├── entities/ │ │ │ │ │ ├── AddressMTMRedis.java │ │ │ │ │ ├── AddressMTORedis.java │ │ │ │ │ ├── AddressOTORedis.java │ │ │ │ │ ├── Month.java │ │ │ │ │ ├── PersonMTMRedis.java │ │ │ │ │ ├── PersonMTORedis.java │ │ │ │ │ ├── PersonOTORedis.java │ │ │ │ │ ├── PersonRedis.java │ │ │ │ │ ├── RedisCompoundKey.java │ │ │ │ │ ├── RedisEmbeddedUser.java │ │ │ │ │ ├── RedisPrimeUser.java │ │ │ │ │ └── UserInformation.java │ │ │ │ ├── generatedId/ │ │ │ │ │ ├── RedisGeneratedIdTest.java │ │ │ │ │ └── entites/ │ │ │ │ │ ├── RedisGeneratedIdDefault.java │ │ │ │ │ ├── RedisGeneratedIdStrategyAuto.java │ │ │ │ │ ├── RedisGeneratedIdStrategyIdentity.java │ │ │ │ │ ├── RedisGeneratedIdStrategySequence.java │ │ │ │ │ ├── RedisGeneratedIdStrategyTable.java │ │ │ │ │ ├── RedisGeneratedIdWithOutSequenceGenerator.java │ │ │ │ │ ├── RedisGeneratedIdWithOutTableGenerator.java │ │ │ │ │ ├── RedisGeneratedIdWithSequenceGenerator.java │ │ │ │ │ └── RedisGeneratedIdWithTableGenerator.java │ │ │ │ └── validation/ │ │ │ │ ├── BookEntity.java │ │ │ │ └── ConstructorValidationTest.java │ │ │ └── kundera/ │ │ │ └── client/ │ │ │ ├── crud/ │ │ │ │ └── mappedsuperclass/ │ │ │ │ ├── CreditTransaction.java │ │ │ │ └── DebitTransaction.java │ │ │ └── mappedsuperclass/ │ │ │ └── inheritance/ │ │ │ └── RedisEntityWithoutFieldsTest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── RedisTest.xml │ │ └── esindexer.xml │ ├── kundera-rest/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ └── rest/ │ │ │ │ ├── common/ │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── EntityUtils.java │ │ │ │ │ ├── JAXBUtils.java │ │ │ │ │ ├── ResponseBuilder.java │ │ │ │ │ ├── ResponseCode.java │ │ │ │ │ ├── StreamUtils.java │ │ │ │ │ └── TokenUtils.java │ │ │ │ ├── converters/ │ │ │ │ │ ├── CollectionConverter.java │ │ │ │ │ └── ListMessageBodyProvider.java │ │ │ │ ├── dto/ │ │ │ │ │ ├── QueryResult.java │ │ │ │ │ ├── Schema.java │ │ │ │ │ ├── SchemaMetadata.java │ │ │ │ │ └── Table.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── EMFRepository.java │ │ │ │ │ └── EMRepository.java │ │ │ │ └── resources/ │ │ │ │ ├── ApplicationResource.java │ │ │ │ ├── CRUDResource.java │ │ │ │ ├── JPAQueryResource.java │ │ │ │ ├── MetadataResource.java │ │ │ │ ├── NativeQueryResource.java │ │ │ │ ├── SessionResource.java │ │ │ │ └── TransactionResource.java │ │ │ └── resources/ │ │ │ └── log4j.properties │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── rest/ │ │ │ ├── common/ │ │ │ │ ├── Book.java │ │ │ │ ├── EntityUtilsTest.java │ │ │ │ ├── ExternalLink.java │ │ │ │ ├── HabitatUni1ToM.java │ │ │ │ ├── JAXBUtilsTest.java │ │ │ │ ├── MongoCompoundKey.java │ │ │ │ ├── MongoPrimeUser.java │ │ │ │ ├── PersonalDetailCassandra.java │ │ │ │ ├── PersonnelUni1ToM.java │ │ │ │ ├── PreferenceCassandra.java │ │ │ │ ├── Professional.java │ │ │ │ ├── ProfessionalDetailCassandra.java │ │ │ │ ├── StreamUtilsTest.java │ │ │ │ ├── TokenUtilsTest.java │ │ │ │ ├── TweetCassandra.java │ │ │ │ └── UserCassandra.java │ │ │ ├── converters/ │ │ │ │ └── CollectionConverterTest.java │ │ │ ├── dao/ │ │ │ │ ├── RESTClient.java │ │ │ │ └── RESTClientImpl.java │ │ │ └── resources/ │ │ │ ├── CRUDResourceTest.java │ │ │ ├── DataTypeTest.java │ │ │ ├── MongoQueryTest.java │ │ │ └── PolyglotQueryTest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── cassandra.yaml │ ├── kundera-rethinkdb/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── rethink/ │ │ │ ├── RethinkDBClient.java │ │ │ ├── RethinkDBClientFactory.java │ │ │ ├── RethinkDBPropertyReader.java │ │ │ ├── query/ │ │ │ │ ├── RethinkDBEntityReader.java │ │ │ │ └── RethinkDBQuery.java │ │ │ └── schemamanager/ │ │ │ └── RethinkDBSchemaManager.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── rethink/ │ │ │ ├── crud/ │ │ │ │ └── RethinkCRUDTest.java │ │ │ ├── entities/ │ │ │ │ └── Person.java │ │ │ └── query/ │ │ │ └── RethinkQueryTest.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── persistence.xml │ ├── kundera-spark/ │ │ ├── pom.xml │ │ ├── spark-cassandra/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── spark/ │ │ │ │ └── client/ │ │ │ │ └── CassSparkClient.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── spark/ │ │ │ │ ├── Book.java │ │ │ │ ├── SparkCassClientTest.java │ │ │ │ └── cassandra/ │ │ │ │ └── utils/ │ │ │ │ └── CassandraCli.java │ │ │ └── resources/ │ │ │ ├── KunderaSparkCassProperties.xml │ │ │ └── META-INF/ │ │ │ └── persistence.xml │ │ ├── spark-core/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── spark/ │ │ │ │ ├── client/ │ │ │ │ │ ├── FSClient.java │ │ │ │ │ ├── FileFormatConstants.java │ │ │ │ │ ├── FilePathBuilder.java │ │ │ │ │ ├── HDFSClient.java │ │ │ │ │ ├── SparkClient.java │ │ │ │ │ ├── SparkClientFactory.java │ │ │ │ │ ├── SparkDataClient.java │ │ │ │ │ ├── SparkDataClientFactory.java │ │ │ │ │ └── SparkPropertyReader.java │ │ │ │ ├── constants/ │ │ │ │ │ ├── SparkPropertiesConstants.java │ │ │ │ │ └── SparkQueryConstants.java │ │ │ │ ├── datahandler/ │ │ │ │ │ └── SparkDataHandler.java │ │ │ │ └── query/ │ │ │ │ ├── SparkEntityReader.java │ │ │ │ └── SparkQuery.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── spark/ │ │ │ │ ├── entities/ │ │ │ │ │ └── Person.java │ │ │ │ ├── tests/ │ │ │ │ │ ├── SparkBaseTest.java │ │ │ │ │ ├── SparkCsvInsertionTest.java │ │ │ │ │ ├── SparkCsvQueryTest.java │ │ │ │ │ └── SparkHDFSClientTest.java │ │ │ │ └── utils/ │ │ │ │ └── SparkTestingUtils.java │ │ │ └── resources/ │ │ │ ├── KunderaSparkTest.xml │ │ │ ├── META-INF/ │ │ │ │ └── persistence.xml │ │ │ └── test.csv │ │ ├── spark-hive/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── spark/ │ │ │ │ └── client/ │ │ │ │ └── HiveSparkClient.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── client/ │ │ │ │ └── spark/ │ │ │ │ ├── PersonHive.java │ │ │ │ ├── SparkHiveClientTest.java │ │ │ │ └── SparkHiveQueryTest.java │ │ │ └── resources/ │ │ │ ├── KunderaSparkHiveProperties.xml │ │ │ ├── META-INF/ │ │ │ │ └── persistence.xml │ │ │ ├── hive-site.xml │ │ │ └── hive_script │ │ ├── spark-mongodb/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── spark/ │ │ │ │ └── client/ │ │ │ │ └── MongoSparkClient.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── spark/ │ │ │ │ └── client/ │ │ │ │ └── SparkMongoClientTest.java │ │ │ └── resources/ │ │ │ ├── KunderaSparkMongoProperties.xml │ │ │ └── META-INF/ │ │ │ └── persistence.xml │ │ └── spark-teradata/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── spark/ │ │ │ └── client/ │ │ │ └── TeradataSparkClient.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── client/ │ │ │ └── spark/ │ │ │ └── Person.java │ │ └── resources/ │ │ ├── KunderaSparkTeradataProperties.xml │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ └── teradata.properties │ ├── kundera-tests/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── impetus/ │ │ │ │ └── kundera/ │ │ │ │ ├── benchmark/ │ │ │ │ │ ├── ReadCSVFile.java │ │ │ │ │ ├── TestResult.java │ │ │ │ │ └── WriteToExcelFile.java │ │ │ │ └── tests/ │ │ │ │ └── crossdatastore/ │ │ │ │ ├── pickr/ │ │ │ │ │ └── dao/ │ │ │ │ │ ├── Pickr.java │ │ │ │ │ └── PickrImpl.java │ │ │ │ └── useraddress/ │ │ │ │ └── dao/ │ │ │ │ ├── BaseDao.java │ │ │ │ └── UserAddressDaoImpl.java │ │ │ └── resources/ │ │ │ ├── applicationContext.xml │ │ │ ├── kundera-cassandra.properties │ │ │ ├── log4j-server.properties │ │ │ └── log4j.properties │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ ├── benchmark/ │ │ │ │ └── PerformanceTestsSuite.java │ │ │ └── tests/ │ │ │ ├── cli/ │ │ │ │ └── CleanupUtilities.java │ │ │ ├── crossdatastore/ │ │ │ │ ├── EntityInTwoDatabaseTest.java │ │ │ │ ├── generatedId/ │ │ │ │ │ ├── AddressMongoGeneratedId.java │ │ │ │ │ ├── CrossdatastoreGeneratedIdTest.java │ │ │ │ │ └── UserCassandraGeneratedId.java │ │ │ │ ├── imdb/ │ │ │ │ │ ├── AssociationBase.java │ │ │ │ │ ├── IMDBPolyglotTest.java │ │ │ │ │ ├── TwinAssociation.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── BaseDao.java │ │ │ │ │ │ └── IMDBDaoImpl.java │ │ │ │ │ └── entities/ │ │ │ │ │ ├── Actor.java │ │ │ │ │ ├── Movie.java │ │ │ │ │ └── Role.java │ │ │ │ ├── pickr/ │ │ │ │ │ ├── PickrBaseTest.java │ │ │ │ │ ├── PickrTestBi_1_1_1_1.java │ │ │ │ │ ├── PickrTestBi_1_1_1_1_PK.java │ │ │ │ │ ├── PickrTestBi_1_1_1_M.java │ │ │ │ │ ├── PickrTestBi_1_M_1_M.java │ │ │ │ │ ├── PickrTestBi_1_M_M_M.java │ │ │ │ │ ├── PickrTestBi_M_1_1_M.java │ │ │ │ │ ├── PickrTestBi_M_1_M_1.java │ │ │ │ │ ├── PickrTestBi_M_M_1_1.java │ │ │ │ │ ├── PickrTestBi_M_M_M_M.java │ │ │ │ │ ├── PickrTestUni_1_1_1_1.java │ │ │ │ │ ├── PickrTestUni_1_1_1_1_PK.java │ │ │ │ │ ├── PickrTestUni_1_1_1_M.java │ │ │ │ │ ├── PickrTestUni_1_M_1_M.java │ │ │ │ │ ├── PickrTestUni_1_M_M_M.java │ │ │ │ │ ├── PickrTestUni_M_1_1_M.java │ │ │ │ │ ├── PickrTestUni_M_1_M_1.java │ │ │ │ │ ├── PickrTestUni_M_M_1_1.java │ │ │ │ │ ├── PickrTestUni_M_M_M_M.java │ │ │ │ │ └── entities/ │ │ │ │ │ ├── album/ │ │ │ │ │ │ ├── AlbumBi_1_1_1_1.java │ │ │ │ │ │ ├── AlbumBi_1_1_1_1_PK.java │ │ │ │ │ │ ├── AlbumBi_1_1_1_M.java │ │ │ │ │ │ ├── AlbumBi_1_M_1_M.java │ │ │ │ │ │ ├── AlbumBi_1_M_M_M.java │ │ │ │ │ │ ├── AlbumBi_M_1_1_M.java │ │ │ │ │ │ ├── AlbumBi_M_1_M_1.java │ │ │ │ │ │ ├── AlbumBi_M_M_1_1.java │ │ │ │ │ │ ├── AlbumBi_M_M_M_M.java │ │ │ │ │ │ ├── AlbumUni_1_1_1_1.java │ │ │ │ │ │ ├── AlbumUni_1_1_1_1_PK.java │ │ │ │ │ │ ├── AlbumUni_1_1_1_M.java │ │ │ │ │ │ ├── AlbumUni_1_M_1_M.java │ │ │ │ │ │ ├── AlbumUni_1_M_M_M.java │ │ │ │ │ │ ├── AlbumUni_M_1_1_M.java │ │ │ │ │ │ ├── AlbumUni_M_1_M_1.java │ │ │ │ │ │ ├── AlbumUni_M_M_1_1.java │ │ │ │ │ │ └── AlbumUni_M_M_M_M.java │ │ │ │ │ ├── photo/ │ │ │ │ │ │ ├── PhotoBi_1_1_1_1.java │ │ │ │ │ │ ├── PhotoBi_1_1_1_1_PK.java │ │ │ │ │ │ ├── PhotoBi_1_1_1_M.java │ │ │ │ │ │ ├── PhotoBi_1_M_1_M.java │ │ │ │ │ │ ├── PhotoBi_1_M_M_M.java │ │ │ │ │ │ ├── PhotoBi_M_1_1_M.java │ │ │ │ │ │ ├── PhotoBi_M_1_M_1.java │ │ │ │ │ │ ├── PhotoBi_M_M_1_1.java │ │ │ │ │ │ ├── PhotoBi_M_M_M_M.java │ │ │ │ │ │ ├── PhotoUni_1_1_1_1.java │ │ │ │ │ │ ├── PhotoUni_1_1_1_1_PK.java │ │ │ │ │ │ ├── PhotoUni_1_1_1_M.java │ │ │ │ │ │ ├── PhotoUni_1_M_1_M.java │ │ │ │ │ │ ├── PhotoUni_1_M_M_M.java │ │ │ │ │ │ ├── PhotoUni_M_1_1_M.java │ │ │ │ │ │ ├── PhotoUni_M_1_M_1.java │ │ │ │ │ │ ├── PhotoUni_M_M_1_1.java │ │ │ │ │ │ └── PhotoUni_M_M_M_M.java │ │ │ │ │ └── photographer/ │ │ │ │ │ ├── PhotographerBi_1_1_1_1.java │ │ │ │ │ ├── PhotographerBi_1_1_1_1_PK.java │ │ │ │ │ ├── PhotographerBi_1_1_1_M.java │ │ │ │ │ ├── PhotographerBi_1_M_1_M.java │ │ │ │ │ ├── PhotographerBi_1_M_M_M.java │ │ │ │ │ ├── PhotographerBi_M_1_1_M.java │ │ │ │ │ ├── PhotographerBi_M_1_M_1.java │ │ │ │ │ ├── PhotographerBi_M_M_1_1.java │ │ │ │ │ ├── PhotographerBi_M_M_M_M.java │ │ │ │ │ ├── PhotographerUni_1_1_1_1.java │ │ │ │ │ ├── PhotographerUni_1_1_1_1_PK.java │ │ │ │ │ ├── PhotographerUni_1_1_1_M.java │ │ │ │ │ ├── PhotographerUni_1_M_1_M.java │ │ │ │ │ ├── PhotographerUni_1_M_M_M.java │ │ │ │ │ ├── PhotographerUni_M_1_1_M.java │ │ │ │ │ ├── PhotographerUni_M_1_M_1.java │ │ │ │ │ ├── PhotographerUni_M_M_1_1.java │ │ │ │ │ └── PhotographerUni_M_M_M_M.java │ │ │ │ ├── transaction/ │ │ │ │ │ └── CrossDataStoreTransactionTest.java │ │ │ │ └── useraddress/ │ │ │ │ ├── AssociationBase.java │ │ │ │ ├── MTMBiAssociationTest.java │ │ │ │ ├── MTMUniAssociationTest.java │ │ │ │ ├── MTOBiAssociationTest.java │ │ │ │ ├── MTOUniAssociationTest.java │ │ │ │ ├── OTMBiAssociationTest.java │ │ │ │ ├── OTMUniAssociationTest.java │ │ │ │ ├── OTOBiAssociationTest.java │ │ │ │ ├── OTOUniAssociationTest.java │ │ │ │ ├── TwinAssociation.java │ │ │ │ ├── datatype/ │ │ │ │ │ ├── MTMBiAssociationIntTest.java │ │ │ │ │ ├── MTMUniAssociationIntTest.java │ │ │ │ │ ├── MTOBiAssociationIntTest.java │ │ │ │ │ ├── MTOUniAssociationIntTest.java │ │ │ │ │ ├── OTMBiAssociationIntTest.java │ │ │ │ │ ├── OTMUniAssociationIntTest.java │ │ │ │ │ ├── OTOBiAssociationIntTest.java │ │ │ │ │ ├── OTOUniAssociationIntTest.java │ │ │ │ │ └── entities/ │ │ │ │ │ ├── HabitatBi1To1FKBigDecimal.java │ │ │ │ │ ├── HabitatBi1ToMDouble.java │ │ │ │ │ ├── HabitatBiMTo1Char.java │ │ │ │ │ ├── HabitatBiMToMShort.java │ │ │ │ │ ├── HabitatOToOFKEntityInt.java │ │ │ │ │ ├── HabitatUni1To1FKInteger.java │ │ │ │ │ ├── HabitatUni1ToMFloat.java │ │ │ │ │ ├── HabitatUniMTo1Long.java │ │ │ │ │ ├── HabitatUniMToMBigInteger.java │ │ │ │ │ ├── PersonnelBi1To1FKInt.java │ │ │ │ │ ├── PersonnelBi1ToMInt.java │ │ │ │ │ ├── PersonnelBiMTo1Int.java │ │ │ │ │ ├── PersonnelBiMToMInt.java │ │ │ │ │ ├── PersonnelOToOFKEntityInt.java │ │ │ │ │ ├── PersonnelUni1To1FKInt.java │ │ │ │ │ ├── PersonnelUni1ToMInt.java │ │ │ │ │ ├── PersonnelUniMTo1Int.java │ │ │ │ │ └── PersonnelUniMToMInt.java │ │ │ │ └── entities/ │ │ │ │ ├── HabitatBi1To1FK.java │ │ │ │ ├── HabitatBi1To1PK.java │ │ │ │ ├── HabitatBi1ToM.java │ │ │ │ ├── HabitatBiMTo1.java │ │ │ │ ├── HabitatBiMToM.java │ │ │ │ ├── HabitatOToOFKEntity.java │ │ │ │ ├── HabitatUni1To1FK.java │ │ │ │ ├── HabitatUni1To1PK.java │ │ │ │ ├── HabitatUni1ToM.java │ │ │ │ ├── HabitatUniMTo1.java │ │ │ │ ├── HabitatUniMToM.java │ │ │ │ ├── Personnel.java │ │ │ │ ├── PersonnelBi1To1FK.java │ │ │ │ ├── PersonnelBi1To1PK.java │ │ │ │ ├── PersonnelBi1ToM.java │ │ │ │ ├── PersonnelBiMTo1.java │ │ │ │ ├── PersonnelBiMToM.java │ │ │ │ ├── PersonnelOToOFKEntity.java │ │ │ │ ├── PersonnelUni1To1FK.java │ │ │ │ ├── PersonnelUni1To1PK.java │ │ │ │ ├── PersonnelUni1ToM.java │ │ │ │ ├── PersonnelUniMTo1.java │ │ │ │ └── PersonnelUniMToM.java │ │ │ ├── embeddedRDBMS/ │ │ │ │ ├── EmbeddedRDBMSUserTest.java │ │ │ │ ├── PersonalDetail.java │ │ │ │ ├── Tweets.java │ │ │ │ └── User.java │ │ │ ├── entities/ │ │ │ │ ├── AddressCassandra.java │ │ │ │ ├── AddressMongoNoAnnotation.java │ │ │ │ ├── CommonUser.java │ │ │ │ ├── PersonDetailAnnotationPolyglotTest.java │ │ │ │ ├── PersonDetailClassMap.java │ │ │ │ ├── PersonDetailNoSchema.java │ │ │ │ ├── PersonDetailNoTable.java │ │ │ │ ├── PersonDetailTestAnnotation.java │ │ │ │ ├── PersonRDBMSPolyglot.java │ │ │ │ └── UserCassandraNoAnnotation.java │ │ │ ├── externalproeprties/ │ │ │ │ ├── AccountHolder.java │ │ │ │ ├── Bank.java │ │ │ │ └── BankTest.java │ │ │ ├── file/ │ │ │ │ ├── dao/ │ │ │ │ │ ├── ProfilePictureDao.java │ │ │ │ │ └── ProfilePictureDaoTest.java │ │ │ │ └── entities/ │ │ │ │ └── ProfilePicture.java │ │ │ └── persistence/ │ │ │ ├── jta/ │ │ │ │ ├── EjbJTAContextTest.java │ │ │ │ ├── HabitatOToOFKEntityJTA.java │ │ │ │ ├── OraclePersonnelOTOFKEntityJTA.java │ │ │ │ ├── OracleToMongoJTATest.java │ │ │ │ └── PersonnelOToOFKEntityJTA.java │ │ │ └── lazy/ │ │ │ ├── Album.java │ │ │ ├── KunderaPersistenceProviderUtilTest.java │ │ │ ├── KunderaPersistenceUnitUtilTest.java │ │ │ ├── LazyTestSetup.java │ │ │ └── Photographer.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ ├── persistence.xml │ │ │ └── persistence_2_0.xsd │ │ ├── cassandra.yaml │ │ ├── log4j.properties │ │ └── oracle-kv-db.script │ └── pom.xml └── test/ ├── benchmark/ │ ├── pom.xml │ └── ycsb/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── impetus/ │ │ │ └── kundera/ │ │ │ └── ycsb/ │ │ │ ├── benchmark/ │ │ │ │ ├── CouchDBNativeClient.java │ │ │ │ ├── HBaseClient.java │ │ │ │ ├── HBaseV2Client.java │ │ │ │ ├── HectorClient.java │ │ │ │ ├── KuduYCSBClient.java │ │ │ │ ├── KunderaCouchDBClient.java │ │ │ │ ├── KunderaHBaseClient.java │ │ │ │ ├── KunderaKuduDBClient.java │ │ │ │ ├── KunderaMongoClient.java │ │ │ │ ├── KunderaNeo4JClient.java │ │ │ │ ├── KunderaOracleNosqlClient.java │ │ │ │ ├── KunderaPelopsClient.java │ │ │ │ ├── KunderaRedisClient.java │ │ │ │ ├── KunderaThriftClient.java │ │ │ │ ├── MongoDbClient.java │ │ │ │ ├── Neo4JNativeClient.java │ │ │ │ ├── OracleNosqlClient.java │ │ │ │ ├── PelopsClient.java │ │ │ │ ├── PhoenixClient.java │ │ │ │ ├── RedisClient.java │ │ │ │ └── ThriftClient.java │ │ │ ├── entities/ │ │ │ │ ├── CouchDBUser.java │ │ │ │ ├── HBaseUser.java │ │ │ │ ├── KuduUser.java │ │ │ │ ├── MongoUser.java │ │ │ │ ├── Neo4JUser.java │ │ │ │ ├── OracleNosqlUser.java │ │ │ │ ├── PelopsUser.java │ │ │ │ ├── PerformanceNoInfo.java │ │ │ │ ├── RedisUser.java │ │ │ │ └── ThriftUser.java │ │ │ ├── runner/ │ │ │ │ ├── CassandraRunner.java │ │ │ │ ├── CouchDBRunner.java │ │ │ │ ├── HBaseRunner.java │ │ │ │ ├── KuduRunner.java │ │ │ │ ├── MongoRunner.java │ │ │ │ ├── Neo4jRunner.java │ │ │ │ ├── OracleNosqlRunner.java │ │ │ │ ├── RedisRunner.java │ │ │ │ └── YCSBRunner.java │ │ │ └── utils/ │ │ │ ├── CassandraOperationUtils.java │ │ │ ├── CouchDBOperationUtils.java │ │ │ ├── HBaseOperationUtils.java │ │ │ ├── HibernateCRUDUtils.java │ │ │ ├── MailUtils.java │ │ │ ├── MongoDBOperationUtils.java │ │ │ ├── OracleNosqlOperationUtils.java │ │ │ └── RedisOperationUtils.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── persistence.xml │ │ ├── db-cassandra.properties │ │ ├── db-couch.properties │ │ ├── db-hbase.properties │ │ ├── db-kudu.properties │ │ ├── db-mongo.properties │ │ ├── db-neo4j.properties │ │ ├── db-oracle-nosql.properties │ │ ├── db-redis.properties │ │ ├── kunderaMongoTest.xml │ │ ├── kunderaNeo4JTest.xml │ │ ├── log4j.properties │ │ ├── startOracleServer.sh │ │ └── workloads/ │ │ ├── workloada │ │ ├── workloadb │ │ ├── workloadc │ │ ├── workloadd │ │ ├── workloade │ │ ├── workloadf │ │ ├── workloadinsert10 │ │ ├── workloadinsert100 │ │ ├── workloadinsert1000 │ │ ├── workloadinsert10000 │ │ ├── workloadinsert100000 │ │ ├── workloadinsert1000000 │ │ ├── workloadinsert10000~ │ │ ├── workloadinsert1100000 │ │ ├── workloadinsert150000 │ │ ├── workloadinsert150000~ │ │ ├── workloadinsert200000 │ │ ├── workloadinsert2000000 │ │ ├── workloadinsert2000000~ │ │ ├── workloadinsert200000~ │ │ ├── workloadinsert250000 │ │ ├── workloadinsert250000~ │ │ ├── workloadinsert300000 │ │ ├── workloadinsert3000000 │ │ ├── workloadinsert3000000~ │ │ ├── workloadinsert300000~ │ │ ├── workloadinsert4000000 │ │ ├── workloadinsert4000000~ │ │ ├── workloadinsert4500000 │ │ ├── workloadinsert4500000~ │ │ ├── workloadinsert5000 │ │ ├── workloadinsert5000000 │ │ ├── workloadinsert5000000~ │ │ └── workloadinsert5000~ │ └── test/ │ └── java/ │ └── com/ │ └── impetus/ │ └── kundera/ │ └── ycsb/ │ ├── CassandraYCSBTest.java │ ├── CouchDBYCSBTest.java │ ├── HBaseYCSBTest.java │ ├── KuduDBYCSBTest.java │ ├── MongoDBYCSBTest.java │ ├── Neo4JYCSBTest.java │ ├── OracleNosqlYCSBTest.java │ ├── RedisYCSBTest.java │ └── YCSBBaseTest.java └── pom.xml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ *.*~ *.iws *.iml *.ipr target/ test-output/ ## Eclipse stuff ## .project .classpath .settings bin ================================================ FILE: CONTRIBUTING.md ================================================ # Contribution Guidelines ### 1. Get the source code: [Download](https://github.com/impetus-opensource/Kundera/archive/trunk.zip) souce code as zip or use `git clone https://github.com/impetus-opensource/Kundera.git` ### 2. Discuss with Kundera Team: Share your thoughts with us at Gitter [chat](https://gitter.im/impetus-opensource/Kundera?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) or mail us at kundera@impetus.co.in After discussion, Raise a new issue on [github](https://github.com/impetus-opensource/Kundera/issues). **Code Recommendations** - Add proper javadocs and comments. - Contributed code must pass existing test cases. - Write new test cases using junit. - For Eclipse: use Kundera [Formatter](https://github.com/devender-yadav/kundera-formatter/blob/master/cassandra_code_style.xml.zip?raw=true). - We recommend contributor to use Java 8. ### 3. Code Submission and Review: The contributor needs to open a pull request on the [trunk](https://github.com/impetus-opensource/Kundera/pulls) and get it reviewed by Kundera developers. The contributor needs to incorporate code changes (_if any_). ### 4. Wiki: The contributor needs to write wiki page(s) talking about usage. Check [wiki](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Kudu) for Kudu Client. _**At any point feel free to contact.**_ # Contribution Ideas ### Sample Projects Create sample projects using Kundera. For example, you can create a sample web application using Spring. Check existing [examples](https://github.com/impetus-opensource/Kundera/tree/trunk/examples). ### Fix open issues Check list of [open issues](https://github.com/impetus-opensource/Kundera/issues). ### Add support for new data source Check Kundera supported [databases](https://github.com/impetus-opensource/Kundera/wiki/Datastores-Supported) and [Kundera's Client Extension Framework](https://github.com/impetus-opensource/Kundera/wiki/Kundera's-Client-Extension-Framework) for technical details on adding a new datasource. Check out our newly created Kudu [client](https://github.com/impetus-opensource/Kundera/tree/trunk/src/kundera-kudu) and it's [wiki](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Kudu) to get an idea of the source code as Kudu client has fewer features so it's easier to understand. ================================================ FILE: LICENSE.txt ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: NOTICE.txt ================================================ Kundera Copyright 2010-2015 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). Additionally, it uses the following softwares included as its maven dependencies Cassandra Libraries cassandra-all (https://github.com/apache/cassandra) Logging utilities slf4j (http://www.slf4j.org/) log4j (http://logging.apache.org/log4j/) commons-logging(http://commons.apache.org/proper/commons-logging/) Pelops client utility https://github.com/s7/scale7-pelops Compression support provided by snappy-java (http://code.google.com/p/snappy-java/) Written by Taro L. Saito. org.xerial(snappy) Apache commoms library commons-lang (http://commons.apache.org/proper/commons-lang/) Persistence Api : javaee-api (http://docs.oracle.com/javaee/7/api/) Lucene utilities Lucene core and helper jars (http://lucene.apache.org/) Directory naming directory-naming Eclipse link parser API EclipseLink(https://github.com/eclipse/eclipselink.runtime) Byte code generation library cglib (https://github.com/cglib/cglib) Caching library Ehcache (http://ehcache.org/) Java Bytecode manipulation libraray javassist(javassist(https://github.com/jboss-javassist/javassist) Google' core library Guava(https://code.google.com/p/guava-libraries/) Hibernate libraries Hibernate(http://hibernate.org/) Testing utils: Easymock (http://easymock.org/) Hbase & Hadoop client APIs and utilities : hbase (http://hbase.apache.org/) hadoop (http://hadoop.apache.org/) MongoDB client APIs and utilities mongodb Driver (https://github.com/mongodb/mongo-java-driver) Neo4j database and driver Neo4j database driver (https://github.com/neo4j-contrib/neo4j-org) Library to serialize objects to XML and back again. thoughtworks xtream(http://xstream.codehaus.org/) Jersey API for rest client jersey(https://jersey.java.net/) Redis java driver Jedis (https://github.com/xetorthio/jedis) Continuous test performing utility org.databene.contiperf(http://databene.org/contiperf) HSQL database andclient util HSQL DB (http://hsqldb.org/) Oracle KV Store and Client Community edition (http://www.oracle.com/technetwork/database/database-technologies/nosqldb/downloads/) Copyright (C) 2007 Free Software Foundation, Inc. JTS Topology Suite for 2D spatial predicates and functions com.vividsolutions.jts(http://www.vividsolutions.com/) Http client for rest calls : httpcomponent (http://hc.apache.org/) Json library Gson (https://code.google.com/p/google-gson/) Jackson libraries for object to xml & json conversions fasterxml API(https://github.com/FasterXML/) Apache Spark core APIs, spark-sql and spark-Hive library Apache spark (https://github.com/apache/spark) Junit for wrriting unit tests Junit (http://junit.org/) ================================================ FILE: README.md ================================================ [![Join the chat at https://gitter.im/Impetus/Kundera](https://badges.gitter.im/Impetus/Kundera.svg)](https://gitter.im/Impetus/Kundera) [![Follow us on Twitter](http://i.imgur.com/wWzX9uB.png)](https://twitter.com/kundera_impetus) Overview ========= Kundera is a "Polyglot Object Mapper" with a JPA interface. The idea behind Kundera is to make working with NoSQL Databases drop-dead simple and fun. Kundera is being developed with following objectives: * To make working with NoSQL as simple as working with SQL * To serve as JPA Compliant mapping solution for NoSQL Datastores. * To help developers, forget the complexity of NoSQL stores and focus on Domain Model. * To make switching across data-stores as easy as changing a configuration. Latest ====== * **Ethereum** public data can be stored to any database of your choice. Check [Kundera with Ethereum](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Ethereum-Blockchain) for more details. * Kundera now supports **RethinkDB**. Check [Kundera with RethinkDB](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-RethinkDB) for more details. * Kundera supports **Apache Kudu**. Check [Kundera with Kudu](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Kudu) for more details. * Want to step out of JPA world and still take advantage of Kundera? Check [Kundera Data as Object](https://github.com/impetus-opensource/Kundera/wiki/Kundera-Data-As-Object). * Want to save your large files in MongoDB GridFS in the same JPA way. Check [GridFS support in Kundera](https://github.com/impetus-opensource/Kundera/wiki/GridFS-support-with-Kundera-MongoDB). * Perform SQL queries over big data using Kundera with **Apache Spark** as the query engine. Check [Kundera with Spark](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Spark) for more details. * We are active on **stackoverflow.com**. Ask questions & check existing [Kundera Tagged Questions](http://stackoverflow.com/questions/tagged/kundera) on stackoverflow. Supported Datastores ===================== Kundera currently supports following data stores : * Cassandra * MongoDB * HBase * Redis * OracleNoSQL * Neo4j * Couchdb * RethinkDB * Kudu * Relational databases * Apache Spark You can find the list of data stores(specific versions) supported by Kundera [here](https://github.com/impetus-opensource/Kundera/wiki/Datastores-Supported). Getting Started =============== The latest stable release of Kundera is 3.13. It is a maven based project . You can either download it directly from github and build using following command : mvn clean install -Dfile src/pom.xml Or it can be directly added as maven dependency in your project in the following manner : * Add the following repository to pom.xml : ``` sonatype-nexus Kundera Public Repository https://oss.sonatype.org/content/repositories/releases true false ``` * Add the data store specific Kundera module as a dependency (e.g. Cassandra below) : ``` com.impetus.kundera.client kundera-cassandra ${kundera.version} ``` Build your project with the above changes to your pom.xml and start using Kundera ! Important Links =============== * [Kundera in 5 minutes](https://github.com/impetus-opensource/Kundera/wiki/Getting-Started-in-5-minutes) * [Data Store specific Configurations](https://github.com/impetus-opensource/Kundera/wiki/Data-store-Specific-Configuration) * Features : * [Polyglot Persistence](https://github.com/impetus-opensource/Kundera/wiki/Polyglot-Persistence) * [JPQL](https://github.com/impetus-opensource/Kundera/wiki/JPQL) & [Native Query](https://github.com/impetus-opensource/Kundera/wiki/Native-queries) Support * [Schema Generation](https://github.com/impetus-opensource/Kundera/wiki/Schema-Generation) * [Transaction Management](https://github.com/impetus-opensource/Kundera/wiki/Transaction-Management) * [Rest Based Access](https://github.com/impetus-opensource/Kundera/wiki/REST-Based-Access) * [Aggregation over NoSQL](https://github.com/impetus-opensource/Kundera/wiki/How-to-perform-aggregation-over-data-stored-in-NoSQL%3F) * Tutorials : * [Kundera with Openshift](https://github.com/impetus-opensource/Kundera/wiki/Deploying-Polyglot-(RDBMS---NoSQL)-Applications-on-Openshift) * [Kundera with Play Framework](https://github.com/impetus-opensource/Kundera/wiki/Using-Kundera-with-Play!-Framework) * [Kundera with GWT](https://github.com/impetus-opensource/Kundera/wiki/Using-Kundera-with-GWT) * [Kundera with JBoss](https://github.com/impetus-opensource/Kundera/wiki/Using-Kundera-with-Jboss) * [Kundera with Spring](https://github.com/impetus-opensource/Kundera/wiki/Building-Applications-with-Kundera-and-Spring) * [Kundera with Spark](https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Spark) * [Kundera Tagged Questions on stackoverflow.com](http://stackoverflow.com/questions/tagged/kundera) * [Releases](https://github.com/impetus-opensource/Kundera/blob/trunk/src/README.md) Troubleshooting =============== * [Common Issues and Troubleshooting](https://github.com/impetus-opensource/Kundera/wiki/Common-Issues-and-Troubleshooting) Sample Projects =============== Please use latest version of Kundera in these sample projects. * [kundera-mongodb-kudu-example.zip (MongoDB - Kudu polyglot)](https://github.com/impetus-opensource/Kundera/blob/trunk/examples/basic-examples/downloadables/kundera-mongodb-kudu-example.zip?raw=true) * [kundera-cassandra-example.zip](https://github.com/impetus-opensource/Kundera/blob/trunk/examples/basic-examples/downloadables/kundera-cassandra-example.zip?raw=true) * [kundera-mongodb-example.zip](https://github.com/impetus-opensource/Kundera/blob/trunk/examples/basic-examples/downloadables/kundera-mongodb-example.zip?raw=true) * [kundera-hbase-example.zip](https://github.com/impetus-opensource/Kundera/blob/trunk/examples/basic-examples/downloadables/kundera-hbase-example.zip?raw=true) Contribution ============ * [Contribution Ideas](https://github.com/impetus-opensource/Kundera/wiki/How-to-Contribute#contribution-ideas) * [Contribution Guidelines](https://github.com/impetus-opensource/Kundera/wiki/How-to-Contribute#contribution-guidelines) About Us ======== Kundera is backed by Impetus Labs - iLabs. iLabs is a R&D consulting division of [Impetus Technologies](http://www.impetus.com). iLabs focuses on innovations with next generation technologies and creates practice areas and new products around them. iLabs is actively involved working on High Performance computing technologies, ranging from distributed/parallel computing, Erlang, grid softwares, GPU based software, Hadoop, Hbase, Cassandra, CouchDB and related technologies. iLabs is also working on various other Open Source initiatives. Follow us on [Twitter](https://twitter.com/kundera_impetus). ================================================ FILE: examples/basic-examples/kundera-cassandra-example/pom.xml ================================================ 4.0.0 com.impetus.kundera kundera-cassandra-example jar 1.0 kundera-cassandra-example http://maven.apache.org 3.13 com.impetus.kundera.client kundera-cassandra ${kundera.version} junit junit 4.12 test org.apache.maven.plugins maven-compiler-plugin 3.5.1 1.8 1.8 ================================================ FILE: examples/basic-examples/kundera-cassandra-example/src/main/java/com/impetus/kundera/entities/Person.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * The Class Person. */ @Entity @Table(name = "PERSON") public class Person { /** The person id. */ @Id @Column(name = "PERSON_ID") private String personId; /** The person name. */ @Column(name = "PERSON_NAME") private String personName; /** The age. */ @Column(name = "AGE") private int age; /** * Gets the person id. * * @return the person id */ public String getPersonId() { return personId; } /** * Sets the person id. * * @param personId * the new person id */ public void setPersonId(String personId) { this.personId = personId; } /** * Gets the person name. * * @return the person name */ public String getPersonName() { return personName; } /** * Sets the person name. * * @param personName * the new person name */ public void setPersonName(String personName) { this.personName = personName; } /** * Gets the age. * * @return the age */ public int getAge() { return age; } /** * Sets the age. * * @param age * the new age */ public void setAge(int age) { this.age = age; } } ================================================ FILE: examples/basic-examples/kundera-cassandra-example/src/main/resources/META-INF/persistence.xml ================================================ com.impetus.kundera.KunderaPersistence ================================================ FILE: examples/basic-examples/kundera-cassandra-example/src/test/java/com/impetus/kundera/CRUDTest.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.entities.Person; /** * The Class CRUDTest. */ public class CRUDTest { /** The Constant PU. */ private static final String PU = "cassandra_pu"; /** The emf. */ private static EntityManagerFactory emf; /** The em. */ private EntityManager em; /** * Sets the up before class. * * @throws Exception * the exception */ @BeforeClass public static void SetUpBeforeClass() throws Exception { emf = Persistence.createEntityManagerFactory(PU); } /** * Sets the up. * * @throws Exception * the exception */ @Before public void setUp() throws Exception { em = emf.createEntityManager(); } /** * Test crud operations. * * @throws Exception * the exception */ @Test public void testCRUDOperations() throws Exception { testInsert(); testMerge(); testRemove(); } /** * Test insert. * * @throws Exception * the exception */ private void testInsert() throws Exception { Person p = new Person(); p.setPersonId("101"); p.setPersonName("dev"); p.setAge(24); em.persist(p); Person person = em.find(Person.class, "101"); Assert.assertNotNull(person); Assert.assertEquals("101", person.getPersonId()); Assert.assertEquals("dev", person.getPersonName()); } /** * Test merge. */ private void testMerge() { Person person = em.find(Person.class, "101"); person.setPersonName("devender"); em.merge(person); Person p1 = em.find(Person.class, "101"); Assert.assertEquals("devender", p1.getPersonName()); } /** * Test remove. */ private void testRemove() { Person p = em.find(Person.class, "101"); em.remove(p); Person p1 = em.find(Person.class, "101"); Assert.assertNull(p1); } /** * Tear down. * * @throws Exception * the exception */ @After public void tearDown() throws Exception { em.close(); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { if (emf != null) { emf.close(); emf = null; } } } ================================================ FILE: examples/basic-examples/kundera-ethereum-example/pom.xml ================================================ 4.0.0 com.impetus.kundera kundera-ethereum-example jar 1.0 kundera-ethereum-example http://maven.apache.org 3.13 com.impetus.kundera.client kundera-ethereum ${kundera.version} com.impetus.kundera.client kundera-mongo ${kundera.version} junit junit 4.8.2 test org.apache.maven.plugins maven-compiler-plugin 3.0 1.8 1.8 ================================================ FILE: examples/basic-examples/kundera-ethereum-example/src/main/java/com/impetus/kundera/KunderaEthereumImporterTest.java ================================================ /******************************************************************************* * * Copyright 2017 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera; import java.math.BigInteger; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.blockchain.entities.Block; import com.impetus.kundera.blockchain.ethereum.BlockchainImporter; /** * The Class KunderaEthereumImporterTest. */ public class KunderaEthereumImporterTest { /** The importer. */ private static BlockchainImporter importer; /** * Sets the up before class. * * @throws Exception * the exception */ @BeforeClass public static void SetUpBeforeClass() throws Exception { importer = BlockchainImporter.initialize(); } /** * Gets the block test. * * @return the block test */ @Test public void getBlockTest() { Block blk = importer.getBlock(BigInteger.valueOf(1000000)); Assert.assertNotNull(blk); Assert.assertNull(blk.getTransactions()); } /** * Gets the block with transactions test. * * @return the block with transactions test */ @Test public void getBlockWithTransactionsTest() { Block blk = importer.getBlockWithTransactions(BigInteger.valueOf(1000000)); Assert.assertNotNull(blk); Assert.assertNotNull(blk.getTransactions()); } /** * Gets the first block test. * * @return the first block test */ @Test public void getFirstBlockTest() { Block blk = importer.getFirstBlock(); Assert.assertNotNull(blk); Assert.assertNull(blk.getTransactions()); } /** * Gets the first block with transactions test. * * @return the first block with transactions test */ @Test public void getFirstBlockWithTransactionsTest() { Block blk = importer.getFirstBlockWithTransactions(); Assert.assertNotNull(blk); // No transactions in 1st block Assert.assertNull(blk.getTransactions()); } /** * Gets the first block number test. * * @return the first block number test */ @Test public void getFirstBlockNumberTest() { BigInteger blkNum = importer.getFirstBlockNumber(); Assert.assertEquals(blkNum, new BigInteger("0")); } /** * Gets the latest block test. * * @return the latest block test */ @Test public void getLatestBlockTest() { Block blk = importer.getLatestBlock(); Assert.assertNotNull(blk); Assert.assertNull(blk.getTransactions()); } /** * Gets the latest block with transactions test. * * @return the latest block with transactions test */ @Test public void getLatestBlockWithTransactionsTest() { Block blk = importer.getLatestBlockWithTransactions(); Assert.assertNotNull(blk); Assert.assertNotNull(blk.getTransactions()); } /** * Gets the latest block number test. * * @return the latest block number test */ @Test public void getLatestBlockNumberTest() { BigInteger blkNum = importer.getLatestBlockNumber(); Assert.assertTrue(blkNum.compareTo(new BigInteger("4000000")) > 0); } /** * Import blocks test. */ @Test public void importBlocksTest() { importer.importBlocks(BigInteger.valueOf(1000000), BigInteger.valueOf(1000010)); } /** * Import blocks from starting test. */ @Test public void importBlocksFromStartingTest() { importer.importBlocksFromStarting(BigInteger.valueOf(10)); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { importer.destroy(); } } ================================================ FILE: examples/basic-examples/kundera-ethereum-example/src/main/java/com/impetus/kundera/KunderaEthereumJPAQueryTest.java ================================================ /******************************************************************************* * * Copyright 2017 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera; import java.math.BigInteger; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Query; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.blockchain.entities.Transaction; import com.impetus.kundera.blockchain.ethereum.BlockchainImporter; /** * The Class KunderaEthereumJPAQueryTest. */ public class KunderaEthereumJPAQueryTest { /** The importer. */ private static BlockchainImporter importer; /** * Sets the up before class. * * @throws Exception * the exception */ @BeforeClass public static void SetUpBeforeClass() throws Exception { importer = BlockchainImporter.initialize(); // init data importer.importBlocks(BigInteger.valueOf(4545110), BigInteger.valueOf(4545112)); } /** * Gets the block test. * * @return the block test */ @Test public void testJPAQuery() { EntityManager em = BlockchainImporter.getKunderaWeb3jClient().getEntityManager(); Query query = (Query) em.createQuery("Select t.gas,t.gasPrice from Transaction t " + "where t.blockNumber='0x455a56' and t.from='0xea674fdde714fd979de3edf0f56aa9716b898ec8'"); List results = query.getResultList(); Assert.assertEquals(6, results.size()); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { importer.destroy(); } } ================================================ FILE: examples/basic-examples/kundera-ethereum-example/src/main/resources/kundera-ethereum.properties ================================================ database.type=mongodb database.host=localhost database.port=27017 database.name=EthereumDB ## generate Block and Transaction tables schema.auto.generate=true ## Drop existing tables schema.drop.existing=true ## RPC HTTP end point or IPC socket file location or infura end point can be specified ethereum.node.endpoint=http://localhost:8545/ #ethereum.node.endpoint=/home/dev/ethereum/geth.ipc #ethereum.node.endpoint=https://mainnet.infura.io/ # Needed if IPC socket file located on windows OS #ethereum.node.os=windows ================================================ FILE: examples/basic-examples/kundera-ethereum-example/src/main/resources/logback.xml ================================================ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/pom.xml ================================================ 4.0.0 com.impetus.kundera.ethereum.webapp kundera-ethereum-webapp 0.0.1-SNAPSHOT jar kundera-ethereum-webapp http://maven.apache.org UTF-8 org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper com.impetus.kundera.client kundera-cassandra 3.12-SNAPSHOT com.impetus.kundera.client kundera-ethereum 3.13 org.springframework spring-orm org.springframework spring-web com.fasterxml.jackson.core jackson-databind 2.9.2 com.fasterxml.jackson.core jackson-core com.fasterxml.jackson.core jackson-annotations com.fasterxml.jackson.core jackson-core 2.9.2 com.fasterxml.jackson.core jackson-annotations 2.9.2 junit junit 3.8.1 test ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/config/Application.java ================================================ package com.impetus.kundera.ethereum.webapp.config; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @ComponentScan(basePackages = "com.impetus.kundera.ethereum.webapp") @Import({ BeanConfig.class, WebConfig.class }) @EnableAutoConfiguration public class Application extends SpringBootServletInitializer { private static Class applicationClass = Application.class; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(applicationClass); } } ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/config/ApplicationInitializer.java ================================================ package com.impetus.kundera.ethereum.webapp.config; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; public class ApplicationInitializer implements WebApplicationInitializer { public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.setServletContext(container); ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx)); servlet.setLoadOnStartup(1); servlet.addMapping("/"); } } ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/config/BeanConfig.java ================================================ package com.impetus.kundera.ethereum.webapp.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration public class BeanConfig { @Bean public InternalResourceViewResolver setupViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/ui/jsp/"); resolver.setSuffix(".jsp"); resolver.setViewClass(JstlView.class); return resolver; } } ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/config/WebConfig.java ================================================ package com.impetus.kundera.ethereum.webapp.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(final ResourceHandlerRegistry registry) { registry.addResourceHandler("/*.js/**").addResourceLocations("/ui/static/"); registry.addResourceHandler("/*.css/**").addResourceLocations("/ui/static/"); } } ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/controller/EthereumController.java ================================================ package com.impetus.kundera.ethereum.webapp.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.impetus.kundera.ethereum.webapp.dao.EthereumDao; @Controller public class EthereumController { @Autowired EthereumDao ethereumDao; @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView root() { ModelAndView model = new ModelAndView(); model.setViewName("home"); return model; } @RequestMapping(value = "/home", method = RequestMethod.GET) public ModelAndView home() { ModelAndView model = new ModelAndView(); model.setViewName("home"); return model; } @RequestMapping(value = "/import", method = RequestMethod.POST) public ModelAndView importBlocks(@RequestParam("from_block") String from, @RequestParam("to_block") String to) { ModelAndView model = new ModelAndView(); ethereumDao.importBlocks(Long.parseLong(from), Long.parseLong(to)); model.addObject("importStatus", "Import of blocks from " + from + " to " + to + " is successful"); model.setViewName("home"); return model; } @RequestMapping(value = "/queryresult", method = RequestMethod.POST) public ModelAndView queryBlocks(@RequestParam String query) { ModelAndView model = new ModelAndView(); List res = ethereumDao.runJPAQuery(query); model.addObject("result", res); model.setViewName("queryresult"); return model; } } ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/dao/EthereumDao.java ================================================ package com.impetus.kundera.ethereum.webapp.dao; import java.math.BigInteger; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Query; import org.springframework.stereotype.Service; import com.impetus.kundera.blockchain.ethereum.BlockchainImporter; @Service public class EthereumDao { private static BlockchainImporter importer = BlockchainImporter.initialize(); public void importBlocks(long from, long to) { importer.importBlocks(BigInteger.valueOf(from), BigInteger.valueOf(to)); } public List runJPAQuery(String query) { EntityManager em = BlockchainImporter.getKunderaWeb3jClient().getEntityManager(); Query q = (Query) em.createQuery(query); return q.getResultList(); } } ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/java/com/impetus/kundera/ethereum/webapp/dao/UserDao.java ================================================ //package com.impetus.kundera.ethereum.webapp.dao; // //import javax.persistence.EntityManager; //import javax.persistence.EntityManagerFactory; //import javax.persistence.PersistenceUnit; // //import org.springframework.stereotype.Service; // //import com.impetus.kundera.ethereum.webapp.model.User; // //@Service //public class UserDao //{ // @PersistenceUnit(unitName = "cassandra_pu") // EntityManagerFactory entityManagerFactory; // // public User addUser() // { // User user = new User(); // user.setEmail("johndoe123@gmail.com"); // user.setName("John Doe"); // user.setAddress("Bangalore, Karnataka"); // EntityManager entityManager = entityManagerFactory.createEntityManager(); // entityManager.persist(user); // entityManager.close(); // return user; // } // // public User getUserById(String Id) // { // EntityManager entityManager = entityManagerFactory.createEntityManager(); // User User = entityManager.find(User.class, Id); // return User; // } // // public EntityManagerFactory getEntityManagerFactory() // { // return entityManagerFactory; // } // // public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) // { // this.entityManagerFactory = entityManagerFactory; // } //} ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/resources/kundera-ethereum.properties ================================================ database.type=cassandra database.host=localhost database.port=9160 database.name=qwery ## generate Block and Transaction tables schema.auto.generate=true ## Drop existing tables schema.drop.existing=true ## RPC HTTP end point or IPC socket file location or infura end point can be specified #ethereum.node.endpoint=http://localhost:8545/ #ethereum.node.endpoint=/home/dev/ethereum/geth.ipc ethereum.node.endpoint=https://mainnet.infura.io/1234 # Needed if IPC socket file located on windows OS #ethereum.node.os=windows ================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/webapp/ui/jsp/dashboard.jsp ================================================ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Spring Boot Example
User Details
Name
Email
Address
${user.name}
${user.email}
${user.address}
================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/webapp/ui/jsp/home.jsp ================================================
From Block: To Block: ${importStatus}
JPA Query:
================================================ FILE: examples/basic-examples/kundera-ethereum-webapp/src/main/webapp/ui/jsp/queryresult.jsp ================================================ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Spring Boot Example
Query Result
blockNumber
from
value
${result.blockNumber}
${result.from}
${result.value}
================================================ FILE: examples/basic-examples/kundera-hbase-example/pom.xml ================================================ 4.0.0 com.impetus.kundera kundera-hbase-example jar 1.0 kundera-hbase-example http://maven.apache.org 3.13 com.impetus.kundera.client kundera-hbase-v2 ${kundera.version} junit junit 4.12 test org.apache.maven.plugins maven-compiler-plugin 3.5.1 1.7 1.7 ================================================ FILE: examples/basic-examples/kundera-hbase-example/src/main/java/com/impetus/kundera/entities/Person.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * The Class Person. */ @Entity @Table(name = "PERSON") public class Person { /** The person id. */ @Id @Column(name = "PERSON_ID") private String personId; /** The person name. */ @Column(name = "PERSON_NAME") private String personName; /** The age. */ @Column(name = "AGE") private int age; /** * Gets the person id. * * @return the person id */ public String getPersonId() { return personId; } /** * Sets the person id. * * @param personId * the new person id */ public void setPersonId(String personId) { this.personId = personId; } /** * Gets the person name. * * @return the person name */ public String getPersonName() { return personName; } /** * Sets the person name. * * @param personName * the new person name */ public void setPersonName(String personName) { this.personName = personName; } /** * Gets the age. * * @return the age */ public int getAge() { return age; } /** * Sets the age. * * @param age * the new age */ public void setAge(int age) { this.age = age; } } ================================================ FILE: examples/basic-examples/kundera-hbase-example/src/main/resources/META-INF/persistence.xml ================================================ com.impetus.kundera.KunderaPersistence ================================================ FILE: examples/basic-examples/kundera-hbase-example/src/test/java/com/impetus/kundera/CRUDTest.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.entities.Person; /** * The Class CRUDTest. */ public class CRUDTest { /** The Constant PU. */ private static final String PU = "hbase_pu"; /** The emf. */ private static EntityManagerFactory emf; /** The em. */ private EntityManager em; /** * Sets the up before class. * * @throws Exception * the exception */ @BeforeClass public static void SetUpBeforeClass() throws Exception { emf = Persistence.createEntityManagerFactory(PU); } /** * Sets the up. * * @throws Exception * the exception */ @Before public void setUp() throws Exception { em = emf.createEntityManager(); } /** * Test crud operations. * * @throws Exception * the exception */ @Test public void testCRUDOperations() throws Exception { testInsert(); testMerge(); testRemove(); } /** * Test insert. * * @throws Exception * the exception */ private void testInsert() throws Exception { Person p = new Person(); p.setPersonId("101"); p.setPersonName("dev"); p.setAge(24); em.persist(p); Person person = em.find(Person.class, "101"); Assert.assertNotNull(person); Assert.assertEquals("101", person.getPersonId()); Assert.assertEquals("dev", person.getPersonName()); } /** * Test merge. */ private void testMerge() { Person person = em.find(Person.class, "101"); person.setPersonName("devender"); em.merge(person); Person p1 = em.find(Person.class, "101"); Assert.assertEquals("devender", p1.getPersonName()); } /** * Test remove. */ private void testRemove() { Person p = em.find(Person.class, "101"); em.remove(p); Person p1 = em.find(Person.class, "101"); Assert.assertNull(p1); } /** * Tear down. * * @throws Exception * the exception */ @After public void tearDown() throws Exception { em.close(); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { if (emf != null) { emf.close(); emf = null; } } } ================================================ FILE: examples/basic-examples/kundera-mongodb-example/pom.xml ================================================ 4.0.0 com.impetus.kundera kundera-mongodb-example jar 1.0 kundera-mongodb-example http://maven.apache.org 3.13 com.impetus.kundera.client kundera-mongo ${kundera.version} junit junit 4.12 test org.apache.maven.plugins maven-compiler-plugin 3.5.1 1.7 1.7 ================================================ FILE: examples/basic-examples/kundera-mongodb-example/src/main/java/com/impetus/kundera/entities/Person.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * The Class Person. */ @Entity @Table(name = "PERSON") public class Person { /** The person id. */ @Id @Column(name = "PERSON_ID") private String personId; /** The person name. */ @Column(name = "PERSON_NAME") private String personName; /** The age. */ @Column(name = "AGE") private int age; /** * Gets the person id. * * @return the person id */ public String getPersonId() { return personId; } /** * Sets the person id. * * @param personId * the new person id */ public void setPersonId(String personId) { this.personId = personId; } /** * Gets the person name. * * @return the person name */ public String getPersonName() { return personName; } /** * Sets the person name. * * @param personName * the new person name */ public void setPersonName(String personName) { this.personName = personName; } /** * Gets the age. * * @return the age */ public int getAge() { return age; } /** * Sets the age. * * @param age * the new age */ public void setAge(int age) { this.age = age; } } ================================================ FILE: examples/basic-examples/kundera-mongodb-example/src/main/resources/META-INF/persistence.xml ================================================ com.impetus.kundera.KunderaPersistence ================================================ FILE: examples/basic-examples/kundera-mongodb-example/src/test/java/com/impetus/kundera/CRUDTest.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.entities.Person; /** * The Class CRUDTest. */ public class CRUDTest { /** The Constant PU. */ private static final String PU = "mongo_pu"; /** The emf. */ private static EntityManagerFactory emf; /** The em. */ private EntityManager em; /** * Sets the up before class. * * @throws Exception * the exception */ @BeforeClass public static void SetUpBeforeClass() throws Exception { emf = Persistence.createEntityManagerFactory(PU); } /** * Sets the up. * * @throws Exception * the exception */ @Before public void setUp() throws Exception { em = emf.createEntityManager(); } /** * Test crud operations. * * @throws Exception * the exception */ @Test public void testCRUDOperations() throws Exception { testInsert(); testMerge(); testRemove(); } /** * Test insert. * * @throws Exception * the exception */ private void testInsert() throws Exception { Person p = new Person(); p.setPersonId("101"); p.setPersonName("dev"); p.setAge(24); em.persist(p); Person person = em.find(Person.class, "101"); Assert.assertNotNull(person); Assert.assertEquals("101", person.getPersonId()); Assert.assertEquals("dev", person.getPersonName()); } /** * Test merge. */ private void testMerge() { Person person = em.find(Person.class, "101"); person.setPersonName("devender"); em.merge(person); Person p1 = em.find(Person.class, "101"); Assert.assertEquals("devender", p1.getPersonName()); } /** * Test remove. */ private void testRemove() { Person p = em.find(Person.class, "101"); em.remove(p); Person p1 = em.find(Person.class, "101"); Assert.assertNull(p1); } /** * Tear down. * * @throws Exception * the exception */ @After public void tearDown() throws Exception { em.close(); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { if (emf != null) { emf.close(); emf = null; } } } ================================================ FILE: examples/basic-examples/polyglot/kundera-mongodb-kudu-example/pom.xml ================================================ 4.0.0 com.impetus.kundera kundera-mongodb-kudu-example jar 1.0 kundera-mongodb-kudu-example http://maven.apache.org 3.13 com.impetus.kundera.client kundera-mongo ${kundera.version} com.impetus.kundera.client kundera-kudu ${kundera.version} junit junit 4.12 test org.apache.maven.plugins maven-compiler-plugin 3.5.1 1.7 1.7 ================================================ FILE: examples/basic-examples/polyglot/kundera-mongodb-kudu-example/src/main/java/com/impetus/kundera/entities/Address.java ================================================ /******************************************************************************* * * Copyright 2017 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * The Class Address. */ @Entity @Table(name = "ADDRESS", schema = "kundera_mongo@mongo_pu") public class Address { /** The address id. */ @Id @Column(name = "ADDRESS_ID") private String addressId; /** The street. */ @Column(name = "STREET") private String street; /** The city. */ @Column(name = "CITY") private String city; /** The country. */ @Column(name = "COUNTRY") private String country; /** * Instantiates a new address. */ public Address() { } /** * Instantiates a new address. * * @param addressId * the address id * @param street * the street * @param city * the city * @param country * the country */ public Address(String addressId, String street, String city, String country) { this.addressId = addressId; this.street = street; this.city = city; this.country = country; } /** * Gets the address id. * * @return the address id */ public String getAddressId() { return addressId; } /** * Sets the address id. * * @param addressId * the new address id */ public void setAddressId(String addressId) { this.addressId = addressId; } /** * Gets the street. * * @return the street */ public String getStreet() { return street; } /** * Sets the street. * * @param street * the new street */ public void setStreet(String street) { this.street = street; } /** * Gets the city. * * @return the city */ public String getCity() { return city; } /** * Sets the city. * * @param city * the new city */ public void setCity(String city) { this.city = city; } /** * Gets the country. * * @return the country */ public String getCountry() { return country; } /** * Sets the country. * * @param country * the new country */ public void setCountry(String country) { this.country = country; } } ================================================ FILE: examples/basic-examples/polyglot/kundera-mongodb-kudu-example/src/main/java/com/impetus/kundera/entities/Person.java ================================================ /******************************************************************************* * * Copyright 2017 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.entities; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; /** * The Class Person. */ @Entity @Table(name = "PERSON", schema = "kundera_kudu@kudu_pu") public class Person { /** The person id. */ @Id @Column(name = "PERSON_ID") private String personId; /** The person name. */ @Column(name = "PERSON_NAME") private String personName; /** The age. */ @Column(name = "AGE") private int age; /** The addresses. */ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinColumn(name = "ADDRESS_ID") private List
addresses; /** * Gets the addresses. * * @return the addresses */ public List
getAddresses() { return addresses; } /** * Sets the addresses. * * @param addresses * the new addresses */ public void setAddresses(List
addresses) { this.addresses = addresses; } /** * Gets the person id. * * @return the person id */ public String getPersonId() { return personId; } /** * Sets the person id. * * @param personId * the new person id */ public void setPersonId(String personId) { this.personId = personId; } /** * Gets the person name. * * @return the person name */ public String getPersonName() { return personName; } /** * Sets the person name. * * @param personName * the new person name */ public void setPersonName(String personName) { this.personName = personName; } /** * Gets the age. * * @return the age */ public int getAge() { return age; } /** * Sets the age. * * @param age * the new age */ public void setAge(int age) { this.age = age; } } ================================================ FILE: examples/basic-examples/polyglot/kundera-mongodb-kudu-example/src/main/resources/META-INF/persistence.xml ================================================ com.impetus.kundera.KunderaPersistence com.impetus.kundera.entities.Address true com.impetus.kundera.KunderaPersistence com.impetus.kundera.entities.Person true ================================================ FILE: examples/basic-examples/polyglot/kundera-mongodb-kudu-example/src/test/java/com/impetus/kundera/CRUDTest.java ================================================ /******************************************************************************* * * Copyright 2017 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera; import java.util.ArrayList; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.entities.Address; import com.impetus.kundera.entities.Person; /** * The Class CRUDTest. */ public class CRUDTest { /** The Constant PU. */ private static final String PU = "mongo_pu,kudu_pu"; /** The emf. */ private static EntityManagerFactory emf; /** The em. */ private EntityManager em; /** * Sets the up before class. * * @throws Exception * the exception */ @BeforeClass public static void SetUpBeforeClass() throws Exception { emf = Persistence.createEntityManagerFactory(PU); } /** * Sets the up. * * @throws Exception * the exception */ @Before public void setUp() throws Exception { em = emf.createEntityManager(); } /** * Test crud operations. * * @throws Exception * the exception */ @Test public void testCRUDOperations() throws Exception { testInsert(); testMerge(); testRemove(); } /** * Test insert. * * @throws Exception * the exception */ private void testInsert() throws Exception { Person p = new Person(); p.setPersonId("101"); p.setPersonName("dev"); p.setAge(24); Address a1 = new Address("a1", "str1", "noida", "india"); Address a2 = new Address("a2", "str2", "bglr", "india"); List
adds = new ArrayList
(); adds.add(a1); adds.add(a2); p.setAddresses(adds); em.persist(p); Person person = em.find(Person.class, "101"); Assert.assertNotNull(person); Assert.assertEquals("101", person.getPersonId()); Assert.assertEquals("dev", person.getPersonName()); Assert.assertEquals("india", person.getAddresses().get(0).getCountry()); } /** * Test merge. */ private void testMerge() { Person person = em.find(Person.class, "101"); person.setPersonName("devender"); em.merge(person); Person p1 = em.find(Person.class, "101"); Assert.assertEquals("devender", p1.getPersonName()); } /** * Test remove. */ private void testRemove() { Person p = em.find(Person.class, "101"); em.remove(p); Person p1 = em.find(Person.class, "101"); Assert.assertNull(p1); } /** * Tear down. * * @throws Exception * the exception */ @After public void tearDown() throws Exception { em.close(); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { if (emf != null) { emf.close(); emf = null; } } } ================================================ FILE: examples/container/jboss/data-keeper/pom.xml ================================================ 4.0.0 com.impetus.kundera.examples jboss 3.3-SNAPSHOT com.impetus.kundera.examples jboss-data-keeper war 1.0-SNAPSHOT data-keeper http://maven.apache.org UTF-8 3.0.5.RELEASE 3.3-SNAPSHOT junit junit 4.8.2 test com.impetus.kundera.core kundera-core ${kundera.version} com.impetus.kundera.client kundera-cassandra ${kundera.version} io.netty netty com.impetus.kundera.client kundera-mongo ${kundera.version} javax.servlet javax.servlet-api 3.0.1 provided com.sun.faces jsf-api 2.1.10 com.sun.faces jsf-impl 2.1.10 jstl jstl 1.2 org.primefaces primefaces 3.3.1 commons-fileupload commons-fileupload 1.3 commons-io commons-io 2.4 org.springframework spring-core ${spring.version} org.springframework spring-web ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-aop ${spring.version} org.springframework spring-context-support ${spring.version} org.springframework spring-tx ${spring.version} org.springframework spring-orm ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-test ${spring.version} data-keeper maven-compiler-plugin 1.7 1.7 true prime-repo PrimeFaces Maven Repository http://repository.primefaces.org default ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/DocumentDownloadBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.io.IOException; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "documentDownloadBean") @RequestScoped public class DocumentDownloadBean { private int documentId; public int getDocumentId() { return documentId; } public void setDocumentId(int documentId) { this.documentId = documentId; } /** * Download file used for downloading photo. * * @param photoPath * the photo path */ public void download() { DataKeeperService service = DataKeeperUtils.getService(); setDocumentId(Integer.parseInt(FacesUtils.getRequest().getParameter("documentId"))); DocumentInfo document = service.findDocumentByDocumentId(getDocumentId()); final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance() .getExternalContext().getResponse(); ServletOutputStream out = null; try { out = response.getOutputStream(); out.write(document.getData(), 0, 4096); } catch (IOException e) { } finally { if (out != null) { try { out.flush(); out.close(); } catch (IOException e) { } } } FacesContext.getCurrentInstance().responseComplete(); } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/DocumentSearchBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; @ManagedBean(name = "documentSearchBean") @RequestScoped public class DocumentSearchBean { private String searchText; private int searchBy; private List documents; public String getSearchText() { return searchText; } public void setSearchText(String searchText) { this.searchText = searchText; } public int getSearchBy() { return searchBy; } public void setSearchBy(int searchBy) { this.searchBy = searchBy; } public List getDocuments() { return documents; } public void setDocuments(List documents) { this.documents = documents; } public List search() { documents = new ArrayList(); DataKeeperService service = DataKeeperUtils.getService(); switch (SearchType.getSearchType(searchBy)) { case ID: documents = service.findDocumentByEmployeeId(getSearchText()); break; case NAME: documents = service.findDocumentByEmployeeName(getSearchText()); break; } return documents; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/DocumentUploadBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.util.Date; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.UploadedFile; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "documentUploadBean") @RequestScoped public class DocumentUploadBean { public DocumentUploadBean() { } public String handleFileUpload(FileUploadEvent event) { HttpSession session = FacesUtils.getSession(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); DataKeeperService service = DataKeeperUtils.getService(); UploadedFile file = event.getFile(); if (file != null) { DocumentInfo dataInfo = new DocumentInfo(); dataInfo.setData(file.getContents()); dataInfo.setDocumentName(file.getFileName()); dataInfo.setSize(file.getSize()); dataInfo.setOwnerName(employee.getEmployeeName()); dataInfo.setOwnerId(employee.getEmployeeId()); dataInfo.setUplodedDate(new Date()); service.insertData(dataInfo); FacesMessage msg = new FacesMessage("Succesful", file.getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); return "successfully uploaded"; } return "uploading fail"; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/EmployeeSearchBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.servlet.http.HttpSession; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "subordinateSearchBean") @RequestScoped public class EmployeeSearchBean { private List subordinates = new ArrayList(); private int managerId; private int noOfYears; private String searchText; private int searchBy; public String getSearchText() { return searchText; } public void setSearchText(String searchText) { this.searchText = searchText; } public int getSearchBy() { return searchBy; } public void setSearchBy(int searchBy) { this.searchBy = searchBy; } /** * @return the managerName */ public int getManagerId() { return managerId; } /** * @param managerName * the managerName to set */ public void setManagerId(int managerId) { this.managerId = managerId; } public int getNoOfYears() { return noOfYears; } public void setNoOfYears(int noOfYears) { this.noOfYears = noOfYears; } public List getSubordinates() { return subordinates; } public void setSubordinates(List subordinates) { this.subordinates = subordinates; } public String searchSubordinates() { DataKeeperService service = DataKeeperUtils.getService(); setManagerId(Integer.parseInt(FacesUtils.getRequest().getParameter("managerId"))); List subordinates = service.findSubOrdinates(getManagerId()); if (subordinates != null) { this.subordinates = subordinates; } return "foundEmployess"; } public String searchEmployee() { DataKeeperService service = DataKeeperUtils.getService(); Employee employee = null; switch (SearchType.getSearchType(searchBy)) { case ID: employee = service.findEmployee(Integer.parseInt(getSearchText())); break; case NAME: employee = service.findEmployeeByName(getSearchText()); break; } if (employee != null) { List employees = new ArrayList(); employees.add(employee); this.subordinates = employees; } return "foundEmployess"; } public String searchEmployeeByYearOfComplition() { DataKeeperService service = DataKeeperUtils.getService(); HttpSession session = FacesUtils.getSession(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); List employees = service.findEmployeeByDateOfJoining(getNoOfYears(), employee.getCompany()); if (employees != null) { this.subordinates = employees; } return "foundEmployess"; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/IncrementCounterBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.servlet.http.HttpSession; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.entities.SubordinatesCounter; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "incrementCounterBean") @RequestScoped public class IncrementCounterBean { private SubordinatesCounter counter = new SubordinatesCounter(); public IncrementCounterBean() { } public SubordinatesCounter getCounter() { return counter; } public void setCounter(SubordinatesCounter counter) { this.counter = counter; } public String incrementCounter() { DataKeeperService service = DataKeeperUtils.getService(); HttpSession session = FacesUtils.getSession(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); counter.setEmployeeId(employee.getEmployeeId()); service.incrementCounter(counter); return "success"; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/LoginBean.java ================================================ /** * Copyright 2012 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.datakeeper.beans; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; /** * * * @author amresh.singh */ @ManagedBean(name = "loginBean") @RequestScoped public class LoginBean { private Employee employee = new Employee(); public LoginBean() { } public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public String logOff() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("You have successfully Logged off")); session.invalidate(); return DataKeeperConstants.OUTCOME_LOGOFF_SUCCESSFUL; } public String deleteAccount() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); DataKeeperService service = DataKeeperUtils.getService(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); service.removeEmployee(employee); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Account successfully deleted")); session.invalidate(); return "Account successfully deleted"; } public String authenticate() { String outcome = null; // Validates Parameters if (StringUtils.isBlank(employee.getEmployeeName())) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Please enter your user name")); outcome = DataKeeperConstants.OUTCOME_LOGIN_FAILED; } if (StringUtils.isBlank(employee.getPassword())) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Please enter password")); outcome = DataKeeperConstants.OUTCOME_LOGIN_FAILED; } if (StringUtils.isNotBlank(outcome)) { return outcome; } else { DataKeeperService service = DataKeeperUtils.getService(); Employee foundEmployee = service.findEmployeeByName(employee.getEmployeeName()); boolean success = service.authenticateEmployee(foundEmployee, employee.getPassword()); if (!success) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Incorrect User Name/Password")); outcome = DataKeeperConstants.OUTCOME_LOGIN_FAILED; } else { outcome = DataKeeperConstants.OUTCOME_LOGIN_SUCCESSFUL; HttpSession session = FacesUtils.getSession(); session.setAttribute(DataKeeperConstants.EMPLOYEE, foundEmployee); } return outcome; } } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/RegisterBean.java ================================================ /** * Copyright 2012 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.datakeeper.beans; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import org.primefaces.event.FlowEvent; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; /** * * * @author Kuldeep.Mishra */ @ManagedBean(name = "registerBean") @RequestScoped public class RegisterBean { private Employee employee = new Employee(); private int managerId; public RegisterBean() { } public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public int getManagerId() { return managerId; } public void setManagerId(int managerId) { this.managerId = managerId; } public String onFlowProcess(FlowEvent event) { return event.getNewStep(); } public String save() { DataKeeperService service = DataKeeperUtils.getService(); Employee manager = service.findEmployee(managerId); employee.setManager(manager); employee.setTimestamp(employee.getJoiningDate().getTime()); service.insertEmployee(employee); FacesMessage msg = new FacesMessage("SignUp Successful! Welcome, " + employee.getEmployeeName()); FacesContext.getCurrentInstance().addMessage(null, msg); return "signUpSuccessful"; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/SearchType.java ================================================ /** * */ package com.impetus.kundera.datakeeper.beans; /** * @author Kuldeep.Mishra * */ enum SearchType { ID, NAME; static SearchType getSearchType(int searchBy) { if (searchBy == 1) { return ID; } else if (searchBy == 0) { return NAME; } return null; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/dao/DataKeeperDao.java ================================================ package com.impetus.kundera.datakeeper.dao; import java.util.List; import javax.persistence.EntityManager; /** * @author Kuldeep.Mishra * */ public interface DataKeeperDao { EntityManager getEntityManager(); void closeEntityManager(); void clearEntityManager(); void shutDown(); void insert(Object entity); void merge(Object entity); void remove(Object entity); T findById(Class entityClazz, Object id); List findByQuery(String Query); List findByQuery(String queryString, String paramater, Object parameterValue); } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/dao/DataKeeperDaoImpl.java ================================================ package com.impetus.kundera.datakeeper.dao; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContextType; import javax.persistence.Query; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.impetus.kundera.datakeeper.service.DataKeeperServiceImpl; /** * @author Kuldeep.Mishra * */ // @Transactional(propagation = Propagation.REQUIRED) public class DataKeeperDaoImpl implements DataKeeperDao { /** * logger used for logging statement. */ private static final Logger log = LoggerFactory.getLogger(DataKeeperServiceImpl.class); @PersistenceContext(unitName = "cassandra-pu,mongo-pu", type = PersistenceContextType.EXTENDED) private EntityManager em; public DataKeeperDaoImpl() { } @Override public void insert(Object entity) { em.persist(entity); em.clear(); } @Override public void merge(Object entity) { em.merge(entity); em.clear(); } @Override public void remove(Object entity) { em.remove(entity); em.clear(); } @Override public T findById(Class entityClazz, Object id) { T results = em.find(entityClazz, id); return results; } @Override public List findByQuery(String queryString) { log.info(queryString); Query query = em.createQuery(queryString); List resultList = query.getResultList(); return resultList; } @Override public List findByQuery(String queryString, String paramater, Object parameterValue) { Query query = em.createQuery(queryString); query.setParameter(paramater, parameterValue); log.info(queryString); List resultList = query.getResultList(); return resultList; } @Override public EntityManager getEntityManager() { return em; } @Override public void closeEntityManager() { if (em != null) { em.close(); } } @Override public void clearEntityManager() { if (em != null) { em.clear(); } } @Override public void shutDown() { if (em != null) { em.close(); } } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/entities/DocumentInfo.java ================================================ package com.impetus.kundera.datakeeper.entities; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.primefaces.model.StreamedContent; import com.impetus.kundera.datakeeper.utils.DataFormat; import com.impetus.kundera.index.Index; import com.impetus.kundera.index.IndexCollection; /** * @author Kuldeep.Mishra * */ @Entity @Table(name = "DOCUMENT", schema = "datakeeper@mongo-pu") @IndexCollection(columns = { @Index(name = "ownerName"), @Index(name = "ownerId"), @Index(name = "documentName") }) public class DocumentInfo { @Id @Column(name = "DOCUMENT_ID") @GeneratedValue() private String dataId; @Column(name = "EMPLOYEE_NAME") private String ownerName; @Column(name = "EMPLOYEE_ID") private int ownerId; @Column(name = "UPLOADED_DATE") private Date uplodedDate; @Column(name = "DOCUMENT_FORMAT") private DataFormat dataFormat; @Column(name = "DOCUMENT_NAME") private String documentName; @Column(name = "DATA") private byte[] data; private StreamedContent file; @Column(name = "SIZE") private long size; /** * @return the dataId */ public String getDataId() { return dataId; } /** * @param dataId * the dataId to set */ public void setDataId(String dataId) { this.dataId = dataId; } /** * @return the ownerName */ public String getOwnerName() { return ownerName; } /** * @param ownerName * the ownerName to set */ public void setOwnerName(String ownerName) { this.ownerName = ownerName; } /** * @return the ownerId */ public int getOwnerId() { return ownerId; } /** * @param ownerId * the ownerId to set */ public void setOwnerId(int ownerId) { this.ownerId = ownerId; } /** * @return the uplodedDate */ public Date getUplodedDate() { return uplodedDate; } /** * @param uplodedDate * the uplodedDate to set */ public void setUplodedDate(Date uplodedDate) { this.uplodedDate = uplodedDate; } /** * @return the dataFormat */ public DataFormat getDataFormat() { return dataFormat; } /** * @param dataFormat * the dataFormat to set */ public void setDataFormat(DataFormat dataFormat) { this.dataFormat = dataFormat; } public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public String getDocumentName() { return documentName; } public void setDocumentName(String documentName) { this.documentName = documentName; } public long getSize() { return size; } public void setSize(long size) { this.size = size; } public StreamedContent getFile() { return file; } public void addFile(StreamedContent file) { this.file = file; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/entities/Employee.java ================================================ package com.impetus.kundera.datakeeper.entities; import java.util.Date; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import com.impetus.kundera.index.Index; import com.impetus.kundera.index.IndexCollection; /** * @author Kuldeep.Mishra * */ @Entity @Table(name = "EMPLOYEE", schema = "datakeeper@cassandra-pu") @IndexCollection(columns = { @Index(name = "employeeName"), @Index(name = "designation"), @Index(name = "experience"), @Index(name = "joiningDate"), @Index(name = "currentProject"), @Index(name = "timestamp"), @Index(name = "company") }) public class Employee { @Id @Column(name = "EMPLOYEE_ID") @GeneratedValue(strategy = GenerationType.TABLE) private int employeeId; @Column(name = "PASSWORD") private String password; @Column(name = "EMPLOYEE_NAME") private String employeeName; @Column(name = "EXPERIENCE") private int experience; @Column(name = "JOINING_DATE") private Date joiningDate; @Column(name = "DESIGNATION") private String designation; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "MANAGER_ID") private Employee manager; @OneToMany(fetch = FetchType.EAGER, mappedBy = "manager") private List subordinates; @Column(name = "PROJECT") private String currentProject; @Column(name = "COMPANY") private String company; @Column(name = "JOINING_TIMESTAMP") private long timestamp; public int getEmployeeId() { return employeeId; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmployeeName() { return employeeName; } public void setEmployeeName(String employeeName) { this.employeeName = employeeName; } public int getExperience() { return experience; } public void setExperience(int experience) { this.experience = experience; } public Date getJoiningDate() { return joiningDate; } public void setJoiningDate(Date joiningDate) { this.joiningDate = joiningDate; } public String getDesignation() { return designation; } public void setDesignation(String designation) { this.designation = designation; } public Employee getManager() { return manager; } public void setManager(Employee manager) { this.manager = manager; } public String getCurrentProject() { return currentProject; } public void setCurrentProject(String currentProject) { this.currentProject = currentProject; } public List getSubordinates() { return subordinates; } public void setSubordinates(List subordinates) { this.subordinates = subordinates; } public long getTimestamp() { return timestamp; } public void setTimestamp(long timestamp) { this.timestamp = timestamp; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/entities/SubordinatesCounter.java ================================================ package com.impetus.kundera.datakeeper.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "SUBORDINATES_COUNTER", schema = "datakeeper@cassandra-pu") public class SubordinatesCounter { @Id @Column(name = "EMPLOYEE_ID") private int employeeId; @Column(name = "SUBORDINATES_COUNTER") private int noOfSubordinates; public int getEmployeeId() { return employeeId; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public int getNoOfSubordinates() { return noOfSubordinates; } public void setNoOfSubordinates(int noOfSubordinates) { this.noOfSubordinates = noOfSubordinates; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/service/DataKeeperService.java ================================================ package com.impetus.kundera.datakeeper.service; import java.util.List; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.entities.SubordinatesCounter; /** * @author Kuldeep.Mishra * */ public interface DataKeeperService { void insertEmployee(Employee employee); void insertData(DocumentInfo data); Employee findEmployee(Object id); Employee findEmployeeByName(String employeeName); List findDocumentByEmployeeId(String employeeId); List findDocumentByEmployeeName(String employeeName); DocumentInfo findDocumentByDocumentId(int documentId); void removeEmployee(Employee employee); boolean authenticateEmployee(Employee employee, String password); List findSubOrdinates(int managerId); List findEmployeeByDateOfJoining(int noOfYears, String company); void incrementCounter(SubordinatesCounter counter); } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/service/DataKeeperServiceImpl.java ================================================ package com.impetus.kundera.datakeeper.service; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; import javax.persistence.PersistenceException; import org.primefaces.model.DefaultStreamedContent; import org.primefaces.model.StreamedContent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.impetus.kundera.datakeeper.dao.DataKeeperDao; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.entities.SubordinatesCounter; /** * @author Kuldeep.Mishra * */ public class DataKeeperServiceImpl implements DataKeeperService { /** * logger used for logging statement. */ private static final Logger log = LoggerFactory.getLogger(DataKeeperServiceImpl.class); private DataKeeperDao dao; public DataKeeperServiceImpl() { } public DataKeeperDao getDao() { return dao; } public void setDao(DataKeeperDao dao) { this.dao = dao; } @Override public void insertEmployee(Employee employee) { employee.setPassword(encriptPassword(employee.getPassword())); dao.insert(employee); log.info("Employee {} information successfully inserted.", employee.getEmployeeName()); if (employee.getManager() != null) { SubordinatesCounter counter = new SubordinatesCounter(); counter.setNoOfSubordinates(1); counter.setEmployeeId(employee.getManager().getEmployeeId()); dao.insert(counter); log.info("Incremented no of subordinates for manager {}, successfully.", employee.getManager() .getEmployeeName()); } } @Override public Employee findEmployeeByName(String employeeName) { Employee employee = null; String query = "Select e from " + Employee.class.getSimpleName() + " e where e.employeeName = " + employeeName; List employees = (List) dao.findByQuery(query); if (!employees.isEmpty() && employees.get(0) != null) { employee = employees.get(0); } return employee; } @Override public List findSubOrdinates(int managerId) { Employee manager = dao.findById(Employee.class, managerId); List subOrdinates = manager != null ? manager.getSubordinates() : new ArrayList(); return subOrdinates; } @Override public void insertData(DocumentInfo data) { dao.insert(data); log.info("Data uploaded by employee {} successfully inserted.", data.getOwnerName()); } @Override public Employee findEmployee(Object employeeId) { log.info("Finding employee by id {} .", employeeId); return dao.findById(Employee.class, employeeId); } @Override public List findDocumentByEmployeeId(String employeeId) { List documents = new ArrayList(); try { Integer.parseInt(employeeId); documents = findDocumentByEmployeeId(Integer.parseInt(employeeId)); } catch (NumberFormatException nfex) { log.warn("{} not a valid employee id.", employeeId); } return documents; } public List findDocumentByEmployeeId(int employeeId) { List documents = new ArrayList(); log.info("Finding document by employee id {} .", employeeId); String query = "Select d from " + DocumentInfo.class.getSimpleName() + " d where d.ownerId = " + employeeId; documents = (List) dao.findByQuery(query); for (DocumentInfo documentInfo : documents) { StreamedContent file = toStreamedContent(documentInfo.getData(), documentInfo.getDocumentName(), "application/pdf"); documentInfo.addFile(file); } return documents; } @Override public List findDocumentByEmployeeName(String employeeName) { List documents = new ArrayList(); log.info("Finding document by employee name {} .", employeeName); String query = "Select d from " + DocumentInfo.class.getSimpleName() + " d where d.ownerName = " + employeeName; documents = (List) dao.findByQuery(query); for (DocumentInfo documentInfo : documents) { StreamedContent file = toStreamedContent(documentInfo.getData(), documentInfo.getDocumentName(), "application/pdf"); documentInfo.addFile(file); } return documents; } @Override public void removeEmployee(Employee employee) { dao.remove(employee); List documents = findDocumentByEmployeeId(employee.getEmployeeId()); for (DocumentInfo document : documents) { if (document != null) { dao.remove(document); } } log.info("Employee successfully removed"); } @Override public boolean authenticateEmployee(Employee employee, String password) { boolean success = false; if (employee != null && (employee.getPassword().equals(encriptPassword(password)))) { log.info("Employee {} successfully authenticated.", employee.getEmployeeName()); success = true; } else { log.info("Employee not authenticated, caused by either wrong userName or wrong password."); } return success; } /** * encriptPassword method used for encrypting password. * * @param password * the password * @return the string */ public String encriptPassword(String password) { String newpassword = null; byte[] defaultBytes = password.getBytes(); try { MessageDigest algorithm = MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(defaultBytes); byte messageDigest[] = algorithm.digest(); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { hexString.append(Integer.toHexString(0xFF & messageDigest[i])); } newpassword = hexString.toString(); } catch (NoSuchAlgorithmException e) { log.error("Error while encripting password {}, caused by : .", password, e); throw new PersistenceException(e); } return newpassword; } @Override public DocumentInfo findDocumentByDocumentId(int documentId) { log.info("Finding document by id."); DocumentInfo document = dao.findById(DocumentInfo.class, documentId); return document; } @Override public List findEmployeeByDateOfJoining(final int noOfYears, final String company) { long currentTimeStamp = System.currentTimeMillis(); long newTimeStamp = currentTimeStamp - (long) noOfYears * 365 * 24 * 60 * 60 * 1000; String query = "Select e from " + Employee.class.getSimpleName() + " e where e.company = " + company + " and e.timestamp <= :timestamp"; List subOrdinates = (List) dao.findByQuery(query, "timestamp", newTimeStamp); return subOrdinates; } @Override public void incrementCounter(SubordinatesCounter counter) { dao.insert(counter); } private StreamedContent toStreamedContent(byte[] bytes, String fileName, String contentType) { InputStream is = new ByteArrayInputStream(bytes); StreamedContent file = new DefaultStreamedContent(is, contentType, fileName); return file; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/DataFormat.java ================================================ package com.impetus.kundera.datakeeper.utils; /** * @author Kuldeep.Mishra * */ public enum DataFormat { XLS, XLSX, PDF, DOC, DOCX, AVI; /** * If provided protocol is within allowed protocol. * * @param protocol * protocol * @return true, if it is in allowed protocol. */ public static boolean isValidFormat(String format) { try { DataFormat.valueOf(format.toUpperCase()); return true; } catch (IllegalArgumentException iex) { return false; } } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/DataKeeperConstants.java ================================================ /** * Copyright 2012 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.datakeeper.utils; /** * * @author amresh.singh */ public class DataKeeperConstants { public static final String OUTCOME_LOGIN_FAILED = "loginFailed"; public static final String OUTCOME_LOGIN_SUCCESSFUL = "loginSuccessful"; public static final String OUTCOME_SIGNUP_SUCCESSFUL = "signUpSuccessful"; public static final String OUTCOME_LOGOFF_SUCCESSFUL = "logOfSuccessful"; public static final String OUTCOME_TIMELINE = "timeline"; public static final String PERSISTENCE_UNIT = "twitample_cassandra"; public static final String EMPLOYEE_ID = "employeeId"; public static final String EMPLOYEE = "employee"; public static final String EMPLOYEE_NAME = "employeeName"; public static final String TWEET_DEVICE_WEB = "Web"; } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/DataKeeperUtils.java ================================================ package com.impetus.kundera.datakeeper.utils; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.impetus.kundera.datakeeper.service.DataKeeperService; public class DataKeeperUtils { public static DataKeeperService getService() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); DataKeeperService datakeeper = (DataKeeperService) session.getAttribute("datakeeper"); if (datakeeper == null) { BeanFactory beanfactory = new ClassPathXmlApplicationContext("appContext.xml"); datakeeper = (DataKeeperService) beanfactory.getBean("datakeeper"); session.setAttribute("datakeeper", datakeeper); } return datakeeper; } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/FacesUtils.java ================================================ package com.impetus.kundera.datakeeper.utils; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; /** * The Class FacesUtils has method for getting session variables and request * variables. */ public class FacesUtils { /** * getSession method used for getting session variable. * * @return the session */ public static HttpSession getSession() { return (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); } /** * getRequest method used for getting request variable. * * @return the request */ public static HttpServletRequest getRequest() { return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); } } ================================================ FILE: examples/container/jboss/data-keeper/src/main/resources/META-INF/persistence.xml ================================================ com.impetus.kundera.KunderaPersistence com.impetus.kundera.datakeeper.entities.DocumentInfo com.impetus.kundera.datakeeper.entities.Employee com.impetus.kundera.datakeeper.entities.SubordinatesCounter true com.impetus.kundera.KunderaPersistence com.impetus.kundera.datakeeper.entities.DocumentInfo true com.impetus.kundera.KunderaPersistence ================================================ FILE: examples/container/jboss/data-keeper/src/main/resources/appContext.xml ================================================ META-INF/persistence.xml org.apache.naming.java.javaURLContextFactory org.apache.naming ================================================ FILE: examples/container/jboss/data-keeper/src/main/resources/kunderaCounter.xml ================================================ cassandra datakeeper SUBORDINATES_COUNTER
================================================ FILE: examples/container/jboss/data-keeper/src/main/resources/log4j.properties ================================================ log4j.rootLogger=INFO, DRFA, CONSOLE ### direct log messages to stdout ### log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender log4j.appender.DRFA.File=${user.home}/kundera-benchmark.log # Rollover at midnight log4j.appender.DRFA.DatePattern=.yyyy-MM-dd log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout # Pattern format: Date LogLevel LoggerName LogMessage log4j.appender.DRFA.layout.ConversionPattern=%d [%-5p] [%t] %c %x - %m%n log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d [%-5p] [%t] %c %x - %m%n ================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/WEB-INF/faces-config.xml ================================================ /xhtml/login/login.xhtml loginSuccessful /xhtml/home/timeline.xhtml loginFailed /xhtml/login/login.xhtml /xhtml/register/signUp.xhtml signUpSuccessful /xhtml/login/login.xhtml /xhtml/register/signUp.xhtml timeline /xhtml/home/timeline.xhtml /xhtml/home/timeline.xhtml foundEmployess /xhtml/home/showSubordinatesInfo.xhtml /xhtml/home/showSubordinatesInfo.xhtml foundEmployess /xhtml/home/showSubordinatesInfo.xhtml logOfSuccessful /xhtml/login/login.xhtml Account successfully deleted /xhtml/login/login.xhtml ================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/WEB-INF/web.xml ================================================ DataKeeper application javax.faces.STATE_SAVING_METHOD server javax.faces.CONFIG_FILES /WEB-INF/faces-config.xml com.sun.faces.config.ConfigureListener Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.jsf xhtml/login/login.jsf PrimeFaces FileUpload Filter org.primefaces.webapp.filter.FileUploadFilter thresholdSize 512000 uploadDirectory C:\etc PrimeFaces FileUpload Filter Faces Servlet ================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/appContext.xml ================================================ META-INF/persistence.xml org.apache.naming.java.javaURLContextFactory org.apache.naming ================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/index.jsp ================================================

Hello World!

================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/common/header.xhtml ================================================

================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/common/leftPane.xhtml ================================================


================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/common/loggedInHeader.xhtml ================================================

================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/home/showSubordinatesInfo.xhtml ================================================ DataKeeper :: Employees Information
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/home/showSubordinatesInfoTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>

Default content
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/home/timeline.xhtml ================================================ DataKeeper :: Home
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/home/timelineTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>

Default content
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/login/login.xhtml ================================================ Kwitter :: Login

Not a member?
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/login/loginTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>
Default content
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/register/signUp.xhtml ================================================ Kwitter :: SignUp

================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/register/signUpTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>
Default content
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/settings/settings.xhtml ================================================ Kwitter :: Settings
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/settings/settingsTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>

Default content
================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/upload/uploadDocument.xhtml ================================================ DataKeeper :: Upload ================================================ FILE: examples/container/jboss/data-keeper/src/main/webapp/xhtml/upload/uploadDocumentTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>
Default content
================================================ FILE: examples/container/jboss/pom.xml ================================================ 4.0.0 com.impetus.kundera.examples container 3.3-SNAPSHOT com.impetus.kundera.examples jboss 3.3-SNAPSHOT pom jboss-app https://github.com/impetus-opensource/Kundera all true data-keeper ================================================ FILE: examples/container/pom.xml ================================================ 4.0.0 com.impetus.kundera examples 3.3-SNAPSHOT com.impetus.kundera.examples container 3.3-SNAPSHOT pom container https://github.com/impetus-opensource/Kundera The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo scm:git:git@github.com:impetus-opensource/Kundera.git scm:git:git@github.com:impetus-opensource/Kundera.git git@github.com:impetus-opensource/Kundera.git vivek.mishra Vivek Mishra vivek.mishra@yahoo.com amresh.singh Amresh Kumar Singh amresh1002@gmail.com Kuldeep.mishra Kuldeep Kumar Mishra kuld.cs.mishra@gmail.com UTF-8 UTF-8 jacoco reuseReports java clover Clover maven repo http://mirrors.ibiblio.org/pub/mirrors/maven true true kundera-missing Kundera Public Missing Resources Repository http://kundera.googlecode.com/svn/maven2/maven-missing-resources true true riptano riptano http://mvn.riptano.com/content/repositories/public maven.scale7.org Scale7 Maven Repo https://github.com/s7/mvnrepo/raw/master true all true jboss tomcat-glassfish ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/pom.xml ================================================ 4.0.0 com.impetus.kundera.examples tomcat-glassfish 3.3-SNAPSHOT com.impetus.kundera.examples data-keeper war 1.0-SNAPSHOT data-keeper http://maven.apache.org UTF-8 3.0.5.RELEASE 3.3-SNAPSHOT junit junit 4.8.2 test com.impetus.kundera.core kundera-core ${kundera.version} com.impetus.kundera.client kundera-cassandra ${kundera.version} com.impetus.kundera.client kundera-mongo ${kundera.version} javax.servlet javax.servlet-api 3.0.1 provided com.sun.faces jsf-api 2.1.10 com.sun.faces jsf-impl 2.1.10 jstl jstl 1.2 org.primefaces primefaces 3.3.1 commons-fileupload commons-fileupload 1.3 commons-io commons-io 2.4 org.springframework spring-core ${spring.version} org.springframework spring-web ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-aop ${spring.version} org.springframework spring-context-support ${spring.version} org.springframework spring-tx ${spring.version} org.springframework spring-orm ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-test ${spring.version} data-keeper maven-compiler-plugin 1.7 1.7 true ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/DocumentDownloadBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.io.IOException; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "documentDownloadBean") @RequestScoped public class DocumentDownloadBean { private int documentId; public int getDocumentId() { return documentId; } public void setDocumentId(int documentId) { this.documentId = documentId; } /** * Download file used for downloading photo. * * @param photoPath * the photo path */ public void download() { DataKeeperService service = DataKeeperUtils.getService(); setDocumentId(Integer.parseInt(FacesUtils.getRequest().getParameter("documentId"))); DocumentInfo document = service.findDocumentByDocumentId(getDocumentId()); final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance() .getExternalContext().getResponse(); ServletOutputStream out = null; try { out = response.getOutputStream(); out.write(document.getData(), 0, 4096); } catch (IOException e) { } finally { if (out != null) { try { out.flush(); out.close(); } catch (IOException e) { } } } FacesContext.getCurrentInstance().responseComplete(); } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/DocumentSearchBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; @ManagedBean(name = "documentSearchBean") @RequestScoped public class DocumentSearchBean { private String searchText; private int searchBy; private List documents; public String getSearchText() { return searchText; } public void setSearchText(String searchText) { this.searchText = searchText; } public int getSearchBy() { return searchBy; } public void setSearchBy(int searchBy) { this.searchBy = searchBy; } public List getDocuments() { return documents; } public void setDocuments(List documents) { this.documents = documents; } public List search() { documents = new ArrayList(); DataKeeperService service = DataKeeperUtils.getService(); switch (SearchType.getSearchType(searchBy)) { case ID: documents = service.findDocumentByEmployeeId(getSearchText()); break; case NAME: documents = service.findDocumentByEmployeeName(getSearchText()); break; } return documents; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/DocumentUploadBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.util.Date; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.UploadedFile; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "documentUploadBean") @RequestScoped public class DocumentUploadBean { public DocumentUploadBean() { } public String handleFileUpload(FileUploadEvent event) { HttpSession session = FacesUtils.getSession(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); DataKeeperService service = DataKeeperUtils.getService(); UploadedFile file = event.getFile(); if (file != null) { DocumentInfo dataInfo = new DocumentInfo(); dataInfo.setData(file.getContents()); dataInfo.setDocumentName(file.getFileName()); dataInfo.setSize(file.getSize()); dataInfo.setOwnerName(employee.getEmployeeName()); dataInfo.setOwnerId(employee.getEmployeeId()); dataInfo.setUplodedDate(new Date()); service.insertData(dataInfo); FacesMessage msg = new FacesMessage("Succesful", file.getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); return "successfully uploaded"; } return "uploading fail"; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/EmployeeSearchBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.servlet.http.HttpSession; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "subordinateSearchBean") @RequestScoped public class EmployeeSearchBean { private List subordinates = new ArrayList(); private int managerId; private int noOfYears; private String searchText; private int searchBy; public String getSearchText() { return searchText; } public void setSearchText(String searchText) { this.searchText = searchText; } public int getSearchBy() { return searchBy; } public void setSearchBy(int searchBy) { this.searchBy = searchBy; } /** * @return the managerName */ public int getManagerId() { return managerId; } /** * @param managerName * the managerName to set */ public void setManagerId(int managerId) { this.managerId = managerId; } public int getNoOfYears() { return noOfYears; } public void setNoOfYears(int noOfYears) { this.noOfYears = noOfYears; } public List getSubordinates() { return subordinates; } public void setSubordinates(List subordinates) { this.subordinates = subordinates; } public String searchSubordinates() { DataKeeperService service = DataKeeperUtils.getService(); setManagerId(Integer.parseInt(FacesUtils.getRequest().getParameter("managerId"))); List subordinates = service.findSubOrdinates(getManagerId()); if (subordinates != null) { this.subordinates = subordinates; } return "foundEmployess"; } public String searchEmployee() { DataKeeperService service = DataKeeperUtils.getService(); Employee employee = null; switch (SearchType.getSearchType(searchBy)) { case ID: employee = service.findEmployee(Integer.parseInt(getSearchText())); break; case NAME: employee = service.findEmployeeByName(getSearchText()); break; } if (employee != null) { List employees = new ArrayList(); employees.add(employee); this.subordinates = employees; } return "foundEmployess"; } public String searchEmployeeByYearOfComplition() { DataKeeperService service = DataKeeperUtils.getService(); HttpSession session = FacesUtils.getSession(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); List employees = service.findEmployeeByDateOfJoining(getNoOfYears(), employee.getCompany()); if (employees != null) { this.subordinates = employees; } return "foundEmployess"; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/IncrementCounterBean.java ================================================ package com.impetus.kundera.datakeeper.beans; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.servlet.http.HttpSession; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.entities.SubordinatesCounter; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; @ManagedBean(name = "incrementCounterBean") @RequestScoped public class IncrementCounterBean { private SubordinatesCounter counter = new SubordinatesCounter(); public IncrementCounterBean() { } public SubordinatesCounter getCounter() { return counter; } public void setCounter(SubordinatesCounter counter) { this.counter = counter; } public String incrementCounter() { DataKeeperService service = DataKeeperUtils.getService(); HttpSession session = FacesUtils.getSession(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); counter.setEmployeeId(employee.getEmployeeId()); service.incrementCounter(counter); return "success"; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/LoginBean.java ================================================ /** * Copyright 2012 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.datakeeper.beans; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperConstants; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; import com.impetus.kundera.datakeeper.utils.FacesUtils; /** * * * @author amresh.singh */ @ManagedBean(name = "loginBean") @RequestScoped public class LoginBean { private Employee employee = new Employee(); public LoginBean() { } public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public String logOff() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("You have successfully Logged off")); session.invalidate(); return DataKeeperConstants.OUTCOME_LOGOFF_SUCCESSFUL; } public String deleteAccount() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); DataKeeperService service = DataKeeperUtils.getService(); Employee employee = (Employee) session.getAttribute(DataKeeperConstants.EMPLOYEE); service.removeEmployee(employee); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Account successfully deleted")); session.invalidate(); return "Account successfully deleted"; } public String authenticate() { String outcome = null; // Validates Parameters if (StringUtils.isBlank(employee.getEmployeeName())) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Please enter your user name")); outcome = DataKeeperConstants.OUTCOME_LOGIN_FAILED; } if (StringUtils.isBlank(employee.getPassword())) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Please enter password")); outcome = DataKeeperConstants.OUTCOME_LOGIN_FAILED; } if (StringUtils.isNotBlank(outcome)) { return outcome; } else { DataKeeperService service = DataKeeperUtils.getService(); Employee foundEmployee = service.findEmployeeByName(employee.getEmployeeName()); boolean success = service.authenticateEmployee(foundEmployee, employee.getPassword()); if (!success) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Incorrect User Name/Password")); outcome = DataKeeperConstants.OUTCOME_LOGIN_FAILED; } else { outcome = DataKeeperConstants.OUTCOME_LOGIN_SUCCESSFUL; HttpSession session = FacesUtils.getSession(); session.setAttribute(DataKeeperConstants.EMPLOYEE, foundEmployee); } return outcome; } } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/RegisterBean.java ================================================ /** * Copyright 2012 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.datakeeper.beans; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import org.primefaces.event.FlowEvent; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.service.DataKeeperService; import com.impetus.kundera.datakeeper.utils.DataKeeperUtils; /** * * * @author Kuldeep.Mishra */ @ManagedBean(name = "registerBean") @RequestScoped public class RegisterBean { private Employee employee = new Employee(); private int managerId; public RegisterBean() { } public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public int getManagerId() { return managerId; } public void setManagerId(int managerId) { this.managerId = managerId; } public String onFlowProcess(FlowEvent event) { return event.getNewStep(); } public String save() { DataKeeperService service = DataKeeperUtils.getService(); Employee manager = service.findEmployee(managerId); employee.setManager(manager); employee.setTimestamp(employee.getJoiningDate().getTime()); service.insertEmployee(employee); FacesMessage msg = new FacesMessage("SignUp Successful! Welcome, " + employee.getEmployeeName()); FacesContext.getCurrentInstance().addMessage(null, msg); return "signUpSuccessful"; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/beans/SearchType.java ================================================ /** * */ package com.impetus.kundera.datakeeper.beans; /** * @author Kuldeep.Mishra * */ enum SearchType { ID, NAME; static SearchType getSearchType(int searchBy) { if (searchBy == 1) { return ID; } else if (searchBy == 0) { return NAME; } return null; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/dao/DataKeeperDao.java ================================================ package com.impetus.kundera.datakeeper.dao; import java.util.List; import javax.persistence.EntityManager; /** * @author Kuldeep.Mishra * */ public interface DataKeeperDao { EntityManager getEntityManager(); void closeEntityManager(); void clearEntityManager(); void shutDown(); void insert(Object entity); void merge(Object entity); void remove(Object entity); T findById(Class entityClazz, Object id); List findByQuery(String Query); List findByQuery(String queryString, String paramater, Object parameterValue); } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/dao/DataKeeperDaoImpl.java ================================================ package com.impetus.kundera.datakeeper.dao; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContextType; import javax.persistence.Query; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.impetus.kundera.datakeeper.service.DataKeeperServiceImpl; /** * @author Kuldeep.Mishra * */ // @Transactional(propagation = Propagation.REQUIRED) public class DataKeeperDaoImpl implements DataKeeperDao { /** * logger used for logging statement. */ private static final Logger log = LoggerFactory.getLogger(DataKeeperServiceImpl.class); @PersistenceContext(unitName = "cassandra-pu,mongo-pu", type = PersistenceContextType.EXTENDED) private EntityManager em; public DataKeeperDaoImpl() { } @Override public void insert(Object entity) { em.persist(entity); em.clear(); } @Override public void merge(Object entity) { em.merge(entity); em.clear(); } @Override public void remove(Object entity) { em.remove(entity); em.clear(); } @Override public T findById(Class entityClazz, Object id) { T results = em.find(entityClazz, id); return results; } @Override public List findByQuery(String queryString) { log.info(queryString); Query query = em.createQuery(queryString); List resultList = query.getResultList(); return resultList; } @Override public List findByQuery(String queryString, String paramater, Object parameterValue) { Query query = em.createQuery(queryString); query.setParameter(paramater, parameterValue); log.info(queryString); List resultList = query.getResultList(); return resultList; } @Override public EntityManager getEntityManager() { return em; } @Override public void closeEntityManager() { if (em != null) { em.close(); } } @Override public void clearEntityManager() { if (em != null) { em.clear(); } } @Override public void shutDown() { if (em != null) { em.close(); } } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/entities/DocumentInfo.java ================================================ package com.impetus.kundera.datakeeper.entities; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.primefaces.model.StreamedContent; import com.impetus.kundera.datakeeper.utils.DataFormat; import com.impetus.kundera.index.Index; import com.impetus.kundera.index.IndexCollection; /** * @author Kuldeep.Mishra * */ @Entity @Table(name = "DOCUMENT", schema = "datakeeper@mongo-pu") @IndexCollection(columns = { @Index(name = "ownerName"), @Index(name = "ownerId"), @Index(name = "documentName") }) public class DocumentInfo { @Id @Column(name = "DOCUMENT_ID") @GeneratedValue() private String dataId; @Column(name = "EMPLOYEE_NAME") private String ownerName; @Column(name = "EMPLOYEE_ID") private int ownerId; @Column(name = "UPLOADED_DATE") private Date uplodedDate; @Column(name = "DOCUMENT_FORMAT") private DataFormat dataFormat; @Column(name = "DOCUMENT_NAME") private String documentName; @Column(name = "DATA") private byte[] data; private StreamedContent file; @Column(name = "SIZE") private long size; /** * @return the dataId */ public String getDataId() { return dataId; } /** * @param dataId * the dataId to set */ public void setDataId(String dataId) { this.dataId = dataId; } /** * @return the ownerName */ public String getOwnerName() { return ownerName; } /** * @param ownerName * the ownerName to set */ public void setOwnerName(String ownerName) { this.ownerName = ownerName; } /** * @return the ownerId */ public int getOwnerId() { return ownerId; } /** * @param ownerId * the ownerId to set */ public void setOwnerId(int ownerId) { this.ownerId = ownerId; } /** * @return the uplodedDate */ public Date getUplodedDate() { return uplodedDate; } /** * @param uplodedDate * the uplodedDate to set */ public void setUplodedDate(Date uplodedDate) { this.uplodedDate = uplodedDate; } /** * @return the dataFormat */ public DataFormat getDataFormat() { return dataFormat; } /** * @param dataFormat * the dataFormat to set */ public void setDataFormat(DataFormat dataFormat) { this.dataFormat = dataFormat; } public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public String getDocumentName() { return documentName; } public void setDocumentName(String documentName) { this.documentName = documentName; } public long getSize() { return size; } public void setSize(long size) { this.size = size; } public StreamedContent getFile() { return file; } public void addFile(StreamedContent file) { this.file = file; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/entities/Employee.java ================================================ package com.impetus.kundera.datakeeper.entities; import java.util.Date; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import com.impetus.kundera.index.Index; import com.impetus.kundera.index.IndexCollection; /** * @author Kuldeep.Mishra * */ @Entity @Table(name = "EMPLOYEE", schema = "datakeeper@cassandra-pu") @IndexCollection(columns = { @Index(name = "employeeName"), @Index(name = "designation"), @Index(name = "experience"), @Index(name = "joiningDate"), @Index(name = "currentProject"), @Index(name = "timestamp"), @Index(name = "company") }) public class Employee { @Id @Column(name = "EMPLOYEE_ID") @GeneratedValue(strategy = GenerationType.TABLE) private int employeeId; @Column(name = "PASSWORD") private String password; @Column(name = "EMPLOYEE_NAME") private String employeeName; @Column(name = "EXPERIENCE") private int experience; @Column(name = "JOINING_DATE") private Date joiningDate; @Column(name = "DESIGNATION") private String designation; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "MANAGER_ID") private Employee manager; @OneToMany(fetch = FetchType.EAGER, mappedBy = "manager") private List subordinates; @Column(name = "PROJECT") private String currentProject; @Column(name = "COMPANY") private String company; @Column(name = "JOINING_TIMESTAMP") private long timestamp; public int getEmployeeId() { return employeeId; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmployeeName() { return employeeName; } public void setEmployeeName(String employeeName) { this.employeeName = employeeName; } public int getExperience() { return experience; } public void setExperience(int experience) { this.experience = experience; } public Date getJoiningDate() { return joiningDate; } public void setJoiningDate(Date joiningDate) { this.joiningDate = joiningDate; } public String getDesignation() { return designation; } public void setDesignation(String designation) { this.designation = designation; } public Employee getManager() { return manager; } public void setManager(Employee manager) { this.manager = manager; } public String getCurrentProject() { return currentProject; } public void setCurrentProject(String currentProject) { this.currentProject = currentProject; } public List getSubordinates() { return subordinates; } public void setSubordinates(List subordinates) { this.subordinates = subordinates; } public long getTimestamp() { return timestamp; } public void setTimestamp(long timestamp) { this.timestamp = timestamp; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/entities/SubordinatesCounter.java ================================================ package com.impetus.kundera.datakeeper.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "SUBORDINATES_COUNTER", schema = "datakeeper@cassandra-pu") public class SubordinatesCounter { @Id @Column(name = "EMPLOYEE_ID") private int employeeId; @Column(name = "SUBORDINATES_COUNTER") private int noOfSubordinates; public int getEmployeeId() { return employeeId; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public int getNoOfSubordinates() { return noOfSubordinates; } public void setNoOfSubordinates(int noOfSubordinates) { this.noOfSubordinates = noOfSubordinates; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/service/DataKeeperService.java ================================================ package com.impetus.kundera.datakeeper.service; import java.util.List; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.entities.SubordinatesCounter; /** * @author Kuldeep.Mishra * */ public interface DataKeeperService { void insertEmployee(Employee employee); void insertData(DocumentInfo data); Employee findEmployee(Object id); Employee findEmployeeByName(String employeeName); List findDocumentByEmployeeId(String employeeId); List findDocumentByEmployeeName(String employeeName); DocumentInfo findDocumentByDocumentId(int documentId); void removeEmployee(Employee employee); boolean authenticateEmployee(Employee employee, String password); List findSubOrdinates(int managerId); List findEmployeeByDateOfJoining(int noOfYears, String company); void incrementCounter(SubordinatesCounter counter); } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/service/DataKeeperServiceImpl.java ================================================ package com.impetus.kundera.datakeeper.service; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; import javax.persistence.PersistenceException; import org.primefaces.model.DefaultStreamedContent; import org.primefaces.model.StreamedContent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.impetus.kundera.datakeeper.dao.DataKeeperDao; import com.impetus.kundera.datakeeper.entities.DocumentInfo; import com.impetus.kundera.datakeeper.entities.Employee; import com.impetus.kundera.datakeeper.entities.SubordinatesCounter; /** * @author Kuldeep.Mishra * */ public class DataKeeperServiceImpl implements DataKeeperService { /** * logger used for logging statement. */ private static final Logger log = LoggerFactory.getLogger(DataKeeperServiceImpl.class); private DataKeeperDao dao; public DataKeeperServiceImpl() { } public DataKeeperDao getDao() { return dao; } public void setDao(DataKeeperDao dao) { this.dao = dao; } @Override public void insertEmployee(Employee employee) { employee.setPassword(encriptPassword(employee.getPassword())); dao.insert(employee); log.info("Employee {} information successfully inserted.", employee.getEmployeeName()); if (employee.getManager() != null) { SubordinatesCounter counter = new SubordinatesCounter(); counter.setNoOfSubordinates(1); counter.setEmployeeId(employee.getManager().getEmployeeId()); dao.insert(counter); log.info("Incremented no of subordinates for manager {}, successfully.", employee.getManager() .getEmployeeName()); } } @Override public Employee findEmployeeByName(String employeeName) { Employee employee = null; String query = "Select e from " + Employee.class.getSimpleName() + " e where e.employeeName = " + employeeName; List employees = (List) dao.findByQuery(query); if (!employees.isEmpty() && employees.get(0) != null) { employee = employees.get(0); } return employee; } @Override public List findSubOrdinates(int managerId) { Employee manager = dao.findById(Employee.class, managerId); List subOrdinates = manager != null ? manager.getSubordinates() : new ArrayList(); return subOrdinates; } @Override public void insertData(DocumentInfo data) { dao.insert(data); log.info("Data uploaded by employee {} successfully inserted.", data.getOwnerName()); } @Override public Employee findEmployee(Object employeeId) { log.info("Finding employee by id {} .", employeeId); return dao.findById(Employee.class, employeeId); } @Override public List findDocumentByEmployeeId(String employeeId) { List documents = new ArrayList(); try { Integer.parseInt(employeeId); documents = findDocumentByEmployeeId(Integer.parseInt(employeeId)); } catch (NumberFormatException nfex) { log.warn("{} not a valid employee id.", employeeId); } return documents; } public List findDocumentByEmployeeId(int employeeId) { List documents = new ArrayList(); log.info("Finding document by employee id {} .", employeeId); String query = "Select d from " + DocumentInfo.class.getSimpleName() + " d where d.ownerId = " + employeeId; documents = (List) dao.findByQuery(query); for (DocumentInfo documentInfo : documents) { StreamedContent file = toStreamedContent(documentInfo.getData(), documentInfo.getDocumentName(), "application/pdf"); documentInfo.addFile(file); } return documents; } @Override public List findDocumentByEmployeeName(String employeeName) { List documents = new ArrayList(); log.info("Finding document by employee name {} .", employeeName); String query = "Select d from " + DocumentInfo.class.getSimpleName() + " d where d.ownerName = " + employeeName; documents = (List) dao.findByQuery(query); for (DocumentInfo documentInfo : documents) { StreamedContent file = toStreamedContent(documentInfo.getData(), documentInfo.getDocumentName(), "application/pdf"); documentInfo.addFile(file); } return documents; } @Override public void removeEmployee(Employee employee) { dao.remove(employee); List documents = findDocumentByEmployeeId(employee.getEmployeeId()); for (DocumentInfo document : documents) { if (document != null) { dao.remove(document); } } log.info("Employee successfully removed"); } @Override public boolean authenticateEmployee(Employee employee, String password) { boolean success = false; if (employee != null && (employee.getPassword().equals(encriptPassword(password)))) { log.info("Employee {} successfully authenticated.", employee.getEmployeeName()); success = true; } else { log.info("Employee not authenticated, caused by either wrong userName or wrong password."); } return success; } /** * encriptPassword method used for encrypting password. * * @param password * the password * @return the string */ public String encriptPassword(String password) { String newpassword = null; byte[] defaultBytes = password.getBytes(); try { MessageDigest algorithm = MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(defaultBytes); byte messageDigest[] = algorithm.digest(); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { hexString.append(Integer.toHexString(0xFF & messageDigest[i])); } newpassword = hexString.toString(); } catch (NoSuchAlgorithmException e) { log.error("Error while encripting password {}, caused by : .", password, e); throw new PersistenceException(e); } return newpassword; } @Override public DocumentInfo findDocumentByDocumentId(int documentId) { log.info("Finding document by id."); DocumentInfo document = dao.findById(DocumentInfo.class, documentId); return document; } @Override public List findEmployeeByDateOfJoining(final int noOfYears, final String company) { long currentTimeStamp = System.currentTimeMillis(); long newTimeStamp = currentTimeStamp - (long) noOfYears * 365 * 24 * 60 * 60 * 1000; String query = "Select e from " + Employee.class.getSimpleName() + " e where e.company = " + company + " and e.timestamp <= :timestamp"; List subOrdinates = (List) dao.findByQuery(query, "timestamp", newTimeStamp); return subOrdinates; } @Override public void incrementCounter(SubordinatesCounter counter) { dao.insert(counter); } private StreamedContent toStreamedContent(byte[] bytes, String fileName, String contentType) { InputStream is = new ByteArrayInputStream(bytes); StreamedContent file = new DefaultStreamedContent(is, contentType, fileName); return file; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/DataFormat.java ================================================ package com.impetus.kundera.datakeeper.utils; /** * @author Kuldeep.Mishra * */ public enum DataFormat { XLS, XLSX, PDF, DOC, DOCX, AVI; /** * If provided protocol is within allowed protocol. * * @param protocol * protocol * @return true, if it is in allowed protocol. */ public static boolean isValidFormat(String format) { try { DataFormat.valueOf(format.toUpperCase()); return true; } catch (IllegalArgumentException iex) { return false; } } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/DataKeeperConstants.java ================================================ /** * Copyright 2012 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.datakeeper.utils; /** * * @author amresh.singh */ public class DataKeeperConstants { public static final String OUTCOME_LOGIN_FAILED = "loginFailed"; public static final String OUTCOME_LOGIN_SUCCESSFUL = "loginSuccessful"; public static final String OUTCOME_SIGNUP_SUCCESSFUL = "signUpSuccessful"; public static final String OUTCOME_LOGOFF_SUCCESSFUL = "logOfSuccessful"; public static final String OUTCOME_TIMELINE = "timeline"; public static final String PERSISTENCE_UNIT = "twitample_cassandra"; public static final String EMPLOYEE_ID = "employeeId"; public static final String EMPLOYEE = "employee"; public static final String EMPLOYEE_NAME = "employeeName"; public static final String TWEET_DEVICE_WEB = "Web"; } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/DataKeeperUtils.java ================================================ package com.impetus.kundera.datakeeper.utils; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.impetus.kundera.datakeeper.service.DataKeeperService; public class DataKeeperUtils { public static DataKeeperService getService() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); DataKeeperService datakeeper = (DataKeeperService) session.getAttribute("datakeeper"); if (datakeeper == null) { BeanFactory beanfactory = new ClassPathXmlApplicationContext("appContext.xml"); datakeeper = (DataKeeperService) beanfactory.getBean("datakeeper"); session.setAttribute("datakeeper", datakeeper); } return datakeeper; } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/java/com/impetus/kundera/datakeeper/utils/FacesUtils.java ================================================ package com.impetus.kundera.datakeeper.utils; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; /** * The Class FacesUtils has method for getting session variables and request * variables. */ public class FacesUtils { /** * getSession method used for getting session variable. * * @return the session */ public static HttpSession getSession() { return (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true); } /** * getRequest method used for getting request variable. * * @return the request */ public static HttpServletRequest getRequest() { return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); } } ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/resources/META-INF/persistence.xml ================================================ com.impetus.kundera.KunderaPersistence com.impetus.kundera.datakeeper.entities.DocumentInfo com.impetus.kundera.datakeeper.entities.Employee com.impetus.kundera.datakeeper.entities.SubordinatesCounter true com.impetus.kundera.KunderaPersistence com.impetus.kundera.datakeeper.entities.DocumentInfo true com.impetus.kundera.KunderaPersistence ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/resources/appContext.xml ================================================ META-INF/persistence.xml org.apache.naming.java.javaURLContextFactory org.apache.naming ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/resources/kunderaCounter.xml ================================================ cassandra datakeeper SUBORDINATES_COUNTER
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/resources/log4j.properties ================================================ log4j.rootLogger=INFO, DRFA, CONSOLE ### direct log messages to stdout ### log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender log4j.appender.DRFA.File=${user.home}/kundera-benchmark.log # Rollover at midnight log4j.appender.DRFA.DatePattern=.yyyy-MM-dd log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout # Pattern format: Date LogLevel LoggerName LogMessage log4j.appender.DRFA.layout.ConversionPattern=%d [%-5p] [%t] %c %x - %m%n log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d [%-5p] [%t] %c %x - %m%n ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/WEB-INF/faces-config.xml ================================================ /xhtml/login/login.xhtml loginSuccessful /xhtml/home/timeline.xhtml loginFailed /xhtml/login/login.xhtml /xhtml/register/signUp.xhtml signUpSuccessful /xhtml/login/login.xhtml /xhtml/register/signUp.xhtml timeline /xhtml/home/timeline.xhtml /xhtml/home/timeline.xhtml foundEmployess /xhtml/home/showSubordinatesInfo.xhtml /xhtml/home/showSubordinatesInfo.xhtml foundEmployess /xhtml/home/showSubordinatesInfo.xhtml logOfSuccessful /xhtml/login/login.xhtml Account successfully deleted /xhtml/login/login.xhtml ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/WEB-INF/web.xml ================================================ DataKeeper application javax.faces.STATE_SAVING_METHOD server javax.faces.CONFIG_FILES /WEB-INF/faces-config.xml com.sun.faces.config.ConfigureListener Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.jsf xhtml/login/login.jsf PrimeFaces FileUpload Filter org.primefaces.webapp.filter.FileUploadFilter thresholdSize 512000 uploadDirectory C:\etc PrimeFaces FileUpload Filter Faces Servlet ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/appContext.xml ================================================ META-INF/persistence.xml org.apache.naming.java.javaURLContextFactory org.apache.naming ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/index.jsp ================================================

Hello World!

================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/common/header.xhtml ================================================

================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/common/leftPane.xhtml ================================================


================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/common/loggedInHeader.xhtml ================================================

================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/home/showSubordinatesInfo.xhtml ================================================ DataKeeper :: Employees Information
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/home/showSubordinatesInfoTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>

Default content
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/home/timeline.xhtml ================================================ DataKeeper :: Home
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/home/timelineTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>

Default content
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/login/login.xhtml ================================================ Kwitter :: Login

Not a member?
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/login/loginTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>
Default content
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/register/signUp.xhtml ================================================ Kwitter :: SignUp

================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/register/signUpTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>
Default content
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/settings/settings.xhtml ================================================ Kwitter :: Settings
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/settings/settingsTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>

Default content
================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/upload/uploadDocument.xhtml ================================================ DataKeeper :: Upload ================================================ FILE: examples/container/tomcat-glassfish/data-keeper/src/main/webapp/xhtml/upload/uploadDocumentTemplate.xhtml ================================================ <ui:insert name="title">Default title</ui:insert>
Default content
================================================ FILE: examples/container/tomcat-glassfish/pom.xml ================================================ 4.0.0 com.impetus.kundera.examples container 3.3-SNAPSHOT com.impetus.kundera.examples tomcat-glassfish 3.3-SNAPSHOT pom tomcat-glassfish https://github.com/impetus-opensource/Kundera all true data-keeper ================================================ FILE: examples/data-as-object-example/pom.xml ================================================ 4.0.0 com.impetus data-as-object-example jar 1.0-SNAPSHOT data-as-object-example http://maven.apache.org 3.4-SNAPSHOT com.impetus.kundera.client data-as-object ${kundera-version} com.impetus.kundera.client kundera-cassandra ${kundera-version} com.impetus.kundera.client kundera-mongo ${kundera-version} com.impetus.kundera.client kundera-rdbms ${kundera-version} com.impetus.kundera.client kundera-kudu ${kundera-version} maven-compiler-plugin 3.1 1.7 1.7 ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/crud/CassandraCRUDTest.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.crud; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.dataasobject.entities.Employee; import junit.framework.Assert; /** * The Class CassandraCRUDTest. */ public class CassandraCRUDTest { /** * Sets the up before class. */ @BeforeClass public static void SetUpBeforeClass() { Employee.bind("client-properties.json", Employee.class); } /** * Test crud. */ @Test public void testCRUD() { testInsert(); testUpdate(); testDelete(); } /** * Test insert. */ private void testInsert() { Employee emp = new Employee(); emp.setEmplyoeeId(101l); emp.setName("karthik"); emp.setSalary(50000d); emp.save(); Employee e = new Employee().find(101l); Assert.assertEquals(Long.valueOf(101), e.getEmplyoeeId()); Assert.assertEquals("karthik", e.getName()); Assert.assertEquals(50000d, e.getSalary()); } /** * Test update. */ private void testUpdate() { Employee e = new Employee().find(101l); e.setName("dev"); e.update(); Employee e1 = new Employee().find(101l); Assert.assertEquals(Long.valueOf(101), e1.getEmplyoeeId()); Assert.assertEquals("dev", e1.getName()); Assert.assertEquals(50000d, e1.getSalary()); } /** * Test delete. */ private void testDelete() { Employee e = new Employee().find(101l); e.delete(); Employee e1 = new Employee().find(101l); Assert.assertNull(e1); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { Employee.unbind(); } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/crud/KuduCRUDTest.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.crud; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import com.impetus.kundera.dataasobject.entities.Customer; import junit.framework.Assert; /** * The Class KuduCRUDTest. */ public class KuduCRUDTest { /** * Sets the up before class. */ @BeforeClass public static void SetUpBeforeClass() { Customer.bind("client-properties.json", Customer.class); } /** * Test crud. */ @Test public void testCRUD() { testInsert(); testUpdate(); testDelete(); } /** * Test insert. */ private void testInsert() { Customer customer = new Customer(); customer.setCustomerId(101); customer.setName("dev"); customer.setLocation("Noida"); customer.save(); Customer c = new Customer().find(101); Assert.assertEquals(101, c.getCustomerId()); Assert.assertEquals("dev", c.getName()); Assert.assertEquals("Noida", c.getLocation()); } /** * Test update. */ private void testUpdate() { Customer c = new Customer().find(101); c.setName("karthik"); c.update(); Customer c1 = new Customer().find(101); Assert.assertEquals(101, c1.getCustomerId()); Assert.assertEquals("karthik", c1.getName()); Assert.assertEquals("Noida", c1.getLocation()); } /** * Test delete. */ private void testDelete() { Customer c = new Customer().find(101); c.delete(); Customer c1 = new Customer().find(101); Assert.assertNull(c1); } /** * Tear down after class. * * @throws Exception * the exception */ @AfterClass public static void tearDownAfterClass() throws Exception { Customer.unbind(); } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/entities/Book.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import com.impetus.core.DefaultKunderaEntity; import com.impetus.kundera.index.Index; import com.impetus.kundera.index.IndexCollection; /** * The Class Book. * */ @Entity @IndexCollection(columns = { @Index(name = "title"), @Index(name = "author"), @Index(name = "year"), @Index(name = "pages") }) public class Book extends DefaultKunderaEntity { /** The book_id. */ @Id @Column(name = "ID") private Integer bookId; /** The title. */ @Column(name = "TITLE") private String title; /** The author. */ @Column(name = "AUTHOR") private String author; /** The year. */ @Column(name = "YEAR") private int year; /** The pages. */ @Column(name = "PAGES") private int pages; /** * Gets the book id. * * @return the book id */ public Integer getBookId() { return bookId; } /** * Sets the book id. * * @param bookId * the new book id */ public void setBookId(Integer bookId) { this.bookId = bookId; } /** * Gets the title. * * @return the title */ public String getTitle() { return title; } /** * Sets the title. * * @param title * the new title */ public void setTitle(String title) { this.title = title; } /** * Gets the author. * * @return the author */ public String getAuthor() { return author; } /** * Sets the author. * * @param author * the new author */ public void setAuthor(String author) { this.author = author; } /** * Gets the year. * * @return the year */ public int getYear() { return year; } /** * Sets the year. * * @param year * the new year */ public void setYear(int year) { this.year = year; } /** * Gets the pages. * * @return the pages */ public int getPages() { return pages; } /** * Sets the pages. * * @param pages * the new pages */ public void setPages(int pages) { this.pages = pages; } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/entities/Customer.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.entities; import javax.persistence.Entity; import javax.persistence.Id; import com.impetus.core.DefaultKunderaEntity; /** * The Class Customer. */ @Entity public class Customer extends DefaultKunderaEntity { /** The customer id. */ @Id private int customerId; /** The name. */ private String name; /** The location. */ private String location; /** * Gets the customer id. * * @return the customer id */ public int getCustomerId() { return customerId; } /** * Sets the customer id. * * @param customerId * the new customer id */ public void setCustomerId(int customerId) { this.customerId = customerId; } /** * Gets the name. * * @return the name */ public String getName() { return name; } /** * Sets the name. * * @param name * the new name */ public void setName(String name) { this.name = name; } /** * Gets the location. * * @return the location */ public String getLocation() { return location; } /** * Sets the location. * * @param location * the new location */ public void setLocation(String location) { this.location = location; } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/entities/Department.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.entities; import javax.persistence.Entity; import javax.persistence.Id; import com.impetus.core.DefaultKunderaEntity; import com.impetus.kundera.index.Index; import com.impetus.kundera.index.IndexCollection; /** * The Class Department. */ @Entity @IndexCollection(columns = { @Index(name = "employeeId") }) public class Department extends DefaultKunderaEntity { /** The dept id. */ @Id private Long deptId; /** The employee id. */ private Long employeeId; /** The department name. */ private String departmentName; /** * Gets the dept id. * * @return the dept id */ public Long getDeptId() { return deptId; } /** * Sets the dept id. * * @param deptId * the new dept id */ public void setDeptId(Long deptId) { this.deptId = deptId; } /** * Gets the employee id. * * @return the employee id */ public Long getEmployeeId() { return employeeId; } /** * Sets the employee id. * * @param employeeId * the new employee id */ public void setEmployeeId(Long employeeId) { this.employeeId = employeeId; } /** * Gets the department name. * * @return the department name */ public String getDepartmentName() { return departmentName; } /** * Sets the department name. * * @param departmentName * the new department name */ public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/entities/DepartmentKudu.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.entities; import javax.persistence.Entity; import javax.persistence.Id; import com.impetus.core.DefaultKunderaEntity; /** * The Class DepartmentKudu. */ @Entity public class DepartmentKudu extends DefaultKunderaEntity { /** The dept id. */ @Id private Long deptId; /** The employee id. */ private Long employeeId; /** The department name. */ private String departmentName; /** * Gets the dept id. * * @return the dept id */ public Long getDeptId() { return deptId; } /** * Sets the dept id. * * @param deptId * the new dept id */ public void setDeptId(Long deptId) { this.deptId = deptId; } /** * Gets the employee id. * * @return the employee id */ public Long getEmployeeId() { return employeeId; } /** * Sets the employee id. * * @param employeeId * the new employee id */ public void setEmployeeId(Long employeeId) { this.employeeId = employeeId; } /** * Gets the department name. * * @return the department name */ public String getDepartmentName() { return departmentName; } /** * Sets the department name. * * @param departmentName * the new department name */ public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/entities/Employee.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.entities; import javax.persistence.Entity; import javax.persistence.Id; import com.impetus.core.DefaultKunderaEntity; /** * The Class Employee. */ @Entity public class Employee extends DefaultKunderaEntity { /** The employee id. */ @Id private Long employeeId; /** The salary. */ private Double salary; /** The name. */ private String name; /** * Gets the emplyoee id. * * @return the emplyoee id */ public Long getEmplyoeeId() { return employeeId; } /** * Sets the emplyoee id. * * @param emplyoeeId * the new emplyoee id */ public void setEmplyoeeId(Long emplyoeeId) { this.employeeId = emplyoeeId; } /** * Gets the salary. * * @return the salary */ public Double getSalary() { return salary; } /** * Sets the salary. * * @param salary * the new salary */ public void setSalary(Double salary) { this.salary = salary; } /** * Gets the name. * * @return the name */ public String getName() { return name; } /** * Sets the name. * * @param name * the new name */ public void setName(String name) { this.name = name; } } ================================================ FILE: examples/data-as-object-example/src/test/java/com/impetus/kundera/dataasobject/entities/Tweets.java ================================================ /******************************************************************************* * * Copyright 2016 Impetus Infotech. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. ******************************************************************************/ package com.impetus.kundera.dataasobject.entities; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType; import com.impetus.core.DefaultKunderaEntity; /** * The Class Tweets. * * @author impetus * * Tweets entity */ @Entity public class Tweets extends DefaultKunderaEntity { /** The tweet id. */ @Id @Column(name = "tweet_id") private String tweetId; /** The body. */ @Column(name = "body") private String body; /** The tweet date. */ @Column(name = "tweeted_at") @Temporal(TemporalType.DATE) private Date tweetDate; /** The videos. */ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "tweet_id") private Set