use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.
the class CodeGenerationSettingsTab method createControl.
public void createControl(Composite parent) {
// initializeDialogUnits(parent);
final ScrolledComposite sc = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
sc.setExpandHorizontal(true);
sc.setExpandVertical(true);
Composite container = new Composite(sc, SWT.NULL);
sc.setContent(container);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 4;
layout.verticalSpacing = 10;
IDialogFieldListener fieldlistener = new IDialogFieldListener() {
public void dialogFieldChanged(DialogField field) {
dialogChanged();
}
};
useExternalProcess = new SelectionButtonDialogField(SWT.CHECK);
useExternalProcess.setDialogFieldListener(fieldlistener);
useExternalProcess.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_use_generation_in_external_process);
consoleConfigurationName = new ComboDialogField(SWT.READ_ONLY);
consoleConfigurationName.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_console_configuration);
ConsoleConfiguration[] cfg = LaunchHelper.findFilteredSortedConsoleConfigs();
String[] names = new String[cfg.length + 1];
names[0] = NULL_CONFIG;
for (int i = 0; i < cfg.length; i++) {
ConsoleConfiguration configuration = cfg[i];
names[i + 1] = configuration.getName();
}
consoleConfigurationName.setItems(names);
consoleConfigurationName.setDialogFieldListener(fieldlistener);
outputdir = new StringButtonDialogField(new IStringButtonAdapter() {
public void changeControlPressed(DialogField field) {
// IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(), PathHelper.pathOrNull(outputdir.getText()), new IPath[0], "Select output directory", "Choose directory in which the generated files will be stored", new String[] {"cfg.xml"}, false, true, false);
IPath[] paths = DialogSelectionHelper.chooseFolderEntries(getShell(), PathHelper.pathOrNull(outputdir.getText()), HibernateConsoleMessages.CodeGenerationSettingsTab_select_output_dir, HibernateConsoleMessages.CodeGenerationSettingsTab_choose_dir_for_generated_files, false);
if (paths != null && paths.length == 1) {
outputdir.setText(((paths[0]).toOSString()));
}
}
});
outputdir.setDialogFieldListener(fieldlistener);
outputdir.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_output_dir);
outputdir.setButtonLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_browse);
templatedir = new DirectoryBrowseField(null, null, HibernateConsoleMessages.CodeGenerationSettingsTab_select_template_dir, HibernateConsoleMessages.CodeGenerationSettingsTab_choose_dir_custom_templates);
templatedir.setDialogFieldListener(fieldlistener);
templatedir.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_template_directory);
templatedir.setFilesystemBrowseLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_filesystem);
templatedir.setWorkspaceBrowseLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_workspace);
packageName = new StringDialogField();
packageName.setDialogFieldListener(fieldlistener);
packageName.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_package);
reverseEngineeringStrategy = new StringButtonDialogField(new IStringButtonAdapter() {
public void changeControlPressed(DialogField field) {
IService service = getService();
String string = DialogSelectionHelper.chooseImplementation(service.getReverseEngineeringStrategyClassName(), reverseEngineeringStrategy.getText(), HibernateConsoleMessages.CodeGenerationSettingsTab_choose_reverse_engineering_strategy, getShell());
if (string != null) {
reverseEngineeringStrategy.setText(string);
}
}
});
reverseEngineeringStrategy.setDialogFieldListener(fieldlistener);
reverseEngineeringStrategy.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_reveng_strategy);
reverseEngineeringStrategy.setButtonLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_browse);
reverseEngineeringSettings = new StringButtonDialogField(new IStringButtonAdapter() {
public void changeControlPressed(DialogField field) {
int defaultChoice = 0;
IPath reverseEngineeringSettingsFile = getReverseEngineeringSettingsFile();
if (reverseEngineeringSettingsFile == null) {
defaultChoice = 0;
} else {
defaultChoice = 1;
}
MessageDialog dialog = new MessageDialog(getShell(), HibernateConsoleMessages.CodeGenerationSettingsTab_setup_reverse_engineering, null, HibernateConsoleMessages.CodeGenerationSettingsTab_do_you_want_create_reveng_xml, MessageDialog.QUESTION, new String[] { HibernateConsoleMessages.CodeGenerationSettingsTab_create_new, HibernateConsoleMessages.CodeGenerationSettingsTab_use_existing, IDialogConstants.CANCEL_LABEL }, defaultChoice);
int answer = dialog.open();
if (answer == 0) {
// create new
NewReverseEngineeringFileWizard wizard = new NewReverseEngineeringFileWizard();
wizard.init(PlatformUI.getWorkbench(), selection);
wizard.setSelectConfiguration(getConfigurationName());
IWorkbenchWindow win = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
WizardDialog wdialog = new WizardDialog(win.getShell(), wizard);
// This opens a dialog
wdialog.open();
IPath createdFilePath = wizard.getCreatedFilePath();
if (createdFilePath != null) {
reverseEngineeringSettings.setText(createdFilePath.toOSString());
}
} else if (answer == 1) {
// use existing
IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(), reverseEngineeringSettingsFile, new IPath[0], HibernateConsoleMessages.CodeGenerationSettingsTab_select_reverse_engineering_settings_file, HibernateConsoleMessages.CodeGenerationSettingsTab_choose_file_read_reverse_settings, new String[] { HibernateConsoleMessages.CodeGenerationSettingsTab_reveng_xml_1 }, false, false, true);
if (paths != null && paths.length == 1) {
reverseEngineeringSettings.setText(((paths[0]).toOSString()));
}
}
}
});
reverseEngineeringSettings.setDialogFieldListener(fieldlistener);
reverseEngineeringSettings.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_reveng_xml_2);
reverseEngineeringSettings.setButtonLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_setup);
reverseengineer = new SelectionButtonDialogField(SWT.CHECK);
reverseengineer.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_reverse_engineer_from_jdbc_connection);
reverseengineer.setDialogFieldListener(fieldlistener);
useOwnTemplates = new SelectionButtonDialogField(SWT.CHECK);
useOwnTemplates.setDialogFieldListener(fieldlistener);
useOwnTemplates.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_use_custom_templates);
preferRawCompositeIds = new SelectionButtonDialogField(SWT.CHECK);
preferRawCompositeIds.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_generate_basic_typed_composite_ids);
preferRawCompositeIds.setSelection(true);
preferRawCompositeIds.setDialogFieldListener(fieldlistener);
autoManyToMany = new SelectionButtonDialogField(SWT.CHECK);
autoManyToMany.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_detect_many_to_many_tables);
autoManyToMany.setSelection(true);
autoManyToMany.setDialogFieldListener(fieldlistener);
autoOneToOne = new SelectionButtonDialogField(SWT.CHECK);
autoOneToOne.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_detect_one_to_one_associations);
autoOneToOne.setSelection(true);
autoOneToOne.setDialogFieldListener(fieldlistener);
autoVersioning = new SelectionButtonDialogField(SWT.CHECK);
autoVersioning.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_detect_optimistic_lock_columns);
autoVersioning.setSelection(true);
autoVersioning.setDialogFieldListener(fieldlistener);
useOwnTemplates.attachDialogField(templatedir);
reverseengineer.attachDialogFields(new DialogField[] { packageName, preferRawCompositeIds, reverseEngineeringSettings, reverseEngineeringStrategy, autoManyToMany, autoOneToOne, autoVersioning });
// do not show the option cause: JBIDE-8072
// useExternalProcess.doFillIntoGrid(container, 4);
useExternalProcess.setSelection(false);
consoleConfigurationName.doFillIntoGrid(container, 4);
Control[] controls = outputdir.doFillIntoGrid(container, 4);
// Hack to tell the text field to stretch!
((GridData) controls[1].getLayoutData()).grabExcessHorizontalSpace = true;
reverseengineer.doFillIntoGrid(container, 4);
packageName.doFillIntoGrid(container, 4);
reverseEngineeringSettings.doFillIntoGrid(container, 4);
reverseEngineeringStrategy.doFillIntoGrid(container, 4);
fillLabel(container);
preferRawCompositeIds.doFillIntoGrid(container, 3);
fillLabel(container);
autoVersioning.doFillIntoGrid(container, 3);
fillLabel(container);
autoManyToMany.doFillIntoGrid(container, 3);
fillLabel(container);
autoOneToOne.doFillIntoGrid(container, 3);
useOwnTemplates.doFillIntoGrid(container, 4);
controls = templatedir.doFillIntoGrid(container, 4);
// Hack to tell the text field to stretch!
((GridData) controls[1].getLayoutData()).grabExcessHorizontalSpace = true;
sc.setMinSize(container.computeSize(SWT.DEFAULT, SWT.DEFAULT));
dialogChanged();
setControl(sc);
}
use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.
the class HQLDetector method checkQuery.
/**
* Given a ConsoleConfiguration and a query this method validates the query through hibernate if a sessionfactory is available.
* @param cc
* @param query
* @param allowEL if true, EL syntax will be replaced as a named variable
* @throws HibernteException if something is wrong with the query
*/
public static void checkQuery(ConsoleConfiguration cc, String query, boolean allowEL) {
if (cc != null && cc.isSessionFactoryCreated()) {
if (allowEL) {
query = ELTransformer.removeEL(query);
}
IService service = cc.getHibernateExtension().getHibernateService();
service.newHQLQueryPlan(query, false, cc.getSessionFactory());
} else {
// messager.printWarning( annoValue.getPosition(), "Could not verify syntax. SessionFactory not created." );
}
}
use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.
the class CoreMappingTestHelper method testHbmExportExceptionTest.
public void testHbmExportExceptionTest(String packageName) throws Exception {
String projectName = testProject.getIProject().getName();
String pathName = "/" + projectName + "/src/" + packageName.replace('.', '/');
IPackageFragment testPackage = testProject.getIJavaProject().findPackageFragment(new Path(pathName));
try {
Object[] persClassesInit = getPersistenceClasses(true);
final ConsoleConfiguration consCFG = getConsoleConfig();
IConfiguration config = consCFG.getConfiguration();
// delete old hbm files
Assert.assertNotNull(testPackage);
int nDeleted = 0;
if (testPackage.getNonJavaResources().length > 0) {
Object[] ress = testPackage.getNonJavaResources();
for (int i = 0; i < ress.length; i++) {
if (ress[i] instanceof IFile) {
IFile res = (IFile) ress[i];
if (res.getName().endsWith(".hbm.xml")) {
// $NON-NLS-1$
res.delete(true, false, null);
nDeleted++;
}
}
}
}
String[] versions = ServiceLookup.getVersions();
IService service = ServiceLookup.findService(versions[0]);
File srcFolder = testProject.getIProject().getFolder(TestProject.SRC_FOLDER).getLocation().toFile();
IHibernateMappingExporter hce = service.newHibernateMappingExporter(config, srcFolder);
try {
hce.start();
IArtifactCollector collector = service.newArtifactCollector();
collector.formatFiles();
try {
// build generated configuration
testPackage.getResource().refreshLocal(IResource.DEPTH_INFINITE, null);
testPackage.getJavaProject().getProject().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
ConsoleConfigUtils.customizeCfgXmlForPack(testPackage);
Assert.assertNotNull(consCFG);
consCFG.reset();
consCFG.build();
Assert.assertTrue(consCFG.hasConfiguration());
consCFG.getConfiguration().buildMappings();
config = consCFG.getConfiguration();
} catch (CoreException e) {
String out = NLS.bind(TestConsoleMessages.UpdateConfigurationTest_error_customising_file_for_package, new Object[] { ConsoleConfigUtils.CFG_FILE_NAME, testPackage.getPath(), e.getMessage() });
Assert.fail(out);
}
} catch (Exception e) {
throw e;
// throw (Exception)e.getCause();
}
//
Object[] persClassesReInit = getPersistenceClasses(false);
//
int nCreated = 0;
if (testPackage.getNonJavaResources().length > 0) {
Object[] ress = testPackage.getNonJavaResources();
for (int i = 0; i < ress.length; i++) {
if (ress[i] instanceof IFile) {
IFile res = (IFile) ress[i];
if (res.getName().endsWith(".hbm.xml")) {
// $NON-NLS-1$
nCreated++;
}
}
}
}
//
Assert.assertTrue(persClassesInit.length == persClassesReInit.length);
Assert.assertTrue(nCreated > 0);
Assert.assertTrue(nDeleted >= 0 && persClassesInit.length > 0);
Assert.assertTrue(nCreated <= persClassesInit.length);
} catch (Exception e) {
// $NON-NLS-1$ //$NON-NLS-2$
String newMessage = "\nPackage " + testPackage.getElementName() + ":";
throw new WrapperException(newMessage, e);
}
}
use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.
the class MappingTestHelper method testHbmExportExceptionTest.
public void testHbmExportExceptionTest() throws Exception {
String projectName = testProject.getIProject().getName();
String pathName = "/" + projectName + "/src/" + packageName.replace('.', '/');
IPackageFragment testPackage = testProject.getIJavaProject().findPackageFragment(new Path(pathName));
try {
Object[] persClassesInit = getPersistenceClasses(true);
final ConsoleConfiguration consCFG = getConsoleConfig();
IConfiguration config = consCFG.getConfiguration();
// delete old hbm files
Assert.assertNotNull(testPackage);
int nDeleted = 0;
if (testPackage.getNonJavaResources().length > 0) {
Object[] ress = testPackage.getNonJavaResources();
for (int i = 0; i < ress.length; i++) {
if (ress[i] instanceof IFile) {
IFile res = (IFile) ress[i];
if (res.getName().endsWith(".hbm.xml")) {
// $NON-NLS-1$
res.delete(true, false, null);
nDeleted++;
}
}
}
}
String[] versions = ServiceLookup.getVersions();
IService service = ServiceLookup.findService(versions[0]);
File srcFolder = testProject.getIProject().getFolder(TestProject.SRC_FOLDER).getLocation().toFile();
IHibernateMappingExporter hce = service.newHibernateMappingExporter(config, srcFolder);
try {
hce.start();
IArtifactCollector collector = service.newArtifactCollector();
collector.formatFiles();
try {
// build generated configuration
testPackage.getResource().refreshLocal(IResource.DEPTH_INFINITE, null);
testPackage.getJavaProject().getProject().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
ConsoleConfigUtils.customizeCfgXmlForPack(testPackage);
Assert.assertNotNull(consCFG);
consCFG.reset();
consCFG.build();
Assert.assertTrue(consCFG.hasConfiguration());
consCFG.getConfiguration().buildMappings();
config = consCFG.getConfiguration();
} catch (CoreException e) {
String out = NLS.bind(TestConsoleMessages.UpdateConfigurationTest_error_customising_file_for_package, new Object[] { ConsoleConfigUtils.CFG_FILE_NAME, testPackage.getPath(), e.getMessage() });
Assert.fail(out);
}
} catch (Exception e) {
// throw (Exception)e.getCause();
throw e;
}
//
Object[] persClassesReInit = getPersistenceClasses(false);
//
int nCreated = 0;
if (testPackage.getNonJavaResources().length > 0) {
Object[] ress = testPackage.getNonJavaResources();
for (int i = 0; i < ress.length; i++) {
if (ress[i] instanceof IFile) {
IFile res = (IFile) ress[i];
if (res.getName().endsWith(".hbm.xml")) {
// $NON-NLS-1$
nCreated++;
}
}
}
}
//
Assert.assertTrue(persClassesInit.length == persClassesReInit.length);
Assert.assertTrue(nCreated > 0);
Assert.assertTrue(nDeleted >= 0 && persClassesInit.length > 0);
Assert.assertTrue(nCreated <= persClassesInit.length);
} catch (Exception e) {
// $NON-NLS-1$ //$NON-NLS-2$
String newMessage = "\nPackage " + testPackage.getElementName() + ":";
throw new WrapperException(newMessage, e);
}
}
use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.
the class ServiceLookupTest method testFindService.
@Test
public void testFindService() {
IService service = ServiceLookup.findService("0.0.0.Test");
Assert.assertNotNull(service);
Assert.assertEquals(TestService.class, service.getClass());
}
Aggregations