vbhanuchander-lang opened a new pull request, #9138:
URL: https://github.com/apache/hop/pull/9138

   Closes #9098.
   
   The Oracle, MS SQL Server Native and Redshift metas implemented 
`IGuiPluginCompositeWidgetsListener` themselves, so just loading the class 
needed hop-ui and SWT. That breaks Hop as a library without the GUI.
   
   - The listener code moves unchanged into a separate class in each plugin 
(`OracleWidgetsListener`, `MsSqlServerNativeWidgetsListener`, 
`RedshiftWidgetsListener`).
   - `IDatabase` gets `getGuiWidgetsListenerClassName()`, returning `null` by 
default. It returns a name rather than a class, so the meta never references a 
GUI type.
   - `DatabaseMetaEditor` creates the named listener from the plugin's class 
loader, and makes a new one when the connection type changes. A meta that 
implements the listener itself still works as before.
   - `DisabledGuiWidgetsTestBase` and `OracleWidgetVisibilityTest` use the new 
listener classes.
   
   ## Tests
   
   A new `*HeadlessTest` in each plugin loads the meta with `org.apache.hop.ui` 
and `org.eclipse.swt` hidden. On main all three fail with 
`NoClassDefFoundError: 
org/apache/hop/ui/core/gui/IGuiPluginCompositeWidgetsListener`, and with this 
change they pass. The non-UI tests of the three plugins pass. I did not run the 
`uitest`-tagged tests locally.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to