use of com.enonic.xp.extractor.ExtractedData in project xp by enonic.
the class BinaryExtractorImplTest method extract_image.
@Test
public void extract_image() throws Exception {
final ExtractedData extractedData = this.extractor.extract(Resources.asByteSource(BinaryExtractorImplTest.class.getResource("Multiple-colorSpace-entries.jpg")));
final Map<String, List<String>> metadata = extractedData.getMetadata();
assertEquals("image/jpeg", metadata.get(HttpHeaders.CONTENT_TYPE).iterator().next());
}
use of com.enonic.xp.extractor.ExtractedData in project xp by enonic.
the class MediaInfoServiceImpl method getImageOrientation.
@Override
public ImageOrientation getImageOrientation(ByteSource byteSource) {
final ExtractedData extractedData = binaryExtractor.extract(byteSource);
final String orientation = extractedData.getImageOrientation();
if (ImageOrientation.isValid(orientation)) {
return ImageOrientation.from(orientation);
}
return null;
}
use of com.enonic.xp.extractor.ExtractedData in project xp by enonic.
the class MediaInfoServiceImpl method parseMediaInfo.
@Override
public MediaInfo parseMediaInfo(final ByteSource byteSource) {
final MediaInfo.Builder builder = MediaInfo.create();
final ExtractedData extractedData = binaryExtractor.extract(byteSource);
addMetadata(byteSource, builder, extractedData);
builder.setTextContent(extractedData.getText());
return builder.build();
}
use of com.enonic.xp.extractor.ExtractedData in project xp by enonic.
the class BinaryExtractorImplTest method extract_pdf.
@Test
@Disabled("Requires PDFBox Tika Parser in classpath. But tika-parsers 1.x heavily pollutes classpath with other jars")
public void extract_pdf() throws Exception {
final ExtractedData extractedData = this.extractor.extract(Resources.asByteSource(BinaryExtractorImplTest.class.getResource("sommerfest.pdf")));
final Map<String, List<String>> metadata = extractedData.getMetadata();
assertEquals("application/pdf", metadata.get(HttpHeaders.CONTENT_TYPE).iterator().next());
final String extractedText = extractedData.getText();
assertFalse(isNullOrEmpty(extractedText));
assertTrue(extractedText.contains("Velkommen"));
}
use of com.enonic.xp.extractor.ExtractedData in project xp by enonic.
the class AbstractContentServiceTest method setUpAbstractContentServiceTest.
@BeforeEach
public void setUpAbstractContentServiceTest() {
executorService = Executors.newSingleThreadExecutor();
deleteAllIndices();
ContextAccessor.INSTANCE.set(ctxDefault());
final MemoryBlobStore blobStore = new MemoryBlobStore();
binaryService = new BinaryServiceImpl();
binaryService.setBlobStore(blobStore);
final StorageDaoImpl storageDao = new StorageDaoImpl();
storageDao.setClient(client);
final EventPublisherImpl eventPublisher = new EventPublisherImpl(executorService);
SearchDaoImpl searchDao = new SearchDaoImpl();
searchDao.setClient(client);
BranchServiceImpl branchService = new BranchServiceImpl();
branchService.setStorageDao(storageDao);
branchService.setSearchDao(searchDao);
VersionServiceImpl versionService = new VersionServiceImpl();
versionService.setStorageDao(storageDao);
CommitServiceImpl commitService = new CommitServiceImpl();
commitService.setStorageDao(storageDao);
IndexServiceInternalImpl indexServiceInternal = new IndexServiceInternalImpl();
indexServiceInternal.setClient(client);
indexService = new IndexServiceImpl();
indexService.setIndexServiceInternal(indexServiceInternal);
NodeVersionServiceImpl nodeDao = new NodeVersionServiceImpl();
nodeDao.setBlobStore(blobStore);
IndexDataServiceImpl indexedDataService = new IndexDataServiceImpl();
indexedDataService.setStorageDao(storageDao);
NodeStorageServiceImpl storageService = new NodeStorageServiceImpl();
storageService.setBranchService(branchService);
storageService.setVersionService(versionService);
storageService.setCommitService(commitService);
storageService.setNodeVersionService(nodeDao);
storageService.setIndexDataService(indexedDataService);
NodeSearchServiceImpl searchService = new NodeSearchServiceImpl();
searchService.setSearchDao(searchDao);
final NodeRepositoryServiceImpl nodeRepositoryService = new NodeRepositoryServiceImpl();
nodeRepositoryService.setIndexServiceInternal(indexServiceInternal);
final IndexServiceInternalImpl elasticsearchIndexService = new IndexServiceInternalImpl();
elasticsearchIndexService.setClient(client);
final RepositoryEntryServiceImpl repositoryEntryService = new RepositoryEntryServiceImpl();
repositoryEntryService.setIndexServiceInternal(elasticsearchIndexService);
repositoryEntryService.setNodeStorageService(storageService);
repositoryEntryService.setNodeSearchService(searchService);
repositoryEntryService.setEventPublisher(eventPublisher);
repositoryEntryService.setBinaryService(binaryService);
repositoryService = new RepositoryServiceImpl(repositoryEntryService, elasticsearchIndexService, nodeRepositoryService, storageService, searchService);
repositoryService.initialize();
nodeService = new NodeServiceImpl();
nodeService.setIndexServiceInternal(indexServiceInternal);
nodeService.setNodeStorageService(storageService);
nodeService.setNodeSearchService(searchService);
nodeService.setEventPublisher(eventPublisher);
nodeService.setBinaryService(binaryService);
nodeService.setRepositoryService(repositoryService);
nodeService.initialize();
mixinService = Mockito.mock(MixinService.class);
Mockito.when(mixinService.inlineFormItems(Mockito.isA(Form.class))).then(AdditionalAnswers.returnsFirstArg());
xDataService = Mockito.mock(XDataService.class);
Map<String, List<String>> metadata = new HashMap<>();
metadata.put(HttpHeaders.CONTENT_TYPE, List.of("image/jpg"));
final ExtractedData extractedData = ExtractedData.create().metadata(metadata).build();
final BinaryExtractor extractor = Mockito.mock(BinaryExtractor.class);
Mockito.when(extractor.extract(Mockito.isA(ByteSource.class))).thenReturn(extractedData);
mediaInfoService = new MediaInfoServiceImpl();
mediaInfoService.setBinaryExtractor(extractor);
final ResourceService resourceService = Mockito.mock(ResourceService.class);
final SiteServiceImpl siteService = new SiteServiceImpl();
siteService.setResourceService(resourceService);
siteService.setMixinService(mixinService);
contentTypeService = new ContentTypeServiceImpl(null, null, mixinService);
PageDescriptorService pageDescriptorService = Mockito.mock(PageDescriptorService.class);
PartDescriptorService partDescriptorService = Mockito.mock(PartDescriptorService.class);
LayoutDescriptorService layoutDescriptorService = Mockito.mock(LayoutDescriptorService.class);
auditLogService = Mockito.mock(AuditLogService.class);
final ContentConfig contentConfig = Mockito.mock(ContentConfig.class);
Mockito.when(contentConfig.auditlog_enabled()).thenReturn(Boolean.TRUE);
final ContentAuditLogSupportImpl contentAuditLogSupport = new ContentAuditLogSupportImpl(contentConfig, new ContentAuditLogExecutorImpl(), auditLogService);
final SecurityServiceImpl securityService = new SecurityServiceImpl(nodeService, indexService);
securityService.initialize();
final ProjectPermissionsContextManagerImpl projectAccessContextManager = new ProjectPermissionsContextManagerImpl();
final ProjectServiceImpl projectService = new ProjectServiceImpl(repositoryService, indexService, nodeService, securityService, projectAccessContextManager, eventPublisher);
projectService.initialize();
contentService = new ContentServiceImpl(nodeService, pageDescriptorService, partDescriptorService, layoutDescriptorService);
contentService.setEventPublisher(eventPublisher);
contentService.setMediaInfoService(mediaInfoService);
contentService.setSiteService(siteService);
contentService.setContentTypeService(contentTypeService);
contentService.setxDataService(xDataService);
contentService.setFormDefaultValuesProcessor((form, data) -> {
});
contentService.setContentAuditLogSupport(contentAuditLogSupport);
contentService.addContentValidator(new ContentNameValidator());
contentService.addContentValidator(new SiteConfigsValidator(siteService));
contentService.addContentValidator(new OccurrenceValidator());
contentService.addContentValidator(new ExtraDataValidator(xDataService));
contentService.initialize(mock(ContentConfig.class, invocation -> invocation.getMethod().getDefaultValue()));
}
Aggregations