use of org.talend.core.repository.model.IRepositoryFactory in project tdi-studio-se by Talend.
the class LoginDialog method logIn.
/**
* DOC smallet Comment method "logIn".
*
* @param project
* @throws Exception
*/
protected boolean logIn(final Project project) {
final ProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
ConnectionBean connBean = loginComposite.getConnection();
final boolean needRestartForLocal = loginComposite.needRestartForLocal();
if (connBean == null || project == null || project.getLabel() == null) {
return false;
}
try {
if (!project.getEmfProject().isLocal() && factory.isLocalConnectionProvider()) {
List<IRepositoryFactory> rfList = RepositoryFactoryProvider.getAvailableRepositories();
IRepositoryFactory remoteFactory = null;
for (IRepositoryFactory rf : rfList) {
if (!rf.isLocalConnectionProvider()) {
remoteFactory = rf;
break;
}
}
if (remoteFactory != null) {
factory.setRepositoryFactoryFromProvider(remoteFactory);
factory.getRepositoryContext().setOffline(true);
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
// Save last used parameters
PreferenceManipulator prefManipulator = new PreferenceManipulator(CorePlugin.getDefault().getPreferenceStore());
prefManipulator.setLastProject(project.getTechnicalLabel());
saveLastConnBean(connBean);
// check for Talendforge
if (PluginChecker.isExchangeSystemLoaded() && !TalendPropertiesUtil.isHideExchange()) {
IPreferenceStore prefStore = PlatformUI.getPreferenceStore();
boolean checkTisVersion = prefStore.getBoolean(ITalendCorePrefConstants.EXCHANGE_CHECK_TIS_VERSION);
IBrandingService brandingService = (IBrandingService) GlobalServiceRegister.getDefault().getService(IBrandingService.class);
if (!checkTisVersion && brandingService.isPoweredbyTalend()) {
int count = prefStore.getInt(TalendForgeDialog.LOGINCOUNT);
if (count < 0) {
count = 1;
}
ExchangeUser exchangeUser = project.getExchangeUser();
boolean isExchangeLogon = exchangeUser.getLogin() != null && !exchangeUser.getLogin().equals("");
boolean isUserPassRight = true;
if (isExchangeLogon) {
IExchangeService service = (IExchangeService) GlobalServiceRegister.getDefault().getService(IExchangeService.class);
if (service.checkUserAndPass(exchangeUser.getUsername(), exchangeUser.getPassword()) != null) {
isUserPassRight = false;
}
}
if (!isExchangeLogon || !isUserPassRight) {
if ((count + 1) % 4 == 0) {
// if (Platform.getOS().equals(Platform.OS_LINUX)) {
// TalendForgeDialog tfDialog = new TalendForgeDialog(this.getShell(), project);
// tfDialog.open();
// } else {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
String userEmail = null;
if (project.getAuthor() != null) {
userEmail = project.getAuthor().getLogin();
}
TalendForgeDialog tfDialog = new TalendForgeDialog(getShell(), userEmail);
tfDialog.setBlockOnOpen(true);
tfDialog.open();
}
});
}
prefStore.setValue(TalendForgeDialog.LOGINCOUNT, count + 1);
}
}
}
try {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisService.class)) {
final ICoreTisService service = (ICoreTisService) GlobalServiceRegister.getDefault().getService(ICoreTisService.class);
if (service != null) {
// if in TIS then update the bundle status according to the project type
if (!service.validProject(project, needRestartForLocal)) {
LoginComposite.isRestart = true;
return true;
}
}
// else not in TIS so ignor caus we may not have a licence so we do not know which bundles belong to
// DI, DQ or MDM
}
} catch (PersistenceException e) {
e.printStackTrace();
loginComposite.populateProjectList();
MessageDialog.openError(getShell(), getShell().getText(), e.getMessage());
return false;
}
final Shell shell = this.getShell();
ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
IRunnableWithProgress runnable = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
// monitorWrap = new EventLoopProgressMonitor(monitor);
try {
factory.logOnProject(project, monitor);
} catch (LoginException e) {
throw new InvocationTargetException(e);
} catch (PersistenceException e) {
throw new InvocationTargetException(e);
} catch (OperationCanceledException e) {
throw new InterruptedException(e.getLocalizedMessage());
}
monitor.done();
}
};
try {
dialog.run(true, true, runnable);
} catch (final InvocationTargetException e) {
if (PluginChecker.isSVNProviderPluginLoaded()) {
loginComposite.populateProjectList();
if (e.getTargetException() instanceof OperationCancelException) {
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {
MessageDialog.openError(Display.getDefault().getActiveShell(), Messages.getString("LoginDialog.logonCanceled"), e.getTargetException().getLocalizedMessage());
}
});
} else {
MessageBoxExceptionHandler.process(e.getTargetException(), getShell());
}
} else {
loginComposite.populateTOSProjectList();
MessageBoxExceptionHandler.process(e.getTargetException(), getShell());
}
return false;
} catch (InterruptedException e) {
if (PluginChecker.isSVNProviderPluginLoaded()) {
loginComposite.populateProjectList();
} else {
loginComposite.populateTOSProjectList();
}
return false;
}
return true;
}
use of org.talend.core.repository.model.IRepositoryFactory in project tdi-studio-se by Talend.
the class LoginHelper method logIn.
public boolean logIn(ConnectionBean connBean, final Project project) {
final ProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
final boolean needRestartForLocal = needRestartForLocal(connBean);
if (connBean == null || project == null || project.getLabel() == null) {
return false;
}
try {
if (!project.getEmfProject().isLocal() && factory.isLocalConnectionProvider()) {
List<IRepositoryFactory> rfList = RepositoryFactoryProvider.getAvailableRepositories();
IRepositoryFactory remoteFactory = null;
for (IRepositoryFactory rf : rfList) {
if (!rf.isLocalConnectionProvider()) {
remoteFactory = rf;
break;
}
}
if (remoteFactory != null) {
factory.setRepositoryFactoryFromProvider(remoteFactory);
factory.getRepositoryContext().setOffline(true);
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
// Save last used parameters
prefManipulator.setLastProject(project.getTechnicalLabel());
saveLastConnBean(connBean);
try {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisService.class)) {
final ICoreTisService service = (ICoreTisService) GlobalServiceRegister.getDefault().getService(ICoreTisService.class);
if (service != null) {
// if in TIS then update the bundle status according to the project type
if (!service.validProject(project, needRestartForLocal)) {
isRestart = true;
return true;
}
}
// else not in TIS so ignor caus we may not have a licence so we do not know which bundles belong to
// DI, DQ or MDM
}
} catch (PersistenceException e) {
CommonExceptionHandler.process(e);
MessageDialog.openError(getUsableShell(), getUsableShell().getText(), e.getMessage());
return false;
}
final Shell shell = getUsableShell();
ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
IRunnableWithProgress runnable = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
// monitorWrap = new EventLoopProgressMonitor(monitor);
try {
factory.logOnProject(project, monitor);
} catch (LoginException e) {
throw new InvocationTargetException(e);
} catch (PersistenceException e) {
throw new InvocationTargetException(e);
} catch (OperationCanceledException e) {
throw new InterruptedException(e.getLocalizedMessage());
}
monitor.done();
}
};
try {
dialog.run(true, true, runnable);
} catch (final InvocationTargetException e) {
// if (PluginChecker.isSVNProviderPluginLoaded()) {
if (e.getTargetException() instanceof OperationCancelException) {
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {
MessageDialog.openError(Display.getDefault().getActiveShell(), Messages.getString("LoginDialog.logonCanceled"), e.getTargetException().getLocalizedMessage());
}
});
} else {
MessageBoxExceptionHandler.process(e.getTargetException(), getUsableShell());
}
factory.getRepositoryContext().setProject(null);
// }
return false;
} catch (InterruptedException e) {
// }
return false;
}
return true;
}
use of org.talend.core.repository.model.IRepositoryFactory in project tdq-studio-se by Talend.
the class TDQResourceChangeHandlerTest method setUp.
@Before
public void setUp() throws Exception {
if (tdqResourceChangeHandler == null) {
ProxyRepositoryFactory proxFactory = mock(ProxyRepositoryFactory.class);
// $NON-NLS-1$
stub(method(ProxyRepositoryFactory.class, "getInstance")).toReturn(proxFactory);
IRepositoryFactory repFactory = mock(IRepositoryFactory.class);
when(proxFactory.getRepositoryFactoryFromProvider()).thenReturn(repFactory);
XmiResourceManager resManager = mock(XmiResourceManager.class);
when(repFactory.getResourceManager()).thenReturn(resManager);
tdqResourceChangeHandler = new TDQResourceChangeHandler();
}
}
use of org.talend.core.repository.model.IRepositoryFactory in project tdq-studio-se by Talend.
the class AnalysisEditor method registerUpdateExecutionEvent.
/**
* currently will not open the editor of the analysis when running from menu, so, if the editor is opened and not
* the current active one, the page will not know that the result is changed. so we need to add the event/listener
* to them to handle this. Added 20130725 TDQ-7639
*
* @param analysis
*/
private void registerUpdateExecutionEvent() {
// register: check if the analysis need to be saved or if it can run before running it(from menu's RUN)
checkBeforeRunReceiver = new EventReceiver() {
@Override
public boolean handle(Object data) {
if (isDirty()) {
ReturnCode canSave = masterPage.canSave();
if (canSave.isOk()) {
// save the analysis before running
// MOD msjian TDQ-8225 : This save action won't invoke any remote repository action such as svn
// commit. TDQ-7508
IRepositoryFactory localRepository = RepositoryFactoryProvider.getRepositoriyById(RepositoryConstants.REPOSITORY_LOCAL_ID);
IRepositoryFactory oldRepository = ProxyRepositoryFactory.getInstance().getRepositoryFactoryFromProvider();
ProxyRepositoryFactory.getInstance().setRepositoryFactoryFromProvider(localRepository);
try {
doSave(null);
} catch (Exception e) {
log.error(e, e);
} finally {
ProxyRepositoryFactory.getInstance().setRepositoryFactoryFromProvider(oldRepository);
}
// TDQ-8225~
setDirty(false);
} else {
if (canSave.getMessage() != null && !canSave.getMessage().equals(StringUtils.EMPTY)) {
MessageDialogWithToggle.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DefaultMessagesImpl.getString("AbstractAnalysisMetadataPage.SaveAnalysis"), // $NON-NLS-1$
canSave.getMessage());
}
return false;
}
}
ReturnCode canRun = canRun();
if (!canRun.isOk()) {
MessageDialogWithToggle.openError(null, DefaultMessagesImpl.getString("RunAnalysisAction.runAnalysisError"), // $NON-NLS-1$
canRun.getMessage());
return false;
}
// TDQ-8220 change the listener every time( master page or result page)
changeListener();
return true;
}
};
EventManager.getInstance().register(getMasterPage().getCurrentModelElement(), EventEnum.DQ_ANALYSIS_CHECK_BEFORERUN, checkBeforeRunReceiver);
// register: refresh the result page after running it from menu
refreshReceiver = new EventReceiver() {
@Override
public boolean handle(Object data) {
// enough;TDQ-8270 resultpage is null for overview type
if (resultPage != null && resultPage.getManagedForm() != null) {
resultPage.refresh(getMasterPage());
} else {
getMasterPage().refreshGraphicsInSettingsPage();
}
return true;
}
};
EventManager.getInstance().register(getMasterPage().getCurrentModelElement(), EventEnum.DQ_ANALYSIS_RUN_FROM_MENU, refreshReceiver);
// register: reopen this editor after reload its depended connection
reopenEditor = new EventReceiver() {
@Override
public boolean handle(Object data) {
// TDQ-13275 remove 'Display.getDefault().asyncExec' to avoid error with Multi-thread open editors.
WorkbenchUtils.refreshCurrentAnalysisEditor(getMasterPage().getCurrentModelElement().getName());
return true;
}
};
EventManager.getInstance().register(getMasterPage().getCurrentModelElement().getName(), EventEnum.DQ_ANALYSIS_REOPEN_EDITOR, reopenEditor);
// all match indicator in the Indicators section.
if (analysisType.equals(AnalysisType.COLUMN_SET)) {
// register: refresh the dataprovider combobox when the name of the data provider is changed.
refresh2ShowMatchIndicator = new EventReceiver() {
@Override
public boolean handle(Object data) {
((ColumnSetAnalysisDetailsPage) getMasterPage()).refreshIndicatorsSection();
return true;
}
};
EventManager.getInstance().register(getMasterPage().getCurrentModelElement(), EventEnum.DQ_COLUMNSET_SHOW_MATCH_INDICATORS, refresh2ShowMatchIndicator);
}
// Added TDQ8787 2014-06-16 yyin: for dynamic chart, create all charts before execute the analysis
if (masterPage instanceof DynamicAnalysisMasterPage) {
registerDynamicEvent = new EventReceiver() {
@Override
public boolean handle(Object data) {
if (masterPage.equals(activePageInstance)) {
((DynamicAnalysisMasterPage) masterPage).registerDynamicEvent();
} else {
// register result page
if (resultPage != null) {
if (resultPage instanceof ColumnAnalysisResultPage) {
((ColumnAnalysisResultPage) resultPage).registerDynamicEvent();
} else if (resultPage instanceof BusinessRuleAnalysisResultPage) {
((BusinessRuleAnalysisResultPage) resultPage).registerDynamicEvent();
}
}
}
return true;
}
};
EventManager.getInstance().register(getMasterPage().getCurrentModelElement(), EventEnum.DQ_DYNAMIC_REGISTER_DYNAMIC_CHART, registerDynamicEvent);
unRegisterDynamicEvent = new EventReceiver() {
@Override
public boolean handle(Object data) {
if (masterPage.equals(activePageInstance)) {
((DynamicAnalysisMasterPage) masterPage).unRegisterDynamicEvent();
} else {
// register result page
if (resultPage != null) {
if (resultPage instanceof ColumnAnalysisResultPage) {
((ColumnAnalysisResultPage) resultPage).unRegisterDynamicEvent();
} else if (resultPage instanceof BusinessRuleAnalysisResultPage) {
((BusinessRuleAnalysisResultPage) resultPage).unRegisterDynamicEvent();
}
}
}
return true;
}
};
EventManager.getInstance().register(getMasterPage().getCurrentModelElement(), EventEnum.DQ_DYNAMIC_UNREGISTER_DYNAMIC_CHART, unRegisterDynamicEvent);
}
}
use of org.talend.core.repository.model.IRepositoryFactory in project tdq-studio-se by Talend.
the class UnitTestBuildHelper method initProxyRepository.
/**
* DOC talend Comment method "initProxyRepository".
*/
public static void initProxyRepository(IProject rootProject) {
Project project = null;
ProxyRepositoryFactory proxyRepository = ProxyRepositoryFactory.getInstance();
IRepositoryFactory repository = RepositoryFactoryProvider.getRepositoriyById(RepositoryConstants.REPOSITORY_LOCAL_ID);
if (repository == null) {
log.fatal(DefaultMessagesImpl.getString(// $NON-NLS-1$
"No local Repository found! Probably due to a missing plugin in the product."));
}
proxyRepository.setRepositoryFactoryFromProvider(repository);
try {
proxyRepository.checkAvailability();
proxyRepository.setFullLogonFinished(false);
// proxyRepository.initialize();
XmiResourceManager xmiResourceManager = new XmiResourceManager();
if (rootProject.getFile(FileConstants.LOCAL_PROJECT_FILENAME).exists()) {
// Initialize TDQ EMF model packages.
new EMFUtil();
project = new Project(xmiResourceManager.loadProject(rootProject));
} else {
User user = org.talend.core.model.properties.impl.PropertiesFactoryImpl.eINSTANCE.createUser();
// $NON-NLS-1$
user.setLogin("talend@talend.com");
// $NON-NLS-1$
user.setPassword("talend@talend.com".getBytes());
String projectName = rootProject.getName();
String projectDesc = ResourcesPlugin.getWorkspace().newProjectDescription(projectName).getComment();
Project projectInfor = ProjectHelper.createProject(projectName, projectDesc, ECodeLanguage.JAVA.getName(), user);
// MOD zshen create project by proxyRepository
checkFileName(projectInfor.getLabel(), RepositoryConstants.PROJECT_PATTERN);
project = proxyRepository.getRepositoryFactoryFromProvider().createProject(projectInfor);
}
if (project != null) {
initRepositoryContext(project);
// add status
// $NON-NLS-1$
String defaultTechnicalStatusList = "DEV development;TEST testing;PROD production";
List<Status> statusList = StatusHelper.parse(defaultTechnicalStatusList);
proxyRepository.setTechnicalStatus(statusList);
}
} catch (PersistenceException e) {
Assert.fail(e.getMessage());
}
}
Aggregations