Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java')
-rw-r--r--plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java1101
1 files changed, 0 insertions, 1101 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
deleted file mode 100644
index d42c66f53..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
+++ /dev/null
@@ -1,1101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
- * Stefan Dimov, stefan.dimov@sap.com - bug 207826
- *******************************************************************************/
-package org.eclipse.jst.j2ee.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.jar.Manifest;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.jdt.core.ElementChangedEvent;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IElementChangedListener;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaElementDelta;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.workbench.utility.JemProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
-import org.eclipse.jst.j2ee.application.internal.operations.ClassPathSelection;
-import org.eclipse.jst.j2ee.application.internal.operations.ClasspathElement;
-import org.eclipse.jst.j2ee.application.internal.operations.RemoveComponentFromEnterpriseApplicationDataModelProvider;
-import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProperties;
-import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProvider;
-import org.eclipse.jst.j2ee.classpathdep.ClasspathDependencyUtil;
-import org.eclipse.jst.j2ee.classpathdep.IClasspathDependencyConstants;
-import org.eclipse.jst.j2ee.classpathdep.UpdateClasspathAttributeUtil;
-import org.eclipse.jst.j2ee.classpathdep.IClasspathDependencyConstants.DependencyAttributeType;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifestImpl;
-import org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualArchiveComponent;
-import org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyEnablement;
-import org.eclipse.jst.j2ee.internal.common.ClasspathModel;
-import org.eclipse.jst.j2ee.internal.common.ClasspathModelEvent;
-import org.eclipse.jst.j2ee.internal.common.ClasspathModelListener;
-import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
-import org.eclipse.jst.j2ee.internal.listeners.IValidateEditListener;
-import org.eclipse.jst.j2ee.internal.listeners.ValidateEditListener;
-import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
-import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
-import org.eclipse.jst.j2ee.model.ModelProviderManager;
-import org.eclipse.jst.j2ee.project.EarUtilities;
-import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
-import org.eclipse.jst.javaee.application.Application;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.ModuleCoreNature;
-import org.eclipse.wst.common.componentcore.UnresolveableURIException;
-import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
-import org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraph;
-import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
-import org.eclipse.wst.common.componentcore.internal.operation.RemoveReferenceComponentsDataModelProvider;
-import org.eclipse.wst.common.componentcore.internal.util.ComponentUtilities;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
-import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
-import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
-import org.eclipse.wst.common.frameworks.internal.ui.WorkspaceModifyComposedOperation;
-
-/**
- * @author jialin
- * @deprecated wtp 3.2
- */
-public class JARDependencyPropertiesPage implements IJ2EEDependenciesControl, IClasspathTableOwner, Listener, ClasspathModelListener, IElementChangedListener {
-
- protected final IProject project;
- protected final J2EEDependenciesPage propPage;
- protected IOException caughtManifestException;
- protected boolean isDirty;
- protected Text classPathText;
- protected Text componentNameText;
- protected ClasspathModel model;
- protected CCombo availableAppsCombo;
- protected ClasspathTableManager tableManager;
- protected IValidateEditListener validateEditListener;
- protected Label manifestLabel;
- protected Label enterpriseApplicationLabel;
- protected Label availableDependentJars;
- private final Display display;
- private boolean isDisposed = false;
-
- /**
- * Constructor for JARDependencyPropertiesControl
- */
- public JARDependencyPropertiesPage(final IProject project, final J2EEDependenciesPage page) {
- super();
- J2EEComponentClasspathUpdater.getInstance().pauseUpdates();
- this.project = project;
- this.propPage = page;
- this.display = propPage.getShell().getDisplay();
- }
-
- /**
- * Returns false if page should not be displayed for the project.
- */
- protected void initialize() {
- model = createClasspathModel();
- model.setProject(project);
- if (model.getComponent() != null) {
- model.addListener(this);
- updateModelManifest();
- initializeValidateEditListener();
- }
- }
-
- protected ClasspathModel createClasspathModel(){
- return new ClasspathModel(J2EEProjectUtilities.readManifest(project), false);
- }
-
- public void dispose() {
- isDisposed = true;
- JavaCore.removeElementChangedListener(this);
- J2EEComponentClasspathUpdater.getInstance().resumeUpdates();
- }
-
- private void updateModelManifest() {
- if (JemProjectUtilities.isBinaryProject(project) || model.getAvailableEARComponents().length == 0)
- return;
-
- IVirtualComponent component = ComponentCore.createComponent(project);
- if(component != null){
- IVirtualFile vManifest = component.getRootFolder().getFile(new Path(J2EEConstants.MANIFEST_URI));
- if(vManifest.exists()){
- IFile iManifest = vManifest.getUnderlyingFile();
- if(iManifest != null && iManifest.exists()){
- InputStream in = null;
- try {
- in = iManifest.getContents();
- ArchiveManifest mf = new ArchiveManifestImpl(new Manifest(in));
- model.primSetManifest(mf);
- } catch (CoreException e) {
- Logger.getLogger().logError(e);
- model.primSetManifest(new ArchiveManifestImpl());
- } catch (IOException iox) {
- Logger.getLogger().logError(iox);
- model.primSetManifest(new ArchiveManifestImpl());
- caughtManifestException = iox;
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException weTried) {
- // Ignore
- }
- }
- }
- }
- }
- }
- }
-
-
- protected void initializeValidateEditListener() {
- validateEditListener = new ValidateEditListener(null, model);
- validateEditListener.setShell(propPage.getShell());
- }
-
- public void setVisible(boolean visible) {
- if (visible) {
- if (caughtManifestException != null && !model.isDirty()) {
- ManifestErrorPrompter.showManifestException(propPage.getShell(), ERROR_READING_MANIFEST_DIALOG_MESSAGE_PROP_PAGE, false, caughtManifestException);
- }
- }
- }
-
- /**
- * Refreshes the ClasspathModel if the project classpath is changed.
- */
- public void elementChanged(final ElementChangedEvent event) {
- if (event.getType() == ElementChangedEvent.POST_CHANGE && classpathChanged(event.getDelta())) {
- // trigger a recomputation and refresh for the currently selected EAR
- if (!isDisposed) {
- display.asyncExec (new Runnable () {
- public void run () {
- if (!isDisposed) {
- handleClasspathChange();
- }
- }
- });
- }
- }
- }
-
- /**
- * Called to refresh the UI when the classpath changes
- */
- protected void handleClasspathChange() {
- model.resetClassPathSelection();
- refresh();
- }
-
- private boolean classpathChanged(final IJavaElementDelta delta) {
- final int kind = delta.getKind();
- if (kind == IJavaElementDelta.CHANGED) {
- final int flags = delta.getFlags();
- final IJavaElement element = delta.getElement();
- if (element instanceof IJavaModel) {
- if ((flags & IJavaElementDelta.F_CHILDREN) == IJavaElementDelta.F_CHILDREN) {
- final IJavaElementDelta[] children = delta.getChangedChildren();
- for (int i = 0; i < children.length; i++) {
- // check all of the IJavaProject children
- if (classpathChanged(children[i])) {
- return true;
- }
- }
- }
- } else if (element instanceof IJavaProject) {
- // check if we either have a direct indication of a classpath change or a delta on the
- // .classpath file (changes to classpath entry attributes only give us this...)
- final IJavaProject jproject = (IJavaProject) element;
- final IProject eventProject = jproject.getProject();
- if (eventProject.equals(project)) {
- if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
- return true;
- }
- final IResourceDelta[] deltas = delta.getResourceDeltas();
- if (deltas != null) {
- for (int i = 0; i < deltas.length; i++) {
- if (deltas[i].getProjectRelativePath().toString().equals(".classpath")) { //$NON-NLS-1$
- return true;
- }
- }
- }
- }
- }
- }
- return false;
- }
-
- public Composite createContents(Composite parent) {
- initialize();
- Composite composite = createBasicComposite(parent);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.marginWidth = 0;
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- if (model.getComponent() != null) {
- if (!isValidComponent())
- return composite;
- J2EEDependenciesPage.createDescriptionComposite(composite, ManifestUIResourceHandler.J2EE_Modules_Desc);
- createProjectLabelsGroup(composite);
- createListGroup(composite);
- createTextGroup(composite);
- refresh();
- }
- Dialog.applyDialogFont(parent);
- postCreateContents();
- return composite;
- }
-
- /**
- * Called at the end of createContents().
- */
- protected void postCreateContents() {
- // register this object as an IElementChangedListener so that it will react to user changes to the Java build path
- JavaCore.addElementChangedListener(this);
- }
-
- /**
- * @param comp
- * @return
- */
- protected Composite createBasicComposite(Composite comp) {
- Composite composite = new Composite(comp, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.marginWidth = 0;
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- return composite;
- }
-
- protected boolean isValidComponent() {
- if (JavaEEProjectUtilities.isEARProject(project)) {
- propPage.setErrorMessage(ManifestUIResourceHandler.EAR_Module_Dep_Error);
- return false;
- } else if (EarUtilities.isStandaloneProject(model.getComponent().getProject())) {
- propPage.setErrorMessage(ClasspathModel.NO_EAR_MESSAGE);
- return false;
- }
- return true;
- }
-
- protected void createProjectLabelsGroup(Composite parent) {
-
- Composite labelsGroup = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- labelsGroup.setLayout(layout);
- labelsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- /*
- * Label label = new Label(labelsGroup, SWT.NONE);
- * label.setText(ManifestUIResourceHandler.Project_name__UI_);
- *
- * componentNameText = new Text(labelsGroup, SWT.BORDER); GridData data = new
- * GridData(GridData.FILL_HORIZONTAL); componentNameText.setEditable(false);
- * componentNameText.setLayoutData(data); componentNameText.setText(project.getName());
- */
-
- createEnterpriseAppsControls(labelsGroup);
-
- }
-
- private void createEnterpriseAppsControls(Composite labelsGroup) {
-
- enterpriseApplicationLabel = new Label(labelsGroup, SWT.NONE);
- enterpriseApplicationLabel.setText(ManifestUIResourceHandler.EAR_Project_Name__UI__UI_);
-
- availableAppsCombo = new CCombo(labelsGroup, SWT.READ_ONLY | SWT.BORDER);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- availableAppsCombo.setLayoutData(gd);
-
- availableAppsCombo.addListener(SWT.Selection, this);
-
- }
-
- protected void createListGroup(Composite parent) {
- Composite listGroup = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- listGroup.setLayout(layout);
- GridData gData = new GridData(GridData.FILL_BOTH);
- gData.horizontalIndent = 5;
- listGroup.setLayoutData(gData);
-
- availableDependentJars = new Label(listGroup, SWT.NONE);
- gData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
- availableDependentJars.setText(ManifestUIResourceHandler.Available_dependent_JARs__UI_);
- availableDependentJars.setLayoutData(gData);
- createTableComposite(listGroup);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.ibm.etools.j2ee.common.ui.classpath.IClasspathTableOwner#createGroup(org.eclipse.swt.widgets.Composite)
- */
- public Group createGroup(Composite parent) {
- return new Group(parent, SWT.NULL);
- }
-
- protected void createTextGroup(Composite parent) {
-
- Composite textGroup = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- textGroup.setLayout(layout);
- textGroup.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL));
-
- createClassPathText(textGroup);
-
- }
-
- protected void createClassPathText(Composite textGroup) {
-
- manifestLabel = new Label(textGroup, SWT.NONE);
- manifestLabel.setText(ManifestUIResourceHandler.Manifest_Class_Path__UI_);
-
- classPathText = new Text(textGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
- GridData gData = new GridData(GridData.FILL_BOTH);
- gData.widthHint = 400;
- gData.heightHint = 100;
- classPathText.setLayoutData(gData);
- classPathText.setEditable(false);
- }
-
- protected void createTableComposite(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridData gData = new GridData(GridData.FILL_BOTH);
- composite.setLayoutData(gData);
- tableManager = new ClasspathTableManager(this, model, validateEditListener);
- tableManager.fillComposite(composite);
- }
-
- /**
- * @see IClasspathTableOwner#createAvailableJARsViewer(Composite)
- */
- public CheckboxTableViewer createAvailableJARsViewer(Composite parent) {
- int flags = SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI;
-
- Table table = new Table(parent, flags);
- CheckboxTableViewer availableJARsViewer = new CheckboxTableViewer(table);
-
- // set up table layout
- TableLayout tableLayout = new org.eclipse.jface.viewers.TableLayout();
- tableLayout.addColumnData(new ColumnWeightData(200, true));
- tableLayout.addColumnData(new ColumnWeightData(200, true));
- table.setLayout(tableLayout);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
-
- // do not create sorter otherwise order will go wrong
- //availableJARsViewer.setSorter(new ViewerSorter());
-
- // table columns
- TableColumn fileNameColumn = new TableColumn(table, SWT.NONE, 0);
- fileNameColumn.setText(ManifestUIResourceHandler.JAR_Module_UI_);
- fileNameColumn.setResizable(true);
-
- TableColumn projectColumn = new TableColumn(table, SWT.NONE, 1);
- projectColumn.setText(ManifestUIResourceHandler.Project_UI_);
- projectColumn.setResizable(true);
- tableLayout.layout(table, true);
- return availableJARsViewer;
-
- }
-
- /**
- * @see IClasspathTableOwner#createButtonColumnComposite(Composite)
- */
- public Composite createButtonColumnComposite(Composite parent) {
- Composite buttonColumn = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- buttonColumn.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
- buttonColumn.setLayoutData(data);
- return buttonColumn;
- }
-
- /**
- * @see IClasspathTableOwner
- */
- public Button primCreatePushButton(String label, Composite buttonColumn) {
- Button aButton = new Button(buttonColumn, SWT.PUSH);
- aButton.setText(label);
- return aButton;
- }
-
- /**
- * @see IClasspathTableOwner
- */
- public Button primCreateRadioButton(String label, Composite parent) {
- Button aButton = new Button(parent, SWT.RADIO);
- aButton.setText(label);
- return aButton;
- }
-
- /**
- * @see Listener#handleEvent(Event)
- */
- public void handleEvent(Event event) {
- if (event.widget == availableAppsCombo)
- availableAppsSelected(event);
- }
-
- protected void availableAppsSelected(Event event) {
- int index = availableAppsCombo.getSelectionIndex();
- model.selectEAR(index);
- }
-
- protected void populateApps() {
- IVirtualComponent[] components = model.getAvailableEARComponents();
- String[] values = new String[components.length];
- for (int i = 0; i < components.length; i++) {
- values[i] = components[i].getProject().getName();
- }
- if (availableAppsCombo != null) {
- availableAppsCombo.setItems(values);
- IVirtualComponent selected = model.getSelectedEARComponent();
- if (selected != null) {
- int index = Arrays.asList(components).indexOf(selected);
- availableAppsCombo.select(index);
- } else
- availableAppsCombo.clearSelection();
- }
- }
-
- protected void refresh() {
- populateApps();
- if (tableManager != null) {
- tableManager.refresh();
- }
- refreshText();
- }
-
-
- public void refreshText() {
- ClassPathSelection sel = model.getClassPathSelection();
- if (sel != null && classPathText != null)
- classPathText.setText(sel.toString());
- }
-
- /**
- * @see ClasspathModelListener#modelChanged(ClasspathModelEvent)
- */
- public void modelChanged(ClasspathModelEvent evt) {
- if (evt.getEventType() == ClasspathModelEvent.CLASS_PATH_CHANGED) {
- isDirty = true;
- refreshText();
- } else if (evt.getEventType() == ClasspathModelEvent.EAR_PROJECT_CHANGED) {
- tableManager.refresh();
- }
- }
-
- public void performDefaults() {
- model.resetClassPathSelection();
- refresh();
- isDirty = false;
- model.dispose();
- }
-
- public boolean performCancel() {
- model.dispose();
- return true;
- }
-
- /**
- * @see org.eclipse.jface.preference.IPreferencePage#performOk()
- */
- public boolean performOk() {
- if (!isDirty)
- return true;
- modifyEARBundledLibs();
- WorkspaceModifyComposedOperation composed = new WorkspaceModifyComposedOperation(createManifestOperation());
- createClasspathAttributeUpdateOperation(composed, model.getClassPathSelection(), false);
- try {
- new ProgressMonitorDialog(propPage.getShell()).run(true, true, composed);
- } catch (InvocationTargetException ex) {
- String title = ManifestUIResourceHandler.An_internal_error_occurred_ERROR_;
- String msg = title;
- if (ex.getTargetException() != null && ex.getTargetException().getMessage() != null)
- msg = ex.getTargetException().getMessage();
- MessageDialog.openError(propPage.getShell(), title, msg);
- org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(ex);
- return false;
- } catch (InterruptedException e) {
- // cancelled
- return false;
- } finally {
- model.dispose();
- }
- isDirty = false;
- return true;
- }
-
- List getUnSelectedClassPathElementsForJ2EEDependency() {
- List unselectedForJ2EE = getUnSelectedClassPathSelection().getClasspathElements();
-
- List unselected = new ArrayList();
- if (model != null && model.getClassPathSelectionForWLPs() != null) {
- List wlpSelected = model.getClassPathSelectionForWLPs().getSelectedClasspathElements();
-
- java.util.Iterator it = unselectedForJ2EE.iterator();
-
- while (it.hasNext()) {
- ClasspathElement element = (ClasspathElement) it.next();
- java.util.Iterator wlpIterator = wlpSelected.iterator();
- boolean found = false;
- while (wlpIterator.hasNext()) {
- ClasspathElement wlpElement = (ClasspathElement) wlpIterator.next();
- String text = element.getText();
- int index = text.indexOf(IJ2EEModuleConstants.JAR_EXT);
- if (index != -1) {
- text = text.substring(0, index);
- if (text.equals(wlpElement.getText())) {
- found = true;
- break;
- }
- }
- }
- if (!found) {
- if (!unselected.contains(element))
- unselected.add(element);
- }
-
- }
- }
- return unselected;
- }
-
-
- /**
- * @deprecated don't use this method it will be deleted
- * @return
- */
- List getUnSelectedClassPathElementsForWebDependency() {
- List unselectedForWLP = getUnSelectedClassPathSelectionForWLPs().getClasspathElements();
- List unselected = new ArrayList();
- if (model != null && model.getClassPathSelection() != null) {
- List j2eeSelected = model.getClassPathSelection().getSelectedClasspathElements();
- java.util.Iterator it = unselectedForWLP.iterator();
-
- while (it.hasNext()) {
- ClasspathElement element = (ClasspathElement) it.next();
- java.util.Iterator j2eeIterator = j2eeSelected.iterator();
- boolean found = false;
- while (j2eeIterator.hasNext()) {
- ClasspathElement j2eeElement = (ClasspathElement) j2eeIterator.next();
- String text = j2eeElement.getText();
- int index = text.indexOf(IJ2EEModuleConstants.JAR_EXT);
- if( index != -1 ){
- text = text.substring(0, index);
- if (element.getText().equals(text)) {
- found = true;
- break;
- }
- }
- }
- if (!found) {
- if (!unselected.contains(element))
- unselected.add(element);
- }
-
- }
- } else {
- unselected = unselectedForWLP;
- }
- return unselected;
- }
-
- /**
- * DoNotUseMeThisWillBeDeletedPost15
- * @return
- */
- protected WorkspaceModifyComposedOperation createJ2EEComponentDependencyOperations() {
- WorkspaceModifyComposedOperation composedOp = null;
- List selected = getSelectedClassPathSelection().getClasspathElements();
- List unselected = getUnSelectedClassPathElementsForJ2EEDependency();
-
- List targetComponentsHandles = new ArrayList();
- for (int i = 0; i < selected.size(); i++) {
- ClasspathElement element = (ClasspathElement) selected.get(i);
- IVirtualComponent component = element.getComponent();
- if (null != component) {
- targetComponentsHandles.add(component);
- }
- }
- if (!targetComponentsHandles.isEmpty()) {
- composedOp = new WorkspaceModifyComposedOperation();
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(ComponentUtilities.createReferenceComponentOperation(model.getComponent(), targetComponentsHandles)));
- }
- targetComponentsHandles = new ArrayList();
- for (int i = 0; i < unselected.size(); i++) {
- ClasspathElement element = (ClasspathElement) unselected.get(i);
- IProject elementProject = element.getProject();
- if (elementProject != null) {
- if (ModuleCoreNature.isFlexibleProject(elementProject)) {
- IVirtualComponent targetComp = ComponentCore.createComponent(elementProject);
- targetComponentsHandles.add(targetComp);
- }
- } else {
- URI archiveURI = element.getArchiveURI();
- if (archiveURI != null && !archiveURI.equals("")) { //$NON-NLS-1$
- String name = ""; //$NON-NLS-1$
- try {
- String type = ModuleURIUtil.getArchiveType(archiveURI);
- String tmpname = ModuleURIUtil.getArchiveName(archiveURI);
- name = type + IPath.SEPARATOR + tmpname;
- } catch (UnresolveableURIException e) {
- Logger.getLogger().logError(e.getMessage());
- }
- if (!name.equals("")) { //$NON-NLS-1$
- IVirtualReference ref = model.getComponent().getReference(name);
- if (ref != null) {
- IVirtualComponent referenced = ref.getReferencedComponent();
- targetComponentsHandles.add(referenced);
- }
- }
- }
- }
- }
- if (!targetComponentsHandles.isEmpty()) {
- if (composedOp == null)
- composedOp = new WorkspaceModifyComposedOperation();
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(ComponentUtilities.removeReferenceComponentOperation(model.getComponent(), targetComponentsHandles)));
- }
- return composedOp;
- }
-
-
- /**
- * This should be moved to the {@link WebLibDependencyPropertiesPage} because it is only used there.
- * @return
- */
- protected WorkspaceModifyComposedOperation createComponentDependencyOperations() {
- WorkspaceModifyComposedOperation composedOp = null;
- final ClassPathSelection selectedWLPs = getSelectedClassPathSelectionForWLPs();
- List selected = selectedWLPs.getClasspathElements();
- List unselected = getUnSelectedClassPathSelectionForWLPs().getClasspathElements();
-
- List targetComponentsHandles = new ArrayList();
- for (int i = 0; i < selected.size(); i++) {
- ClasspathElement element = (ClasspathElement) selected.get(i);
- if (element.isClasspathDependency() || element.isClasspathEntry()) {
- continue;
- }
- IProject elementProject = element.getProject();
- if (elementProject != null) {
- IVirtualComponent targetComp = ComponentCore.createComponent(elementProject);
- targetComponentsHandles.add(targetComp);
- }
- }
- if (!targetComponentsHandles.isEmpty()) {
- composedOp = new WorkspaceModifyComposedOperation();
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(ComponentUtilities.createWLPReferenceComponentOperation(model.getComponent(), targetComponentsHandles)));
- }
- targetComponentsHandles = new ArrayList();
- for (int i = 0; i < unselected.size(); i++) {
- ClasspathElement element = (ClasspathElement) unselected.get(i);
- if (element.isClasspathDependency() || element.isClasspathEntry()) {
- continue;
- }
- IProject elementProject = element.getProject();
- if (elementProject != null) {
- if (ModuleCoreNature.isFlexibleProject(elementProject)) {
- IVirtualComponent targetComp = ComponentCore.createComponent(elementProject);
- targetComponentsHandles.add(targetComp);
- }
- } else {
- URI archiveURI = element.getArchiveURI();
- if (archiveURI != null && !archiveURI.equals("")) { //$NON-NLS-1$
- String name = ""; //$NON-NLS-1$
- try {
- String type = ModuleURIUtil.getArchiveType(archiveURI);
- String tmpname = ModuleURIUtil.getArchiveName(archiveURI);
- name = type + IPath.SEPARATOR + tmpname;
- } catch (UnresolveableURIException e) {
- Logger.getLogger().logError(e.getMessage());
- }
- if (!name.equals("")) { //$NON-NLS-1$
- IVirtualReference ref = model.getComponent().getReference(name);
- IVirtualComponent referenced = ref.getReferencedComponent();
- targetComponentsHandles.add(referenced);
- }
- }
- }
- }
- if (!targetComponentsHandles.isEmpty()) {
- if (composedOp == null) {
- composedOp = new WorkspaceModifyComposedOperation();
- }
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(ComponentUtilities.removeWLPReferenceComponentOperation(model.getComponent(), targetComponentsHandles)));
- }
-
- if (composedOp == null) {
- composedOp = new WorkspaceModifyComposedOperation();
- }
- createClasspathAttributeUpdateOperation(composedOp, model.getClassPathSelectionForWLPs(), true);
-
- return composedOp;
- }
-
- protected WorkspaceModifyComposedOperation createFlexProjectOperations() {
- WorkspaceModifyComposedOperation composedOp = null;
- Object[] elements = tableManager.availableJARsViewer.getCheckedElements();
- for (int i = 0; i < elements.length; i++) {
- ClasspathElement element = (ClasspathElement) elements[i];
- IProject elementProject = element.getProject();
- try {
- if (elementProject != null && !elementProject.hasNature(IModuleConstants.MODULE_NATURE_ID)) {
- if (composedOp == null) {
- composedOp = new WorkspaceModifyComposedOperation();
- }
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(J2EEProjectUtilities.createFlexJavaProjectForProjectOperation(elementProject, false)));
- }
- } catch (CoreException e) {
- Logger.getLogger().logError(e);
- }
- }
- return composedOp;
- }
-
- protected ClassPathSelection getUnSelectedClassPathSelectionForWLPs() {
- ClassPathSelection selection = new ClassPathSelection();
- Object[] checkedElements = tableManager.availableJARsViewer.getCheckedElements();
- List modelElements = model.getClassPathSelectionForWLPs().getClasspathElements();
- for (int i = 0; i < modelElements.size(); i++) {
- List checkedElementsList = Arrays.asList(checkedElements);
- if (!checkedElementsList.contains(modelElements.get(i))) {
- selection.getClasspathElements().add(modelElements.get(i));
- }
- }
- return selection;
- }
-
- private ClassPathSelection getSelectedClassPathSelection() {
- ClassPathSelection selection = new ClassPathSelection();
- Object[] checkedElements = tableManager.availableJARsViewer.getCheckedElements();
- for (int i = 0; i < checkedElements.length; i++) {
- selection.getClasspathElements().add(checkedElements[i]);
- }
- return selection;
- }
-
- protected ClassPathSelection getUnSelectedClassPathSelection() {
- ClassPathSelection selection = new ClassPathSelection();
- Object[] checkedElements = tableManager.availableJARsViewer.getCheckedElements();
- List modelElements = model.getClassPathSelection().getClasspathElements();
- for (int i = 0; i < modelElements.size(); i++) {
- List checkedElementsList = Arrays.asList(checkedElements);
- if (!checkedElementsList.contains(modelElements.get(i))) {
- selection.getClasspathElements().add(modelElements.get(i));
- }
- }
- return selection;
- }
-
-
- private ClassPathSelection getSelectedClassPathSelectionForWLPs() {
- ClassPathSelection selection = new ClassPathSelection();
- Object[] checkedElements = tableManager.availableJARsViewer.getCheckedElements();
- for (int i = 0; i < checkedElements.length; i++) {
- selection.getClasspathElements().add(checkedElements[i]);
- }
- return selection;
- }
-
- protected UpdateManifestOperation createManifestOperation() {
- return new UpdateManifestOperation(project.getName(), model.getClassPathSelection().toString(), true);
- }
-
- protected void createClasspathAttributeUpdateOperation(final WorkspaceModifyComposedOperation composedOp, final ClassPathSelection selection, final boolean isWebApp) {
- final boolean webLibsOnly = isWebApp && !ClasspathDependencyEnablement.isAllowClasspathComponentDependency();
- final Map selectedEntriesToRuntimePath = new HashMap();
- final Map unselectedEntriesToRuntimePath = new HashMap();
- final List elements = selection.getClasspathElements();
- for (int i = 0; i < elements.size(); i++) {
- final ClasspathElement element = (ClasspathElement) elements.get(i);
- if (element.isClasspathEntry()) {
- final IClasspathEntry entry = element.getClasspathEntry();
- final IClasspathAttribute attrib = ClasspathDependencyUtil.checkForComponentDependencyAttribute(entry, DependencyAttributeType.DEPENDENCY_OR_NONDEPENDENCY, webLibsOnly);
- boolean hasDepAttrib = false;
- if (attrib != null && attrib.getName().equals(IClasspathDependencyConstants.CLASSPATH_COMPONENT_DEPENDENCY)) {
- hasDepAttrib = true;
- }
- final IPath runtimePath = ClasspathDependencyUtil.getRuntimePath(attrib, isWebApp, ClasspathDependencyUtil.isClassFolderEntry(entry));
- if (element.isSelected()) {
- // only add if we don't already have the attribute
- if (!hasDepAttrib) {
- selectedEntriesToRuntimePath.put(entry, runtimePath);
- }
- } else {
- // only add if we already have the attribute
- if (hasDepAttrib) {
- unselectedEntriesToRuntimePath.put(entry, runtimePath);
- }
- }
- }
- }
-
- // if there are any attributes to add, create an operation to add all necessary attributes
- if (!selectedEntriesToRuntimePath.isEmpty()) {
- IDataModelOperation op = UpdateClasspathAttributeUtil.createAddDependencyAttributesOperation(project.getName(), selectedEntriesToRuntimePath);
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(op));
- }
- // if there are any attributes to remove, create an operation to remove all necessary attributes
- if (!unselectedEntriesToRuntimePath.isEmpty()) {
- IDataModelOperation op = UpdateClasspathAttributeUtil.createRemoveDependencyAttributesOperation(project.getName(), unselectedEntriesToRuntimePath);
- composedOp.addRunnable(WTPUIPlugin.getRunnableWithProgress(op));
- }
- }
-
- protected boolean isReadOnly() {
- return JemProjectUtilities.isBinaryProject(project) && (project.findMember(IModuleConstants.COMPONENT_FILE_PATH) == null) ;
- }
-
- protected void modifyEARBundledLibs() {
- List compsToUncheckList = tableManager.getCheckedLibsAsList();
- if (compsToUncheckList.size() == 0) return;
- Set allCompsToUncheck = new HashSet();
- Set allCompNamesToUncheck = new HashSet();
- for (int i = 0; i < compsToUncheckList.size(); i++) {
- IVirtualComponent comp = (IVirtualComponent)compsToUncheckList.get(i);
- allCompsToUncheck.add(comp);
- if (comp instanceof J2EEModuleVirtualArchiveComponent) allCompNamesToUncheck.add(comp.getName());
- }
- IProject[] ears = EarUtilities.getReferencingEARProjects(project);
- for (int i = 0; i < ears.length; i++) {
- if (J2EEProjectUtilities.isJEEProject(ears[i])) {
- IVirtualComponent earComponent = ComponentCore.createComponent(ears[i]);
- List listToUncheck = createListToUncheck(earComponent, allCompsToUncheck, allCompNamesToUncheck);
- if (listToUncheck.size() == 0) continue;
- removeModulesFromEAR(new NullProgressMonitor(), earComponent, listToUncheck);
- addModulesToEAR(new NullProgressMonitor(), earComponent, listToUncheck);
- }
- }
- }
- //---------------------------------
- private IStatus removeModulesFromEAR(IProgressMonitor monitor, final IVirtualComponent earComponent, final List compsToUncheckList) {
- IStatus stat = IDataModelProvider.OK_STATUS;
- String libDir = ((Application)ModelProviderManager.getModelProvider(earComponent.getProject()).getModelObject()).getLibraryDirectory();
- libDir = (libDir == null) ? J2EEConstants.EAR_DEFAULT_LIB_DIR : libDir;
- Map dependentComps = getEARModuleDependencies(earComponent, compsToUncheckList);
- try {
- IDataModelOperation op = removeComponentFromEAROperation(earComponent, compsToUncheckList, libDir);
- op.execute(null, null);
- J2EEComponentClasspathUpdater.getInstance().queueUpdateEAR(earComponent.getProject());
- removeEARComponentDependencies(dependentComps);
- } catch (ExecutionException e) {
- Logger.getLogger().log(e);
- }
- return stat;
- }
-
-
- private IStatus addModulesToEAR(IProgressMonitor monitor, final IVirtualComponent earComponent, final List compsToUncheckList) {
- try {
- IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
- public void run(IProgressMonitor monitor) throws CoreException{
- execAddOp(monitor, compsToUncheckList, J2EEConstants.EAR_ROOT_DIR, earComponent);
- }
- };
- J2EEUIPlugin.getWorkspace().run(runnable, monitor);
- } catch (Exception e) {
- Logger.getLogger().log(e);
- }
- return IDataModelProvider.OK_STATUS;
- }
-
- private List createListToUncheck(IVirtualComponent earComponent, Set compsToUncheckList, Set compNamesToUncheck) {
- LinkedList res = new LinkedList();
- IVirtualReference[] refs = earComponent.getReferences();
- for (int j = 0; j < refs.length; j++) {
- if (!refs[j].getRuntimePath().isRoot() &&
- (compsToUncheckList.contains(refs[j].getReferencedComponent()) ||
- compNamesToUncheck.contains(refs[j].getReferencedComponent().getName()))) {
- res.add(refs[j].getReferencedComponent());
- }
- }
- return res;
- }
-
- private void execAddOp(IProgressMonitor monitor, List list, String path, IVirtualComponent earComponent) throws CoreException {
- IDataModel dm = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider());
-
- dm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, earComponent);
- dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, list);
- dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, path);
-
- IStatus stat = dm.validateProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
- if (stat != IDataModelProvider.OK_STATUS)
- throw new CoreException(stat);
- try {
- dm.getDefaultOperation().execute(monitor, null);
- } catch (ExecutionException e) {
- Logger.getLogger().log(e);
- }
- }
-
-
- protected IDataModelOperation removeComponentFromEAROperation(IVirtualComponent sourceComponent, List targetComponentsHandles, String dir) {
- IDataModel model = DataModelFactory.createDataModel(new RemoveComponentFromEnterpriseApplicationDataModelProvider());
- model.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, sourceComponent);
- List modHandlesList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
- modHandlesList.addAll(targetComponentsHandles);
- model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modHandlesList);
- model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, dir);
- return model.getDefaultOperation();
- }
-
- private Map getEARModuleDependencies(final IVirtualComponent earComponent, final List components) {
- final Map dependentComps = new HashMap();
- // get all current references to project within the scope of this EAR
- for (int i = 0; i < components.size(); i++) {
-
- final List compsForProject = new ArrayList();
- final IVirtualComponent comp = (IVirtualComponent) components.get(i);
- Set<IProject> referencingComponents = IDependencyGraph.INSTANCE.getReferencingComponents(project);
- IProject [] dependentProjects = referencingComponents.toArray(new IProject[referencingComponents.size()]);
- for (int j = 0; j < dependentProjects.length; j++) {
- final IProject project = dependentProjects[j];
- // if this is an EAR, can skip
- if (JavaEEProjectUtilities.isEARProject(project)) {
- continue;
- }
- final IVirtualComponent dependentComp = ComponentCore.createComponent(project);
- // ensure that the project's share an EAR
- final IProject[] refEARs = EarUtilities.getReferencingEARProjects(project);
- boolean sameEAR = false;
- for (int k = 0; k < refEARs.length; k++) {
- if (refEARs[k].equals(earComponent.getProject())) {
- sameEAR = true;
- break;
- }
- }
- if (!sameEAR) {
- continue;
- }
- // if the dependency is a web lib dependency, can skip
- if (JavaEEProjectUtilities.isDynamicWebProject(project)) {
- IVirtualReference ref = dependentComp.getReference(comp.getName());
- if (ref != null && ref.getRuntimePath().equals(new Path("/WEB-INF/lib"))) { //$NON-NLS-1$
- continue;
- }
- }
- compsForProject.add(dependentComp);
- }
- dependentComps.put(comp, compsForProject);
- }
- return dependentComps;
- }
-
- private void removeEARComponentDependencies(final Map dependentComps) throws ExecutionException {
- final Iterator targets = dependentComps.keySet().iterator();
- while (targets.hasNext()) {
- final IVirtualComponent target = (IVirtualComponent) targets.next();
- final List sources = (List) dependentComps.get(target);
- for (int i = 0; i < sources.size(); i++) {
- final IVirtualComponent source = (IVirtualComponent) sources.get(i);
- final IDataModel model = DataModelFactory.createDataModel(new RemoveReferenceComponentsDataModelProvider());
- model.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, source);
- final List modHandlesList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
- modHandlesList.add(target);
- model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modHandlesList);
- model.getDefaultOperation().execute(null, null);
- // update the manifest
- removeManifestDependency(source, target);
- }
- }
- }
-
- private void removeManifestDependency(final IVirtualComponent source, final IVirtualComponent target)
- throws ExecutionException {
- final String sourceProjName = source.getProject().getName();
- final String targetProjName = target.getProject().getName();
- final IProgressMonitor monitor = new NullProgressMonitor();
- final IFile manifestmf = J2EEProjectUtilities.getManifestFile(source.getProject());
- final ArchiveManifest mf = J2EEProjectUtilities.readManifest(source.getProject());
- if (mf == null)
- return;
- final IDataModel updateManifestDataModel = DataModelFactory.createDataModel(new UpdateManifestDataModelProvider());
- updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.PROJECT_NAME, sourceProjName);
- updateManifestDataModel.setBooleanProperty(UpdateManifestDataModelProperties.MERGE, false);
- updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.MANIFEST_FILE, manifestmf);
- String[] cp = mf.getClassPathTokenized();
- List cpList = new ArrayList();
- String cpToRemove = targetProjName + IJ2EEModuleConstants.JAR_EXT;
- for (int i = 0; i < cp.length; i++) {
- if (!cp[i].equals(cpToRemove)) {
- cpList.add(cp[i]);
- }
- }
- updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.JAR_LIST, cpList);
- updateManifestDataModel.getDefaultOperation().execute(monitor, null );
- }
-
-}

Back to the top