Search in sources :

Example 1 with Property

use of nl.knaw.huygens.timbuctoo.v5.graphql.rootquery.dataproviders.Property in project timbuctoo by HuygensING.

the class GraphQl method executeGraphql.

public Response executeGraphql(String query, String acceptHeader, String acceptParam, String queryFromBody, Map variables, String operationName, String authHeader) {
    final SerializerWriter serializerWriter;
    if (acceptParam != null && !acceptParam.isEmpty()) {
        // Accept param overrules header because it's more under the user's control
        acceptHeader = acceptParam;
    }
    if (unSpecifiedAcceptHeader(acceptHeader)) {
        acceptHeader = MediaType.APPLICATION_JSON;
    }
    if (MediaType.APPLICATION_JSON.equals(acceptHeader)) {
        serializerWriter = null;
    } else {
        Optional<SerializerWriter> bestMatch = serializerWriterRegistry.getBestMatch(acceptHeader);
        if (bestMatch.isPresent()) {
            serializerWriter = bestMatch.get();
        } else {
            return Response.status(415).type(MediaType.APPLICATION_JSON_TYPE).entity("{\"errors\": [\"The available mediatypes are: " + String.join(", ", serializerWriterRegistry.getSupportedMimeTypes()) + "\"]}").build();
        }
    }
    if (query != null && queryFromBody != null) {
        return Response.status(400).type(MediaType.APPLICATION_JSON_TYPE).entity("{\"errors\": [\"There's both a query as url paramatere and a query in the body. Please pick one.\"]}").build();
    }
    if (query == null && queryFromBody == null) {
        return Response.status(400).type(MediaType.APPLICATION_JSON_TYPE).entity("{\"errors\": [\"Please provide the graphql query as the query property of a JSON encoded object. " + "E.g. {query: \\\"{\\n  persons {\\n ... \\\"}\"]}").build();
    }
    Optional<User> user;
    try {
        user = userValidator.getUserFromAccessToken(authHeader);
    } catch (UserValidationException e) {
        user = Optional.empty();
    }
    UserPermissionCheck userPermissionCheck = new UserPermissionCheck(user, permissionFetcher, newHashSet(Permission.READ));
    final GraphQLSchema transform = graphqlGetter.get().transform(b -> b.fieldVisibility(new PermissionBasedFieldVisibility(userPermissionCheck, dataSetRepository)));
    final GraphQL.Builder builder = GraphQL.newGraphQL(transform);
    if (serializerWriter != null) {
        builder.queryExecutionStrategy(new SerializerExecutionStrategy());
    }
    GraphQL graphQl = builder.build();
    final ExecutionResult result = graphQl.execute(newExecutionInput().root(new RootData(user)).context(contextData(userPermissionCheck, user)).query(queryFromBody).operationName(operationName).variables(variables == null ? Collections.emptyMap() : variables).build());
    if (serializerWriter == null) {
        return Response.ok().type(MediaType.APPLICATION_JSON_TYPE).entity(result.toSpecification()).build();
    } else {
        if (result.getErrors() != null && !result.getErrors().isEmpty()) {
            return Response.status(415).type(MediaType.APPLICATION_JSON_TYPE).entity(result.toSpecification()).build();
        }
        return Response.ok().type(serializerWriter.getMimeType()).entity((StreamingOutput) os -> {
            serializerWriter.getSerializationFactory().create(os).serialize(new SerializableResult(result.getData()));
        }).build();
    }
}
Also used : UserValidationException(nl.knaw.huygens.timbuctoo.v5.security.exceptions.UserValidationException) User(nl.knaw.huygens.timbuctoo.v5.security.dto.User) GraphQL(graphql.GraphQL) SerializableResult(nl.knaw.huygens.timbuctoo.v5.serializable.SerializableResult) SerializerWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.SerializerWriter) ExecutionResult(graphql.ExecutionResult) StreamingOutput(javax.ws.rs.core.StreamingOutput) GraphQLSchema(graphql.schema.GraphQLSchema) RootData(nl.knaw.huygens.timbuctoo.v5.graphql.datafetchers.dto.RootData) PermissionBasedFieldVisibility(nl.knaw.huygens.timbuctoo.v5.graphql.security.PermissionBasedFieldVisibility) SerializerExecutionStrategy(nl.knaw.huygens.timbuctoo.v5.graphql.serializable.SerializerExecutionStrategy) UserPermissionCheck(nl.knaw.huygens.timbuctoo.v5.graphql.security.UserPermissionCheck)

Example 2 with Property

use of nl.knaw.huygens.timbuctoo.v5.graphql.rootquery.dataproviders.Property in project timbuctoo by HuygensING.

the class BdbRmlDataSourceStore method onChangedSubject.

@Override
public void onChangedSubject(String subject, ChangeFetcher changeFetcher) throws RdfProcessingFailedException {
    try {
        boolean[] wasCollection = new boolean[] { false };
        StreamIterator.iterateAndCloseOrThrow(changeFetcher.getPredicates(subject, TIM_HAS_ROW, Direction.OUT, true, false, true), quad -> {
            wasCollection[0] = true;
            if (quad.getChangeType() == ChangeType.ASSERTED) {
                bdbWrapper.put(subject, quad.getObject());
            }
        });
        if (!wasCollection[0]) {
            try (Stream<CursorQuad> quads = changeFetcher.getPredicates(subject, TIM_HAS_ROW, Direction.IN, true, true, true)) {
                Optional<CursorQuad> isRawRow = quads.findFirst();
                if (isRawRow.isPresent()) {
                    final String collectionUri = isRawRow.get().getObject();
                    Map<String, Property> predicatesToStore = collectionProperties.computeIfAbsent(collectionUri, collection -> getPropertyNames(changeFetcher, collection));
                    switch(isRawRow.get().getChangeType()) {
                        case ASSERTED:
                            // add all unchanged and new predicates
                            StreamIterator.iterateAndCloseOrThrow(changeFetcher.getPredicates(subject, false, true, true), pred -> {
                                final Property property = predicatesToStore.get(pred.getPredicate());
                                if (property != null) {
                                    bdbWrapper.put(subject, property.newName + "\n" + pred.getObject());
                                }
                            });
                            break;
                        case RETRACTED:
                            // remove all unchanged and removed predicates
                            StreamIterator.iterateAndCloseOrThrow(changeFetcher.getPredicates(subject, true, true, false), pred -> {
                                final Property property = predicatesToStore.get(pred.getPredicate());
                                if (property != null) {
                                    bdbWrapper.delete(subject, property.oldName + "\n" + pred.getObject());
                                }
                            });
                            break;
                        case UNCHANGED:
                            // add all added predicates, remove all removed predicates
                            StreamIterator.iterateAndCloseOrThrow(changeFetcher.getPredicates(subject, true, false, true), pred -> {
                                final Property property = predicatesToStore.get(pred.getPredicate());
                                if (property != null) {
                                    if (pred.getChangeType() == ChangeType.RETRACTED) {
                                        bdbWrapper.delete(subject, property.oldName + "\n" + pred.getObject());
                                    } else {
                                        bdbWrapper.put(subject, property.oldName + "\n" + pred.getObject());
                                    }
                                }
                            });
                            break;
                        default:
                            throw new RuntimeException("Should not happen");
                    }
                }
            }
        }
    } catch (DatabaseWriteException e) {
        throw new RdfProcessingFailedException(e);
    }
}
Also used : CursorQuad(nl.knaw.huygens.timbuctoo.v5.datastores.quadstore.dto.CursorQuad) DatabaseWriteException(nl.knaw.huygens.timbuctoo.v5.berkeleydb.exceptions.DatabaseWriteException) RdfProcessingFailedException(nl.knaw.huygens.timbuctoo.v5.dataset.exceptions.RdfProcessingFailedException)

Example 3 with Property

use of nl.knaw.huygens.timbuctoo.v5.graphql.rootquery.dataproviders.Property in project timbuctoo by HuygensING.

the class TimbuctooV4 method run.

@Override
public void run(TimbuctooConfiguration configuration, Environment environment) throws Exception {
    // environment.jersey().property(ServerProperties.TRACING, "ALL");
    // // environment.jersey().property(ServerProperties.TRACING_THRESHOLD, "VERBOSE");
    // Make sure we know what version is running
    Properties properties = new Properties();
    InputStream gitproperties = getClass().getClassLoader().getResourceAsStream("git.properties");
    String currentVersion;
    if (gitproperties != null) {
        properties.load(gitproperties);
        currentVersion = properties.getProperty("git.commit.id");
    } else {
        currentVersion = "NO-GIT-PROPERTIES-FOUND";
        LoggerFactory.getLogger(this.getClass()).error("NO-GIT-PROPERTIES-FOUND");
    }
    LoggerFactory.getLogger(this.getClass()).info("Now launching timbuctoo version: " + currentVersion);
    HttpClientBuilder apacheHttpClientBuilder = new HttpClientBuilder(environment).using(configuration.getHttpClientConfiguration());
    CloseableHttpClient httpClient = apacheHttpClientBuilder.build("httpclient");
    // Support services
    SecurityFactory securityConfig = configuration.getSecurityConfiguration().createNewSecurityFactory(httpClient);
    securityConfig.getHealthChecks().forEachRemaining(check -> {
        register(environment, check.getLeft(), new LambdaHealthCheck(check.getRight()));
    });
    // Database migration
    LinkedHashMap<String, DatabaseMigration> migrations = new LinkedHashMap<>();
    migrations.put("fix-dcarkeywords-displayname-migration", new FixDcarKeywordDisplayNameMigration());
    migrations.put("fix-pids-migration", new MakePidsAbsoluteUrls());
    UriHelper uriHelper = configuration.getUriHelper();
    environment.lifecycle().addServerLifecycleListener(new BaseUriDeriver(configuration));
    TinkerPopConfig tinkerPopConfig = configuration.getDatabaseConfiguration();
    final TinkerPopGraphManager graphManager = new TinkerPopGraphManager(tinkerPopConfig, migrations);
    final PersistenceManager persistenceManager = configuration.getPersistenceManagerFactory().build();
    UrlGenerator uriToRedirectToFromPersistentUrls = (coll, id, rev) -> uriHelper.fromResourceUri(SingleEntity.makeUrl(coll, id, rev));
    final UrlGenerator pathWithoutVersionAndRevision = (coll, id, rev) -> URI.create(SingleEntity.makeUrl(coll, id, null).toString().replaceFirst("^/v2.1/", ""));
    final UrlGenerator uriWithoutRev = (coll, id, rev) -> uriHelper.fromResourceUri(SingleEntity.makeUrl(coll, id, null));
    HandleAdder handleAdder = new HandleAdder(persistenceManager, activeMqBundle);
    // TODO make function when TimbuctooActions does not depend on TransactionEnforcer anymore
    TimbuctooActions.TimbuctooActionsFactory timbuctooActionsFactory = new TimbuctooActions.TimbuctooActionsFactoryImpl(securityConfig.getPermissionFetcher(), Clock.systemDefaultZone(), handleAdder, uriToRedirectToFromPersistentUrls, () -> new TinkerPopOperations(graphManager));
    TransactionEnforcer transactionEnforcer = new TransactionEnforcer(timbuctooActionsFactory);
    graphManager.onGraph(g -> new ScaffoldMigrator(graphManager).execute());
    handleAdder.init(transactionEnforcer);
    final Vres vres = new DatabaseConfiguredVres(transactionEnforcer);
    migrations.put("prepare-for-bia-import-migration", new PrepareForBiaImportMigration(vres, graphManager));
    migrations.put("give-existing-relationtypes-rdf-uris", new RelationTypeRdfUriMigration());
    migrations.put("remove-search-results", new RemoveSearchResultsMigration());
    migrations.put("move-indices-to-isLatest-vertex", new MoveIndicesToIsLatestVertexMigration(vres));
    final ResourceSyncService resourceSyncService = new ResourceSyncService(httpClient, new ResourceSyncContext());
    final JsonMetadata jsonMetadata = new JsonMetadata(vres, graphManager);
    final AutocompleteService.AutocompleteServiceFactory autocompleteServiceFactory = new AutocompleteService.AutocompleteServiceFactory(uriWithoutRev);
    environment.lifecycle().manage(graphManager);
    final CrudServiceFactory crudServiceFactory = new CrudServiceFactory(vres, securityConfig.getUserValidator(), pathWithoutVersionAndRevision);
    final Webhooks webhooks = configuration.getWebhooks().getWebHook(environment);
    DataSetRepository dataSetRepository = configuration.getDataSetConfiguration().createRepository(environment.lifecycle().executorService("dataSet").build(), securityConfig.getPermissionFetcher(), configuration.getDatabases(), configuration.getRdfIdHelper(), (combinedId -> {
        try {
            webhooks.dataSetUpdated(combinedId);
        } catch (IOException e) {
            LOG.error("Webhook call failed", e);
        }
    }), configuration.dataSetsArePublicByDefault());
    environment.lifecycle().manage(new DataSetRepositoryManager(dataSetRepository));
    ErrorResponseHelper errorResponseHelper = new ErrorResponseHelper();
    AuthCheck authCheck = new AuthCheck(securityConfig.getUserValidator(), securityConfig.getPermissionFetcher(), dataSetRepository);
    register(environment, new RdfUpload(authCheck));
    register(environment, new TabularUpload(authCheck, dataSetRepository, errorResponseHelper));
    register(environment, new Rml(dataSetRepository, errorResponseHelper, securityConfig.getUserValidator()));
    SerializerWriterRegistry serializerWriterRegistry = new SerializerWriterRegistry(new CsvWriter(), new JsonLdWriter(), new JsonWriter(), new GraphVizWriter());
    final PaginationArgumentsHelper argHelper = new PaginationArgumentsHelper(configuration.getCollectionFilters());
    final GraphQl graphQlEndpoint = new GraphQl(new RootQuery(dataSetRepository, serializerWriterRegistry, configuration.getArchetypesSchema(), new RdfWiringFactory(dataSetRepository, argHelper, configuration.getDefaultSummaryProps()), new DerivedSchemaTypeGenerator(argHelper), environment.getObjectMapper()), serializerWriterRegistry, securityConfig.getUserValidator(), uriHelper, securityConfig.getPermissionFetcher(), dataSetRepository);
    register(environment, graphQlEndpoint);
    if (securityConfig instanceof TwitterSecurityFactory) {
        final TwitterLogin twitterLogin = new TwitterLogin();
        register(environment, twitterLogin);
    }
    register(environment, new JsonLdEditEndpoint(securityConfig.getUserValidator(), securityConfig.getPermissionFetcher(), dataSetRepository, new HttpClientBuilder(environment).build("json-ld")));
    register(environment, new RootEndpoint(uriHelper, configuration.getUserRedirectUrl()));
    if (securityConfig instanceof OldStyleSecurityFactory) {
        register(environment, new Authenticate(((OldStyleSecurityFactory) securityConfig).getLoggedInUsers()));
    }
    register(environment, new Me(securityConfig.getUserValidator()));
    register(environment, new Search(configuration, uriHelper, graphManager));
    register(environment, new Autocomplete(autocompleteServiceFactory, transactionEnforcer));
    register(environment, new Index(securityConfig.getUserValidator(), crudServiceFactory, transactionEnforcer));
    register(environment, new SingleEntity(securityConfig.getUserValidator(), crudServiceFactory, transactionEnforcer));
    register(environment, new SingleEntityNTriple(transactionEnforcer, uriHelper));
    register(environment, new WomenWritersEntityGet(crudServiceFactory, transactionEnforcer));
    register(environment, new LegacySingleEntityRedirect(uriHelper));
    register(environment, new LegacyIndexRedirect(uriHelper));
    register(environment, new Discover(resourceSyncService));
    if (configuration.isAllowGremlinEndpoint()) {
        register(environment, new Gremlin(graphManager));
    }
    register(environment, new Graph(graphManager, vres));
    register(environment, new RelationTypes(graphManager));
    register(environment, new Metadata());
    register(environment, new nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.vres.Metadata(jsonMetadata));
    register(environment, new MyVres(securityConfig.getUserValidator(), securityConfig.getPermissionFetcher(), transactionEnforcer, uriHelper));
    register(environment, new ListVres(uriHelper, transactionEnforcer));
    register(environment, new VreImage(transactionEnforcer));
    final ExecutorService rfdExecutorService = environment.lifecycle().executorService("rdf-import").build();
    register(environment, new ImportRdf(graphManager, vres, rfdExecutorService, transactionEnforcer));
    register(environment, new Import(new ResourceSyncFileLoader(httpClient), authCheck));
    register(environment, new WellKnown());
    RsDocumentBuilder rsDocumentBuilder = new RsDocumentBuilder(dataSetRepository, configuration.getUriHelper());
    register(environment, new RsEndpoint(rsDocumentBuilder, securityConfig.getUserValidator()));
    // Admin resources
    if (securityConfig instanceof OldStyleSecurityFactory) {
        final OldStyleSecurityFactory oldStyleSecurityFactory = (OldStyleSecurityFactory) securityConfig;
        environment.admin().addTask(new UserCreationTask(new LocalUserCreator(oldStyleSecurityFactory.getLoginCreator(), oldStyleSecurityFactory.getUserCreator(), oldStyleSecurityFactory.getVreAuthorizationCreator())));
    }
    environment.admin().addTask(new DatabaseValidationTask(new DatabaseValidator(graphManager, new LabelsAddedToVertexDatabaseCheck(), new InvariantsCheck(vres), new FullTextIndexCheck()), Clock.systemUTC(), 5000));
    environment.admin().addTask(new DbLogCreatorTask(graphManager));
    environment.admin().addTask(new BdbDumpTask(configuration.getDatabases()));
    if (configuration.getDatabaseBackupper().isPresent()) {
        environment.admin().addTask(new StagingBackup(configuration.getDatabaseBackupper().get().create(configuration.getDatabaseConfiguration().getDatabasePath(), configuration.getDatabases().getDatabaseLocation())));
    }
    // register health checks
    // Dropwizard Health checks are used to check whether requests should be routed to this instance
    // For example, checking if neo4j is in a valid state is not a "HealthCheck" because if the database on one instance
    // is in an invalid state, then this applies to all other instances too. So once the database is in an invalid state
    // timbuctoo will be down.
    // 
    // checking whether this instance is part of the neo4j quorum is a good HealthCheck because running a database query
    // on those instances that are not part of the quorum will block forever, while the other instances will respond
    // just fine.
    register(environment, "Neo4j database connection", graphManager);
    // Log all http requests
    register(environment, new LoggingFilter(1024, currentVersion));
    register(environment, new TransactionFilter(graphManager));
    // Allow all CORS requests
    register(environment, new PromiscuousCorsFilter());
    // Add embedded AMQ (if any) to the metrics
    configuration.getLocalAmqJmxPath(HANDLE_QUEUE).ifPresent(rethrowConsumer(jmxPath -> {
        String dwMetricName = name(this.getClass(), "localAmq");
        ObjectName jmxMetricName = new ObjectName(jmxPath);
        environment.metrics().register(dwMetricName + ".enqueueCount", new JmxAttributeGauge(jmxMetricName, "EnqueueCount"));
        environment.metrics().register(dwMetricName + ".dequeueCount", new JmxAttributeGauge(jmxMetricName, "DequeueCount"));
    }));
    setupObjectMapping(environment);
}
Also used : TransactionEnforcer(nl.knaw.huygens.timbuctoo.core.TransactionEnforcer) DataSetRepository(nl.knaw.huygens.timbuctoo.v5.dataset.DataSetRepository) WellKnown(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.WellKnown) ListVres(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.vres.ListVres) FixDcarKeywordDisplayNameMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.FixDcarKeywordDisplayNameMigration) DbLogCreatorTask(nl.knaw.huygens.timbuctoo.server.tasks.DbLogCreatorTask) RootEndpoint(nl.knaw.huygens.timbuctoo.server.endpoints.RootEndpoint) Index(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.Index) DerivedSchemaTypeGenerator(nl.knaw.huygens.timbuctoo.v5.graphql.derivedschema.DerivedSchemaTypeGenerator) RootQuery(nl.knaw.huygens.timbuctoo.v5.graphql.rootquery.RootQuery) LambdaHealthCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.LambdaHealthCheck) DataSetRepositoryManager(nl.knaw.huygens.timbuctoo.v5.dropwizard.DataSetRepositoryManager) LegacyIndexRedirect(nl.knaw.huygens.timbuctoo.server.endpoints.legacy.LegacyIndexRedirect) TinkerPopConfig(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopConfig) JsonWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.JsonWriter) Server(org.eclipse.jetty.server.Server) TabularUpload(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.TabularUpload) Autocomplete(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.Autocomplete) BdbDumpTask(nl.knaw.huygens.timbuctoo.server.tasks.BdbDumpTask) MoveIndicesToIsLatestVertexMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.MoveIndicesToIsLatestVertexMigration) UserCreationTask(nl.knaw.huygens.timbuctoo.server.tasks.UserCreationTask) DatabaseMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.DatabaseMigration) GraphQl(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.GraphQl) TwitterSecurityFactory(nl.knaw.huygens.timbuctoo.v5.security.twitterexample.TwitterSecurityFactory) LambdaExceptionUtil.rethrowConsumer(nl.knaw.huygens.timbuctoo.util.LambdaExceptionUtil.rethrowConsumer) WomenWritersEntityGet(nl.knaw.huygens.timbuctoo.experimental.womenwriters.WomenWritersEntityGet) FullTextIndexCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.databasechecks.FullTextIndexCheck) RdfWiringFactory(nl.knaw.huygens.timbuctoo.v5.graphql.datafetchers.RdfWiringFactory) Bootstrap(io.dropwizard.setup.Bootstrap) LocalUserCreator(nl.knaw.huygens.timbuctoo.server.security.LocalUserCreator) LegacySingleEntityRedirect(nl.knaw.huygens.timbuctoo.server.endpoints.legacy.LegacySingleEntityRedirect) Gremlin(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Gremlin) UrlGenerator(nl.knaw.huygens.timbuctoo.crud.UrlGenerator) InvariantsCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.databasechecks.InvariantsCheck) LinkedHashMap(java.util.LinkedHashMap) VreImage(nl.knaw.huygens.timbuctoo.server.endpoints.v2.VreImage) ErrorResponseHelper(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.ErrorResponseHelper) JmxAttributeGauge(com.codahale.metrics.JmxAttributeGauge) SubstitutingSourceProvider(io.dropwizard.configuration.SubstitutingSourceProvider) HttpClientBuilder(io.dropwizard.client.HttpClientBuilder) PrepareForBiaImportMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.PrepareForBiaImportMigration) LoggingFilter(nl.knaw.huygens.timbuctoo.logging.LoggingFilter) ResourceSyncService(nl.knaw.huygens.timbuctoo.remote.rs.ResourceSyncService) AuthCheck(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.auth.AuthCheck) Environment(io.dropwizard.setup.Environment) Properties(java.util.Properties) TinkerPopOperations(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperations) Import(nl.knaw.huygens.timbuctoo.server.endpoints.v2.remote.rs.Import) ServerLifecycleListener(io.dropwizard.lifecycle.ServerLifecycleListener) IOException(java.io.IOException) MakePidsAbsoluteUrls(nl.knaw.huygens.timbuctoo.server.databasemigration.MakePidsAbsoluteUrls) TransactionFilter(nl.knaw.huygens.timbuctoo.database.tinkerpop.TransactionFilter) RdfUpload(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.RdfUpload) RelationTypes(nl.knaw.huygens.timbuctoo.server.endpoints.v2.RelationTypes) CrudServiceFactory(nl.knaw.huygens.timbuctoo.crud.CrudServiceFactory) Graph(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Graph) GraphVizWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.GraphVizWriter) JsonLdEditEndpoint(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.JsonLdEditEndpoint) RsEndpoint(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.RsEndpoint) PaginationArgumentsHelper(nl.knaw.huygens.timbuctoo.v5.graphql.datafetchers.PaginationArgumentsHelper) Webhooks(nl.knaw.huygens.timbuctoo.solr.Webhooks) Me(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.users.Me) Metadata(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Metadata) LabelsAddedToVertexDatabaseCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.databasechecks.LabelsAddedToVertexDatabaseCheck) LoggerFactory(org.slf4j.LoggerFactory) SecurityFactory(nl.knaw.huygens.timbuctoo.v5.security.SecurityFactory) SimpleModule(com.fasterxml.jackson.databind.module.SimpleModule) FacetValue(nl.knaw.huygens.timbuctoo.search.FacetValue) Rml(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.Rml) SingleEntityNTriple(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.SingleEntityNTriple) UriHelper(nl.knaw.huygens.timbuctoo.util.UriHelper) JsonLdWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.JsonLdWriter) ScaffoldMigrator(nl.knaw.huygens.timbuctoo.server.databasemigration.ScaffoldMigrator) HandleAdder(nl.knaw.huygens.timbuctoo.handle.HandleAdder) OldStyleSecurityFactory(nl.knaw.huygens.timbuctoo.security.OldStyleSecurityFactory) URI(java.net.URI) HANDLE_QUEUE(nl.knaw.huygens.timbuctoo.handle.HandleAdder.HANDLE_QUEUE) Application(io.dropwizard.Application) DatabaseValidator(nl.knaw.huygens.timbuctoo.server.healthchecks.DatabaseValidator) ResourceSyncFileLoader(nl.knaw.huygens.timbuctoo.remote.rs.download.ResourceSyncFileLoader) SerializerWriterRegistry(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.SerializerWriterRegistry) PersistenceManager(nl.knaw.huygens.persistence.PersistenceManager) JsonMetadata(nl.knaw.huygens.timbuctoo.model.properties.JsonMetadata) ObjectName(javax.management.ObjectName) ImportRdf(nl.knaw.huygens.timbuctoo.server.endpoints.v2.ImportRdf) ActiveMQBundle(com.kjetland.dropwizard.activemq.ActiveMQBundle) InetSocketAddress(java.net.InetSocketAddress) AssetsBundle(io.dropwizard.assets.AssetsBundle) TwitterLogin(nl.knaw.huygens.timbuctoo.v5.security.twitterexample.TwitterLogin) ResourceSyncContext(nl.knaw.huygens.timbuctoo.remote.rs.xml.ResourceSyncContext) DatabaseConfiguredVres(nl.knaw.huygens.timbuctoo.model.vre.vres.DatabaseConfiguredVres) AutocompleteService(nl.knaw.huygens.timbuctoo.search.AutocompleteService) Search(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Search) EnvironmentVariableSubstitutor(io.dropwizard.configuration.EnvironmentVariableSubstitutor) TimbuctooActions(nl.knaw.huygens.timbuctoo.core.TimbuctooActions) RsDocumentBuilder(nl.knaw.huygens.timbuctoo.v5.datastores.rssource.RsDocumentBuilder) StagingBackup(nl.knaw.huygens.timbuctoo.v5.dropwizard.tasks.StagingBackup) ExecutorService(java.util.concurrent.ExecutorService) CloseableHttpClient(org.apache.http.impl.client.CloseableHttpClient) Logger(org.slf4j.Logger) Discover(nl.knaw.huygens.timbuctoo.server.endpoints.v2.remote.rs.Discover) CsvWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.CsvWriter) HealthCheck(com.codahale.metrics.health.HealthCheck) RemoveSearchResultsMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.RemoveSearchResultsMigration) RelationTypeRdfUriMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.RelationTypeRdfUriMigration) Vres(nl.knaw.huygens.timbuctoo.model.vre.Vres) ServerSocketChannel(java.nio.channels.ServerSocketChannel) MultiPartBundle(io.dropwizard.forms.MultiPartBundle) SingleEntity(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.SingleEntity) FacetValueDeserializer(nl.knaw.huygens.timbuctoo.server.mediatypes.v2.search.FacetValueDeserializer) MyVres(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.users.MyVres) Clock(java.time.Clock) Authenticate(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Authenticate) Connector(org.eclipse.jetty.server.Connector) MetricRegistry.name(com.codahale.metrics.MetricRegistry.name) DatabaseValidationTask(nl.knaw.huygens.timbuctoo.server.tasks.DatabaseValidationTask) InputStream(java.io.InputStream) Import(nl.knaw.huygens.timbuctoo.server.endpoints.v2.remote.rs.Import) GraphQl(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.GraphQl) RemoveSearchResultsMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.RemoveSearchResultsMigration) JsonMetadata(nl.knaw.huygens.timbuctoo.model.properties.JsonMetadata) MakePidsAbsoluteUrls(nl.knaw.huygens.timbuctoo.server.databasemigration.MakePidsAbsoluteUrls) LocalUserCreator(nl.knaw.huygens.timbuctoo.server.security.LocalUserCreator) UriHelper(nl.knaw.huygens.timbuctoo.util.UriHelper) TransactionEnforcer(nl.knaw.huygens.timbuctoo.core.TransactionEnforcer) PrepareForBiaImportMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.PrepareForBiaImportMigration) MoveIndicesToIsLatestVertexMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.MoveIndicesToIsLatestVertexMigration) UrlGenerator(nl.knaw.huygens.timbuctoo.crud.UrlGenerator) SingleEntityNTriple(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.SingleEntityNTriple) Discover(nl.knaw.huygens.timbuctoo.server.endpoints.v2.remote.rs.Discover) WellKnown(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.WellKnown) Graph(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Graph) JsonLdWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.JsonLdWriter) RootEndpoint(nl.knaw.huygens.timbuctoo.server.endpoints.RootEndpoint) OldStyleSecurityFactory(nl.knaw.huygens.timbuctoo.security.OldStyleSecurityFactory) FullTextIndexCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.databasechecks.FullTextIndexCheck) TinkerPopOperations(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperations) SingleEntity(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.SingleEntity) ResourceSyncContext(nl.knaw.huygens.timbuctoo.remote.rs.xml.ResourceSyncContext) Metadata(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Metadata) JsonMetadata(nl.knaw.huygens.timbuctoo.model.properties.JsonMetadata) HttpClientBuilder(io.dropwizard.client.HttpClientBuilder) RelationTypeRdfUriMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.RelationTypeRdfUriMigration) TwitterLogin(nl.knaw.huygens.timbuctoo.v5.security.twitterexample.TwitterLogin) DatabaseConfiguredVres(nl.knaw.huygens.timbuctoo.model.vre.vres.DatabaseConfiguredVres) ListVres(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.vres.ListVres) RsDocumentBuilder(nl.knaw.huygens.timbuctoo.v5.datastores.rssource.RsDocumentBuilder) DatabaseValidationTask(nl.knaw.huygens.timbuctoo.server.tasks.DatabaseValidationTask) InvariantsCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.databasechecks.InvariantsCheck) CloseableHttpClient(org.apache.http.impl.client.CloseableHttpClient) MyVres(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.users.MyVres) HandleAdder(nl.knaw.huygens.timbuctoo.handle.HandleAdder) DerivedSchemaTypeGenerator(nl.knaw.huygens.timbuctoo.v5.graphql.derivedschema.DerivedSchemaTypeGenerator) IOException(java.io.IOException) ImportRdf(nl.knaw.huygens.timbuctoo.server.endpoints.v2.ImportRdf) DataSetRepositoryManager(nl.knaw.huygens.timbuctoo.v5.dropwizard.DataSetRepositoryManager) VreImage(nl.knaw.huygens.timbuctoo.server.endpoints.v2.VreImage) CrudServiceFactory(nl.knaw.huygens.timbuctoo.crud.CrudServiceFactory) RdfUpload(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.RdfUpload) Rml(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.Rml) StagingBackup(nl.knaw.huygens.timbuctoo.v5.dropwizard.tasks.StagingBackup) Webhooks(nl.knaw.huygens.timbuctoo.solr.Webhooks) TwitterSecurityFactory(nl.knaw.huygens.timbuctoo.v5.security.twitterexample.TwitterSecurityFactory) JsonLdEditEndpoint(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.JsonLdEditEndpoint) LegacyIndexRedirect(nl.knaw.huygens.timbuctoo.server.endpoints.legacy.LegacyIndexRedirect) TwitterSecurityFactory(nl.knaw.huygens.timbuctoo.v5.security.twitterexample.TwitterSecurityFactory) SecurityFactory(nl.knaw.huygens.timbuctoo.v5.security.SecurityFactory) OldStyleSecurityFactory(nl.knaw.huygens.timbuctoo.security.OldStyleSecurityFactory) JmxAttributeGauge(com.codahale.metrics.JmxAttributeGauge) DataSetRepository(nl.knaw.huygens.timbuctoo.v5.dataset.DataSetRepository) Index(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.Index) LinkedHashMap(java.util.LinkedHashMap) Authenticate(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Authenticate) PaginationArgumentsHelper(nl.knaw.huygens.timbuctoo.v5.graphql.datafetchers.PaginationArgumentsHelper) Search(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Search) Gremlin(nl.knaw.huygens.timbuctoo.server.endpoints.v2.Gremlin) TinkerPopConfig(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopConfig) RelationTypes(nl.knaw.huygens.timbuctoo.server.endpoints.v2.RelationTypes) TimbuctooActions(nl.knaw.huygens.timbuctoo.core.TimbuctooActions) ListVres(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.vres.ListVres) DatabaseConfiguredVres(nl.knaw.huygens.timbuctoo.model.vre.vres.DatabaseConfiguredVres) Vres(nl.knaw.huygens.timbuctoo.model.vre.Vres) MyVres(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.users.MyVres) UserCreationTask(nl.knaw.huygens.timbuctoo.server.tasks.UserCreationTask) DatabaseValidator(nl.knaw.huygens.timbuctoo.server.healthchecks.DatabaseValidator) PersistenceManager(nl.knaw.huygens.persistence.PersistenceManager) LabelsAddedToVertexDatabaseCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.databasechecks.LabelsAddedToVertexDatabaseCheck) FixDcarKeywordDisplayNameMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.FixDcarKeywordDisplayNameMigration) ErrorResponseHelper(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.ErrorResponseHelper) Me(nl.knaw.huygens.timbuctoo.server.endpoints.v2.system.users.Me) DbLogCreatorTask(nl.knaw.huygens.timbuctoo.server.tasks.DbLogCreatorTask) TransactionFilter(nl.knaw.huygens.timbuctoo.database.tinkerpop.TransactionFilter) LegacySingleEntityRedirect(nl.knaw.huygens.timbuctoo.server.endpoints.legacy.LegacySingleEntityRedirect) LoggingFilter(nl.knaw.huygens.timbuctoo.logging.LoggingFilter) BdbDumpTask(nl.knaw.huygens.timbuctoo.server.tasks.BdbDumpTask) Properties(java.util.Properties) LambdaHealthCheck(nl.knaw.huygens.timbuctoo.server.healthchecks.LambdaHealthCheck) Autocomplete(nl.knaw.huygens.timbuctoo.server.endpoints.v2.domain.Autocomplete) AuthCheck(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.auth.AuthCheck) TabularUpload(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.TabularUpload) SerializerWriterRegistry(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.SerializerWriterRegistry) DatabaseMigration(nl.knaw.huygens.timbuctoo.server.databasemigration.DatabaseMigration) ResourceSyncService(nl.knaw.huygens.timbuctoo.remote.rs.ResourceSyncService) GraphVizWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.GraphVizWriter) CsvWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.CsvWriter) InputStream(java.io.InputStream) RootQuery(nl.knaw.huygens.timbuctoo.v5.graphql.rootquery.RootQuery) ResourceSyncFileLoader(nl.knaw.huygens.timbuctoo.remote.rs.download.ResourceSyncFileLoader) WomenWritersEntityGet(nl.knaw.huygens.timbuctoo.experimental.womenwriters.WomenWritersEntityGet) JsonWriter(nl.knaw.huygens.timbuctoo.v5.dropwizard.contenttypes.JsonWriter) ObjectName(javax.management.ObjectName) RsEndpoint(nl.knaw.huygens.timbuctoo.v5.dropwizard.endpoints.RsEndpoint) AutocompleteService(nl.knaw.huygens.timbuctoo.search.AutocompleteService) ScaffoldMigrator(nl.knaw.huygens.timbuctoo.server.databasemigration.ScaffoldMigrator) RdfWiringFactory(nl.knaw.huygens.timbuctoo.v5.graphql.datafetchers.RdfWiringFactory) ExecutorService(java.util.concurrent.ExecutorService)

Aggregations

JmxAttributeGauge (com.codahale.metrics.JmxAttributeGauge)1 MetricRegistry.name (com.codahale.metrics.MetricRegistry.name)1 HealthCheck (com.codahale.metrics.health.HealthCheck)1 SimpleModule (com.fasterxml.jackson.databind.module.SimpleModule)1 ActiveMQBundle (com.kjetland.dropwizard.activemq.ActiveMQBundle)1 ExecutionResult (graphql.ExecutionResult)1 GraphQL (graphql.GraphQL)1 GraphQLSchema (graphql.schema.GraphQLSchema)1 Application (io.dropwizard.Application)1 AssetsBundle (io.dropwizard.assets.AssetsBundle)1 HttpClientBuilder (io.dropwizard.client.HttpClientBuilder)1 EnvironmentVariableSubstitutor (io.dropwizard.configuration.EnvironmentVariableSubstitutor)1 SubstitutingSourceProvider (io.dropwizard.configuration.SubstitutingSourceProvider)1 MultiPartBundle (io.dropwizard.forms.MultiPartBundle)1 ServerLifecycleListener (io.dropwizard.lifecycle.ServerLifecycleListener)1 Bootstrap (io.dropwizard.setup.Bootstrap)1 Environment (io.dropwizard.setup.Environment)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 InetSocketAddress (java.net.InetSocketAddress)1