public void start()

in org.apache.ivyde.eclipse/src/java/org/apache/ivyde/internal/eclipse/IvyPlugin.java [135:234]


    public void start(BundleContext context) throws Exception {
        super.start(context);
        this.bundleContext = context;
        logInfo("starting IvyDE plugin");

        if (IvyDEsecurityHelper.credentialsInSecureStorage()) {
            IvyDEsecurityHelper.cpyCredentialsFromSecureToIvyStorage();
            logInfo("Credentials loaded from secure storage");
        } else {
            logInfo("No credentials stored in secure storage");
        }

        Matcher matcher = IVY_VERSION_PATTERN.matcher(Ivy.getIvyVersion());
        if (matcher.matches()) {
            ivyVersionMajor = Integer.parseInt(matcher.group(1));
            ivyVersionMinor = Integer.parseInt(matcher.group(2));
            ivyVersionPatch = Integer.parseInt(matcher.group(3));
        }

        ivyResolveJob = new IvyResolveJob();

        retrieveSetupManager = new RetrieveSetupManager();

        IWorkspace workspace = ResourcesPlugin.getWorkspace();
        workspace.addSaveParticipant(ID, retrieveSetupManager);

        colorManager = new ColorManager();
        Display.getDefault().asyncExec(new Runnable() {
            public void run() {
                colorManager.refreshFromStore(getPreferenceStore());
            }
        });

        prefStoreHelper = new IvyDEPreferenceStoreHelper(getPreferenceStore());

        propertyListener = new IPropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent event) {
                try {
                    if (PreferenceConstants.ALL.contains(event.getProperty())) {
                        prefStoreChanged();
                    }
                } catch (JavaModelException e) {
                    MessageDialog.openError(IvyPlugin.getDefault().getWorkbench()
                            .getActiveWorkbenchWindow().getShell(),
                        "Unable to trigger the update the IvyDE classpath containers",
                        e.getMessage());
                }
            }
        };
        getPreferenceStore().addPropertyChangeListener(propertyListener);

        Display.getDefault().asyncExec(new Runnable() {
            public void run() {
                try {
                    console = new IvyConsole();
                    if (prefStoreHelper.isOpenIvyConsoleOnStartup()) {
                        IvyConsoleFactory.showConsole();
                    }
                } catch (RuntimeException e) {
                    // Don't let the console bring down the IvyDE UI
                    logError("Errors occurred starting the Ivy console", e);
                }
            }
        });

        // Listen for project open/close events to auto-update inter-project dependencies
        workspaceListener = new WorkspaceResourceChangeListener();
        workspace.addResourceChangeListener(workspaceListener);
        ivyFileListener = new IvyFileResourceListener();
        workspace.addResourceChangeListener(ivyFileListener, IResourceChangeEvent.PRE_BUILD);

        ivyMarkerManager = new IvyMarkerManager();

        File stateLocation = getStateLocation().toFile();
        ivyAttachmentManager = new IvyAttachmentManager(
                new File(stateLocation, "attachment.properties"));
        File containersStateDir = new File(stateLocation, "cpstates");
        if (!containersStateDir.exists()) {
            containersStateDir.mkdirs();
        }
        ivyCpcSerializer = new IvyClasspathContainerSerializer(containersStateDir,
                ivyAttachmentManager);

        try {
            Class.forName("org.apache.ivy.osgi.core.ManifestParser");
            osgiAvailable = true;
            try {
                Class.forName("org.apache.ivy.osgi.core.BundleInfo")
                        .getDeclaredMethod("getClasspath");
                osgiClasspathAvailable = true;
            } catch (Exception e) {
                osgiClasspathAvailable = false;
            }
        } catch (Exception e) {
            osgiAvailable = false;
            osgiClasspathAvailable = false;
        }

        logInfo("IvyDE plugin started");
    }