Details
-
Type:
Improvement
-
Status: Resolved
-
Priority:
Minor
-
Resolution: Complete
-
Affects Version/s: 1.1.1.RELEASE
-
Fix Version/s: 1.1.1.RELEASE
-
Component/s: @ ROO SHELL
-
Labels:None
Description
When I rebuild/reinstall roo, it complains that I have no jdbc driver.
The exception is ugly... but the real problem is that the "HINT" does not include the most important:
For those of us that use roo as a 'tool' rather than a platform, and are not familiar with the addon functions,
it would be great to have one more hint:
[HINT] use 'addon install --bundleId 01' to install 5.1.13.0001 #jdbcdriver driverclass:com.mysql.jdbc.Driver
In particular, mentioning the '--bundleId' parameter would be helpful, instructive.
(I keep hoping that TAB will prompt to remind of the available/required params)
By the time i figure that out, and determine that the bundleId that is expected/required is numeric,
and then do a 'addon list' (which assigns a new/different Id for the jdbc driver)
and then realize there are multiple #jdbcdriver in the list, so must read more details
the whole experience is so much more complicated/frustrating than it needs to be.
Just sayin' since roo noticed there was exactly one addon that seems appropriate,
that it would be nice to see a hint for the dummies for how to install that bundle.
roo> database reverse engineer --schema gamma --package ~.domain
Located add-on that may offer this JDBC driver
1 found, sorted by rank; T = trusted developer; R = Roo 1.1 compatible
ID T R DESCRIPTION -------------------------------------------------------------
01 Y Y 5.1.13.0001 #jdbcdriver driverclass:com.mysql.jdbc.Driver. This...
--------------------------------------------------------------------------------
[HINT] use 'addon info' to see details about a bundle
[HINT] use 'addon install' to install a specific bundle
JDBC driver not available for 'com.mysql.jdbc.Driver'
java.lang.IllegalArgumentException: JDBC driver not available for 'com.mysql.jdbc.Driver'
at org.springframework.roo.support.util.Assert.notNull(Assert.java:112)
at org.springframework.roo.addon.dbre.jdbc.ConnectionProviderImpl.getConnection(ConnectionProviderImpl.java:41)
at org.springframework.roo.addon.dbre.jdbc.ConnectionProviderImpl.getConnection(ConnectionProviderImpl.java:53)
at org.springframework.roo.addon.dbre.DbreModelServiceImpl.getConnection(DbreModelServiceImpl.java:317)
at org.springframework.roo.addon.dbre.DbreModelServiceImpl.getDatabase(DbreModelServiceImpl.java:214)
at org.springframework.roo.addon.dbre.DbreModelServiceImpl.refreshDatabase(DbreModelServiceImpl.java:155)
at org.springframework.roo.addon.dbre.DbreOperationsImpl.reverseEngineerDatabase(DbreOperationsImpl.java:77)
at org.springframework.roo.addon.dbre.DbreCommands.serializeDatabaseMetadata(DbreCommands.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.roo.support.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:191)
at org.springframework.roo.process.manager.ProcessManagerHostedExecutionStrategy$1.callback(ProcessManagerHostedExecutionStrategy.java:49)
at org.springframework.roo.process.manager.internal.DefaultProcessManager.doTransactionally(DefaultProcessManager.java:177)
at org.springframework.roo.process.manager.internal.DefaultProcessManager.execute(DefaultProcessManager.java:140)
at org.springframework.roo.process.manager.ProcessManagerHostedExecutionStrategy.execute(ProcessManagerHostedExecutionStrategy.java:47)
at org.springframework.roo.shell.AbstractShell.executeCommand(AbstractShell.java:165)
at org.springframework.roo.shell.jline.JLineShell.promptLoop(JLineShell.java:358)
at org.springframework.roo.shell.jline.JLineShell.run(JLineShell.java:132)
at java.lang.Thread.run(Thread.java:619)