[jboss-cvs] jbosside/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch ...
Max Rydahl Andersen
mandersen at jboss.com
Mon Nov 27 10:29:08 EST 2006
User: mandersen
Date: 06/11/27 10:29:08
Modified: hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch
CodeGenerationLaunchDelegate.java
GeneralExceptionStatusHandler.java
Log:
Reverse engineering is now using the underlying configuration more consistently - allow 100% persistence.xml based configuration.
Revision Changes Path
1.20 +46 -34 jbosside/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenerationLaunchDelegate.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CodeGenerationLaunchDelegate.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenerationLaunchDelegate.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- CodeGenerationLaunchDelegate.java 16 Nov 2006 17:30:09 -0000 1.19
+++ CodeGenerationLaunchDelegate.java 27 Nov 2006 15:29:08 -0000 1.20
@@ -169,6 +169,8 @@
}
catch (CoreException e) {
HibernateConsolePlugin.getDefault().logErrorMessage("exception during java format", e);
+ } catch (Throwable e) { // full guard since the above operation seem to be able to fail with IllegalArugmentException and SWT Invalid thread access while users are editing.
+ HibernateConsolePlugin.getDefault().logErrorMessage("exception during java format", e);
}
}
}
@@ -206,43 +208,17 @@
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
final IResource resource = findMember( root, attributes.getOutputPath() );
final IResource templateres = findMember(root, attributes.getTemplatePath());
- final IResource revengres = findMember( root, attributes.getRevengSettings());
+
/*if (!resource.exists() || !(resource instanceof IContainer) ) {
throwCoreException("Output directory \"" + configName + "\" does not exist.");
}*/
/*IContainer container = (IContainer) resource;*/
ConsoleConfiguration cc = KnownConfigurations.getInstance().find(attributes.getConsoleConfigurationName());
- ReverseEngineeringStrategy res = null;
-
- ReverseEngineeringSettings qqsettings = null;
if (attributes.isReverseEngineer()) {
monitor.subTask("reading jdbc metadata");
-
- //todo: factor this setup of revengstrategy to core
- DefaultReverseEngineeringStrategy configurableNamingStrategy = new DefaultReverseEngineeringStrategy();
- //configurableNamingStrategy.setSettings(qqsettings);
-
- res = configurableNamingStrategy;
- if(revengres!=null) {
- /*Configuration configuration = cc.buildWith(new Configuration(), false);*/
- /*Settings settings = cc.getSettings(configuration);*/
- File file = getLocation( revengres ).toFile();
- OverrideRepository repository = new OverrideRepository();///*settings.getDefaultCatalogName(),settings.getDefaultSchemaName()*/);
- repository.addFile(file);
- res = repository.getReverseEngineeringStrategy(res);
}
-
-
- qqsettings = new ReverseEngineeringSettings(res)
- .setDefaultPackageName(attributes.getPackageName())
- .setDetectManyToMany( attributes.detectManyToMany() )
- .setDetectOptimisticLock( attributes.detectOptimisticLock() );
-
- configurableNamingStrategy.setSettings( qqsettings );
- res.setSettings(qqsettings);
- }
- final Configuration cfg = buildConfiguration(attributes.isReverseEngineer(), attributes.getRevengStrategy(), cc, res, attributes.isPreferBasicCompositeIds(), qqsettings);
+ final Configuration cfg = buildConfiguration(attributes, cc, root);
monitor.worked(1);
@@ -313,9 +289,23 @@
else return resource.getRawLocation();
}
- private Configuration buildConfiguration(boolean reveng, final String reverseEngineeringStrategy, ConsoleConfiguration cc, final ReverseEngineeringStrategy revEngStrategy, boolean preferBasicCompositeids, final ReverseEngineeringSettings settings) {
+ private Configuration buildConfiguration(final ExporterAttributes attributes, ConsoleConfiguration cc, IWorkspaceRoot root) {
+ final boolean reveng = attributes.isReverseEngineer();
+ final String reverseEngineeringStrategy = attributes.getRevengStrategy();
+ final boolean preferBasicCompositeids = attributes.isPreferBasicCompositeIds();
+ final IResource revengres = findMember( root, attributes.getRevengSettings());
+
if(reveng) {
+ Configuration configuration = null;
+ if(cc.hasConfiguration()) {
+ configuration = cc.getConfiguration();
+ } else {
+ configuration = cc.buildWith( null, false );
+ }
+
final JDBCMetaDataConfiguration cfg = new JDBCMetaDataConfiguration();
+ Properties properties = configuration.getProperties();
+ cfg.setProperties( properties );
cc.buildWith(cfg,false);
cfg.setPreferBasicCompositeIds(preferBasicCompositeids);
@@ -324,13 +314,35 @@
public Object execute() {
+
+ //todo: factor this setup of revengstrategy to core
+ DefaultReverseEngineeringStrategy configurableNamingStrategy = new DefaultReverseEngineeringStrategy();
+ //configurableNamingStrategy.setSettings(qqsettings);
+
+ ReverseEngineeringStrategy res = configurableNamingStrategy;
+ if(revengres!=null) {
+ /*Configuration configuration = cc.buildWith(new Configuration(), false);*/
+ /*Settings settings = cc.getSettings(configuration);*/
+ File file = getLocation( revengres ).toFile();
+ OverrideRepository repository = new OverrideRepository();///*settings.getDefaultCatalogName(),settings.getDefaultSchemaName()*/);
+ repository.addFile(file);
+ res = repository.getReverseEngineeringStrategy(res);
+ }
+
if(reverseEngineeringStrategy!=null && reverseEngineeringStrategy.trim().length()>0) {
- ReverseEngineeringStrategy res = loadreverseEngineeringStrategy(reverseEngineeringStrategy, revEngStrategy);
- res.setSettings(settings);
- cfg.setReverseEngineeringStrategy(res);
- } else {
- cfg.setReverseEngineeringStrategy(revEngStrategy);
+ res = loadreverseEngineeringStrategy(reverseEngineeringStrategy, res);
}
+
+ ReverseEngineeringSettings qqsettings = new ReverseEngineeringSettings(res)
+ .setDefaultPackageName(attributes.getPackageName())
+ .setDetectManyToMany( attributes.detectManyToMany() )
+ .setDetectOptimisticLock( attributes.detectOptimisticLock() );
+
+ configurableNamingStrategy.setSettings( qqsettings );
+ res.setSettings(qqsettings);
+
+ cfg.setReverseEngineeringStrategy( res );
+
cfg.readFromJDBC();
cfg.buildMappings();
return null;
1.4 +1 -0 jbosside/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/GeneralExceptionStatusHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: GeneralExceptionStatusHandler.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/GeneralExceptionStatusHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- GeneralExceptionStatusHandler.java 7 Jul 2006 13:51:08 -0000 1.3
+++ GeneralExceptionStatusHandler.java 27 Nov 2006 15:29:08 -0000 1.4
@@ -31,6 +31,7 @@
public Object handleStatus(IStatus status, Object source)
throws CoreException {
final boolean[] result = new boolean[1];
+ HibernateConsolePlugin.getDefault().log( status );
HibernateConsolePlugin.openError(null, "Generating code", "Exception while generating code", status.getException(), HibernateConsolePlugin.PERFORM_SYNC_EXEC);
return new Boolean(result[0]);
}
More information about the jboss-cvs-commits
mailing list