Skip to content

Make user experiense with cups better #92

@jvalkeal

Description

@jvalkeal

I tried to make cfenv to configure external sqlserver and it's not easy. Firstly because we don't have no docs what a particular database binding might expect user to set. Secondly various jdbc url creators works a little differently so you get unexpected errors internally and as we don't really log those it's difficult to fix configs.

For example if adding mysql like this my app tries to connect to localhost:

cf create-user-provided-service mysql-database-service -p '{"uri":"mysql://localhost:3306/dataflow", "username":"foo", "password":"bar"}'

If I add sqlserver like this, cfenv is just skipping configuring phase.

cf create-user-provided-service mssql-database-service -p '{"uri":"sqlserver://localhost:1433;database=dataflow", "username":"foo", "password":"bar"}'

When I modified code to spit out errors, this is what I saw:

java.lang.NullPointerException
	at java.net.URLEncoder.encode(URLEncoder.java:204)
	at io.pivotal.cfenv.core.UriInfo.urlEncode(UriInfo.java:107)
	at io.pivotal.cfenv.jdbc.SqlServerJdbcUrlCreator.buildJdbcUrlFromUriField(SqlServerJdbcUrlCreator.java:36)
	at io.pivotal.cfenv.jdbc.AbstractJdbcUrlCreator.createJdbcUrl(AbstractJdbcUrlCreator.java:49)
	at io.pivotal.cfenv.jdbc.CfJdbcUrlCreator.<init>(CfJdbcUrlCreator.java:45)
	at io.pivotal.cfenv.jdbc.CfJdbcEnv.findJdbcService(CfJdbcEnv.java:45)
	at io.pivotal.cfenv.spring.boot.CfDataSourceEnvironmentPostProcessor.postProcessEnvironment(CfDataSourceEnvironmentPostProcessor.java:67)

Looks like I get cfenv to configure sqlserver if I use jdbcUrl instead if using uri:

cf create-user-provided-service mssql-database-service -p '{"jdbcUrl":"jdbc:sqlserver://localhost:1433;database=dataflow", "username":"foo", "password":"bar"}'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions