/** * Locates the {@link DbmsType} corresponding to the specified {@link Dbms}, * or throws a {@code SpeedmentException} if it can not be found. * * @param dbmsHandlerComponent the handler to look in * @param dbms the dbms to look for * @return the dbms type of that dbms */ public static DbmsType findDbmsType(DbmsHandlerComponent dbmsHandlerComponent, Dbms dbms) { return dbmsHandlerComponent.findByName(dbms.getTypeName()) .orElseThrow(() -> new SpeedmentException( "Could not find any installed DbmsType named '" + dbms.getTypeName() + "'." )); }
/** * Returns the {@link DbmsType} for the specified {@link Dbms}. * * @param handler the dbms handler to use * @param dbms the dbms * @return the type of that dbms */ public static DbmsType dbmsTypeOf(DbmsHandlerComponent handler, Dbms dbms) { final String typeName = dbms.getTypeName(); return handler.findByName(typeName).orElseThrow(() -> new SpeedmentException( "Unable to find the database type " + typeName + ". The installed types are: " + handler.supportedDbmsTypes() .map(DbmsType::getName) .collect(joining(", ")) ) ); }
ImmutableDbms(ImmutableProject parent, Map<String, Object> dbms) { super(parent, requireKeys(dbms, Dbms.TYPE_NAME)); final Dbms prototype = new DbmsImpl(parent, dbms); this.enabled = prototype.isEnabled(); this.id = prototype.getId(); this.name = prototype.getName(); this.alias = prototype.getAlias(); this.typeName = prototype.getTypeName(); this.ipAddress = prototype.getIpAddress(); this.port = prototype.getPort(); this.username = prototype.getUsername(); this.schemas = unmodifiableList(super.children(SCHEMAS, ImmutableSchema::new).collect(toList())); }
protected void validateRuntimeConfig(Injector injector) { LOGGER.debug("Validating Runtime Configuration"); final Project project = injector.getOrThrow(ProjectComponent.class) .getProject(); if (project == null) { throw new SpeedmentException("No project defined"); } project.dbmses().forEach(d -> { final String typeName = d.getTypeName(); final Optional<DbmsType> oDbmsType = injector.getOrThrow( DbmsHandlerComponent.class).findByName(typeName); if (!oDbmsType.isPresent()) { throw new SpeedmentException("The database type " + typeName + " is not registered with the " + DbmsHandlerComponent.class.getSimpleName()); } final DbmsType dbmsType = oDbmsType.get(); if (!dbmsType.isSupported()) { LOGGER.error("The database driver class " + dbmsType.getDriverName() + " is not available. Make sure to include it in your " + "class path (e.g. in the POM file)" ); } }); }
final DbmsMetadataHandler dh = dbmsHandlerComponenet.findByName(dbmsCopy.getTypeName()) .map(DbmsType::getMetadataHandler) .orElseThrow(() -> new SpeedmentToolException( "Could not find metadata handler for DbmsType '" + dbmsCopy.getTypeName() + "'." ));
/** * Locates the {@link DbmsType} corresponding to the specified {@link Dbms}, * or throws a {@code SpeedmentException} if it can not be found. * * @param dbmsHandlerComponent the handler to look in * @param dbms the dbms to look for * @return the dbms type of that dbms */ public static DbmsType findDbmsType(DbmsHandlerComponent dbmsHandlerComponent, Dbms dbms) { return dbmsHandlerComponent.findByName(dbms.getTypeName()) .orElseThrow(() -> new SpeedmentException( "Could not find any installed DbmsType named '" + dbms.getTypeName() + "'." )); }
/** * Returns the {@link DbmsType} for the specified {@link Dbms}. * * @param handler the dbms handler to use * @param dbms the dbms * @return the type of that dbms */ public static DbmsType dbmsTypeOf(DbmsHandlerComponent handler, Dbms dbms) { final String typeName = dbms.getTypeName(); return handler.findByName(typeName).orElseThrow(() -> new SpeedmentException( "Unable to find the database type " + typeName + ". The installed types are: " + handler.supportedDbmsTypes() .map(DbmsType::getName) .collect(joining(", ")) ) ); }
protected void validateRuntimeConfig(Injector injector) { LOGGER.debug("Validating Runtime Configuration"); final Project project = injector.getOrThrow(ProjectComponent.class) .getProject(); if (project == null) { throw new SpeedmentException("No project defined"); } project.dbmses().forEach(d -> { final String typeName = d.getTypeName(); final Optional<DbmsType> oDbmsType = injector.getOrThrow( DbmsHandlerComponent.class).findByName(typeName); if (!oDbmsType.isPresent()) { throw new SpeedmentException("The database type " + typeName + " is not registered with the " + DbmsHandlerComponent.class.getSimpleName()); } final DbmsType dbmsType = oDbmsType.get(); if (!dbmsType.isSupported()) { LOGGER.error("The database driver class " + dbmsType.getDriverName() + " is not available. Make sure to include it in your " + "class path (e.g. in the POM file)" ); } }); }