[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