JBoss Tools SVN: r32002 - in trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core: extensions/events and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2011-06-10 03:55:13 -0400 (Fri, 10 Jun 2011)
New Revision: 32002
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/Messages.properties
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IEventCodes.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java
Log:
JBIDE-8961 - error message for renameTo failing
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/Messages.properties
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/Messages.properties 2011-06-10 07:48:52 UTC (rev 32001)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/Messages.properties 2011-06-10 07:55:13 UTC (rev 32002)
@@ -44,7 +44,7 @@
FullPublishFail=Full publish failed for module {0}
IncrementalPublishFail=Incremental publish failed for module {0}
-PublishRenameFailure=Error renaming {0} to {1}
+PublishRenameFailure=Error renaming {0} to {1}. \n\nThis may be caused by your server's temporary deploy directory being on a different filesystem than the final destination.\n\nYou may adjust these settings in the server editor.
DeleteModuleFail=Unable to delete module {0}
DeleteModuleFail2=Some files were not removed from the server
CountModifiedMembers={0} files modified in module {1}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IEventCodes.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IEventCodes.java 2011-06-10 07:48:52 UTC (rev 32001)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IEventCodes.java 2011-06-10 07:55:13 UTC (rev 32002)
@@ -58,15 +58,21 @@
// Publishing.JST
public static final int JST_PUB_FULL_SUCCESS = JST_PUBLISHER_CODE | 1;
- public static final int JST_PUB_FULL_FAIL = JST_PUBLISHER_CODE | 2;
+ public static final int JST_PUB_FULL_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 2;
public static final int JST_PUB_INC_SUCCESS = JST_PUBLISHER_CODE | 3;
- public static final int JST_PUB_INC_FAIL = JST_PUBLISHER_CODE | 4;
+ public static final int JST_PUB_INC_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 4;
public static final int JST_PUB_REMOVE_SUCCESS = JST_PUBLISHER_CODE | 5;
- public static final int JST_PUB_REMOVE_FAIL = JST_PUBLISHER_CODE | 6;
- public static final int JST_PUB_COPY_BINARY_FAIL = JST_PUBLISHER_CODE | 7;
- public static final int JST_PUB_FILE_DELETE_FAIL = JST_PUBLISHER_CODE | 8;
- public static final int JST_PUB_ASSEMBLE_FAIL = JST_PUBLISHER_CODE | 9;
+ public static final int JST_PUB_REMOVE_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 6;
+ public static final int JST_PUB_COPY_BINARY_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 7;
+ public static final int JST_PUB_FILE_DELETE_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 8;
+ public static final int JST_PUB_ASSEMBLE_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 9;
+ //newer status codes
+ public static final int JST_PUB_SUCCESS = JST_PUBLISHER_CODE | 10;
+ public static final int JST_PUB_FAIL = JST_PUBLISHER_CODE | ISTATUS_CODE_ERROR | 11;
+
+
+
// Publishing.single
public static final int SINGLE_FILE_SUCCESS_MASK = 0x1;
public static final int SINGLE_FILE_TYPE_MASK = 0x2;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java 2011-06-10 07:48:52 UTC (rev 32001)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java 2011-06-10 07:55:13 UTC (rev 32002)
@@ -39,6 +39,7 @@
import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.extensions.events.IEventCodes;
import org.jboss.ide.eclipse.as.core.publishers.AbstractServerToolsPublisher;
import org.jboss.ide.eclipse.as.core.publishers.PublishUtil;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
@@ -139,7 +140,7 @@
try {
in = new FileInputStream(file);
} catch (IOException e) {
- return new IStatus[] {new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
+ return new IStatus[] {new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL,
NLS.bind(Messages.errorReading, file.getAbsolutePath()), e)};
}
IStatus ret = copyFile(in, deployRootFolder.append(relativePath), file.lastModified(), mf);
@@ -164,7 +165,7 @@
return Status.OK_STATUS;
} catch (Exception e) {
//Trace.trace(Trace.SEVERE, "Error copying file", e);
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorCopyingFile, new String[] {to, e.getLocalizedMessage()}), e);
+ return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorCopyingFile, new String[] {to, e.getLocalizedMessage()}), e);
} finally {
try {
if (in != null)
@@ -195,7 +196,7 @@
throw e;
} catch (Exception e) {
IPath path = mf.getModuleRelativePath().append(mf.getName());
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorCopyingFile, path.toOSString(), e.getLocalizedMessage()), null);
+ return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorCopyingFile, path.toOSString(), e.getLocalizedMessage()), null);
} finally {
if (tempFile != null && tempFile.exists())
tempFile.deleteOnExit();
@@ -245,14 +246,14 @@
}
}
if (!safeRename(tempFile, file, 10))
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
+ throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_ASSEMBLE_FAIL,
NLS.bind(org.jboss.ide.eclipse.as.core.Messages.PublishRenameFailure,
tempFile.toString(), file.getAbsolutePath()), null));
}
private void throwOnErrorStatus(File file, IStatus status) throws CoreException {
if (!status.isOK()) {
- MultiStatus status2 = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorDeleting, file.toString()), null);
+ MultiStatus status2 = new MultiStatus(ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorDeleting, file.toString()), null);
status2.add(status);
throw new CoreException(status2);
}
@@ -313,7 +314,7 @@
results = deleteDirectory(resource.toFile(), monitor);
} else {
if( !file.delete()) {
- IStatus s = new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorDeleting, resource.toFile().getAbsolutePath()), null);
+ IStatus s = new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorDeleting, resource.toFile().getAbsolutePath()), null);
results = new IStatus[]{s};
}
}
@@ -330,7 +331,7 @@
*/
private IStatus[] deleteDirectory(File dir, IProgressMonitor monitor) {
if (!dir.exists() || !dir.isDirectory())
- return new IStatus[] { new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorNotADirectory, dir.getAbsolutePath()), null) };
+ return new IStatus[] { new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorNotADirectory, dir.getAbsolutePath()), null) };
List<IStatus> status = new ArrayList<IStatus>(2);
@@ -346,7 +347,7 @@
File current = files[i];
if (current.isFile()) {
if (!current.delete()) {
- status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorDeleting, files[i].getAbsolutePath()), null));
+ status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorDeleting, files[i].getAbsolutePath()), null));
deleteCurrent = false;
}
monitor.worked(10);
@@ -361,11 +362,11 @@
}
}
if (deleteCurrent && !dir.delete())
- status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorDeleting, dir.getAbsolutePath()), null));
+ status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorDeleting, dir.getAbsolutePath()), null));
monitor.done();
} catch (Exception e) {
//Trace.trace(Trace.SEVERE, "Error deleting directory " + dir.getAbsolutePath(), e);
- status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, e.getLocalizedMessage(), null));
+ status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, e.getLocalizedMessage(), null));
}
return status.toArray(new IStatus[status.size()]);
@@ -506,7 +507,7 @@
IPath path2 = path.append(resource.getModuleRelativePath()).append(resource.getName());
IStatus[] stat = handler.deleteResource(path2, monitor);
if( stat.length > 0 && !stat[0].isOK()) {
- status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorDeleting, path2), null));
+ status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IEventCodes.JST_PUB_FAIL, NLS.bind(Messages.errorDeleting, path2), null));
}
}
14 years, 10 months
JBoss Tools SVN: r32001 - trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-06-10 03:48:52 -0400 (Fri, 10 Jun 2011)
New Revision: 32001
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java
Log:
removed output to system.err
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java 2011-06-10 06:02:41 UTC (rev 32000)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java 2011-06-10 07:48:52 UTC (rev 32001)
@@ -55,7 +55,6 @@
JBoss7ServerState serverState = null;
do {
serverState = service.getServerState(getServer().getHost());
- System.err.println("state = " + serverState); //$NON-NLS-1$
} while (serverState == JBoss7ServerState.STARTING);
return serverState == JBoss7ServerState.RUNNING;
} catch (Exception e) {
@@ -68,7 +67,6 @@
JBoss7ServerState serverState = null;
do {
serverState = service.getServerState(getServer().getHost());
- System.err.println("state = " + serverState); //$NON-NLS-1$
} while (serverState == JBoss7ServerState.RUNNING);
return false;
} catch (JBoss7ManangerConnectException e) {
14 years, 10 months
JBoss Tools SVN: r32000 - trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2011-06-10 02:02:41 -0400 (Fri, 10 Jun 2011)
New Revision: 32000
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java
Log:
Refactor of the deployment page in server editor
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java 2011-06-10 00:59:44 UTC (rev 31999)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java 2011-06-10 06:02:41 UTC (rev 32000)
@@ -53,7 +53,6 @@
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IServerType;
import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.ui.ServerUICore;
import org.eclipse.wst.server.ui.internal.command.ServerCommand;
@@ -76,19 +75,23 @@
public class DeploymentModuleOptionCompositeAssistant implements PropertyChangeListener {
public static interface IDeploymentPageCallback {
- public boolean metadataEnabled(IServerWorkingCopy copy);
+ public void propertyChange(PropertyChangeEvent evt, DeploymentModuleOptionCompositeAssistant composite);
public String getServerLocation(IServerWorkingCopy wc);
public String getServerConfigName(IServerWorkingCopy wc);
- public void propertyChange(PropertyChangeEvent evt, DeploymentModuleOptionCompositeAssistant composite);
}
+ private static HashMap<String, IDeploymentPageCallback> callbackMappings;
+ static {
+ callbackMappings = new HashMap<String, IDeploymentPageCallback>();
+ callbackMappings.put(LocalPublishMethod.LOCAL_PUBLISH_METHOD, new LocalDeploymentPageCallback());
+ }
+
+ public static void addMapping(String mode, IDeploymentPageCallback callback) {
+ callbackMappings.put(mode, callback);
+ }
+
+
public static class LocalDeploymentPageCallback implements IDeploymentPageCallback {
- public boolean metadataEnabled(IServerWorkingCopy copy) {
- if( ServerUtil.isJBoss7(copy.getServerType()))
- return false;
- return true;
- }
-
public String getServerLocation(IServerWorkingCopy wc) {
IJBossServerRuntime jbsrt = (IJBossServerRuntime)wc.getRuntime().loadAdapter(IJBossServerRuntime.class, null);
return jbsrt.getConfigLocation();
@@ -106,24 +109,46 @@
}
}
- private static HashMap<String, IDeploymentPageCallback> callbackMappings;
+
+ public static interface IBrowseBehavior {
+ public String openBrowseDialog(ModuleDeploymentPage page, String original);
+ }
+ public static HashMap<String, IBrowseBehavior> browseBehaviorMap = new HashMap<String, IBrowseBehavior>();
static {
- callbackMappings = new HashMap<String, IDeploymentPageCallback>();
- callbackMappings.put(LocalPublishMethod.LOCAL_PUBLISH_METHOD, new LocalDeploymentPageCallback());
+ browseBehaviorMap.put(LocalPublishMethod.LOCAL_PUBLISH_METHOD, new IBrowseBehavior() {
+ public String openBrowseDialog(ModuleDeploymentPage page, String original) {
+ DirectoryDialog d = new DirectoryDialog(new Shell());
+ d.setFilterPath(page.makeGlobal(original));
+ return d.open();
+ }
+ });
}
-
- public static void addMapping(String mode, IDeploymentPageCallback callback) {
- callbackMappings.put(mode, callback);
+
+ protected String openBrowseDialog(String original) {
+ String mode = getServer().getAttributeHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ IBrowseBehavior beh = browseBehaviorMap.get(mode);
+ if( beh == null )
+ beh = browseBehaviorMap.get(LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ return beh.openBrowseDialog(page, original);
}
+
- private ModuleDeploymentPage page;
- private DeploymentPreferences preferences;
- private TreeViewer viewer;
+
protected static final String COLUMN_NAME = IJBossToolingConstants.LOCAL_DEPLOYMENT_NAME;
protected static final String COLUMN_LOC = IJBossToolingConstants.LOCAL_DEPLOYMENT_LOC;
protected static final String COLUMN_TEMP_LOC = IJBossToolingConstants.LOCAL_DEPLOYMENT_TEMP_LOC;
protected static final String OUTPUT_NAME = IJBossToolingConstants.LOCAL_DEPLOYMENT_OUTPUT_NAME;
- protected String currentDeployType = LocalPublishMethod.LOCAL_PUBLISH_METHOD;
+ protected static final String MAIN = LocalPublishMethod.LOCAL_PUBLISH_METHOD;
+ private ModuleDeploymentPage page;
+ private DeploymentPreferences preferences;
+ private TreeViewer viewer;
+ private Text deployText, tempDeployText;
+ private Button metadataRadio, serverRadio, customRadio, currentSelection;
+ private Button deployButton, tempDeployButton;
+ private ModifyListener deployListener, tempDeployListener;
+ private SelectionListener radioListener, zipListener;
+ private Button zipDeployWTPProjects;
+ private String lastCustomDeploy, lastCustomTemp;
private IServerWorkingCopy lastWC;
@@ -146,22 +171,47 @@
return page.getHelper();
}
- private Text deployText, tempDeployText;
- private Button metadataRadio, serverRadio, customRadio, currentSelection;
- private Button deployButton, tempDeployButton;
- private ModifyListener deployListener, tempDeployListener;
- private SelectionListener radioListener, zipListener;
- private Button zipDeployWTPProjects;
- private String lastCustomDeploy, lastCustomTemp;
-
public Button getServerRadio() {
return serverRadio;
}
- public Button getCurrentSelection() {
+ public Button getCustomRadio() {
+ return customRadio;
+ }
+
+ public Button getMetadataRadio() {
+ return metadataRadio;
+ }
+
+ public Button getSelectedRadio() {
return currentSelection;
}
+ public boolean showMetadataRadio() {
+ return true;
+ }
+
+ public boolean showCustomRadio() {
+ return true;
+ }
+
+ public boolean showServerRadio() {
+ return true;
+ }
+
+ public boolean enableMetadataRadio() {
+ String mode = getHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ if(mode.equals("rse"))
+ return false;
+ if( ServerUtil.isJBoss7(page.getServer().getServerType()))
+ return false;
+ return true;
+ }
+
+ public boolean showTempAndDeployTexts() {
+ return true;
+ }
+
protected Composite createDefaultComposite(Composite parent) {
FormToolkit toolkit = new FormToolkit(parent.getDisplay());
@@ -182,44 +232,97 @@
Messages.swf_DeploymentDescriptionLabel);
descriptionLabel.setToolTipText(Messages.swf_DeploymentDescription);
Control top = descriptionLabel;
- Composite inner = toolkit.createComposite(composite);
+ FormData descriptionLabelData = new FormData();
+ descriptionLabelData.left = new FormAttachment(0, 5);
+ descriptionLabelData.top = new FormAttachment(0, 5);
+ descriptionLabel.setLayoutData(descriptionLabelData);
+ if( getShowRadios() ) {
+ Composite inner = addRadios(toolkit, composite);
+ FormData radios = new FormData();
+ radios.top = new FormAttachment(descriptionLabel, 5);
+ radios.left = new FormAttachment(0, 5);
+ radios.right = new FormAttachment(100, -5);
+ inner.setLayoutData(radios);
+ top = inner;
+ }
+ lastWC = page.getServer();
+ lastWC.addPropertyChangeListener(this);
+
+ if( showTempAndDeployTexts() ) {
+ top = addTempAndDeployTexts(toolkit, composite, top);
+ }
+
+ zipDeployWTPProjects = toolkit.createButton(composite,
+ Messages.EditorZipDeployments, SWT.CHECK);
+ boolean zippedPublisherAvailable = isZippedPublisherAvailable();
+ boolean value = getServer().zipsWTPDeployments();
+ zipDeployWTPProjects.setEnabled(zippedPublisherAvailable);
+ zipDeployWTPProjects.setSelection(zippedPublisherAvailable && value);
+
+ FormData zipButtonData = new FormData();
+ zipButtonData.right = new FormAttachment(100, -5);
+ zipButtonData.left = new FormAttachment(0, 5);
+ zipButtonData.top = new FormAttachment(top, 5);
+ zipDeployWTPProjects.setLayoutData(zipButtonData);
+
+ zipListener = new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ page.execute(new SetZipCommand());
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ };
+ zipDeployWTPProjects.addSelectionListener(zipListener);
+
+ toolkit.paintBordersFor(composite);
+ section.setClient(composite);
+ page.getSaveStatus();
+ updateWidgets();
+ return section;
+ }
+
+ protected Composite addRadios(FormToolkit toolkit, Composite parent) {
+ Composite inner = toolkit.createComposite(parent);
inner.setLayout(new GridLayout(1, false));
- if( getShowRadios() ) {
+ if( showMetadataRadio() )
metadataRadio = toolkit.createButton(inner,
Messages.EditorUseWorkspaceMetadata, SWT.RADIO);
+ if( showServerRadio())
serverRadio = toolkit.createButton(inner,
Messages.EditorUseServersDeployFolder, SWT.RADIO);
+ if( showCustomRadio())
customRadio = toolkit.createButton(inner,
Messages.EditorUseCustomDeployFolder, SWT.RADIO);
-
- radioListener = new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
-
- public void widgetSelected(SelectionEvent e) {
- radioSelected(e.getSource());
- }
- };
+
+ radioListener = new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ radioSelected(e.getSource());
+ }
+ };
+ if( showMetadataRadio())
metadataRadio.addSelectionListener(radioListener);
+ if( showServerRadio())
serverRadio.addSelectionListener(radioListener);
+ if( showCustomRadio())
customRadio.addSelectionListener(radioListener);
- }
- lastWC = page.getServer();
- lastWC.addPropertyChangeListener(this);
- FormData radios = new FormData();
- radios.top = new FormAttachment(descriptionLabel, 5);
- radios.left = new FormAttachment(0, 5);
- radios.right = new FormAttachment(100, -5);
- inner.setLayoutData(radios);
- top = inner;
-
- Label label = toolkit.createLabel(composite,
+ metadataRadio.setEnabled(enableMetadataRadio());
+ return inner;
+ }
+
+ protected Control addTempAndDeployTexts(FormToolkit toolkit, Composite parent, Control top) {
+ Label label = toolkit.createLabel(parent,
Messages.swf_DeployDirectory);
label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- deployText = toolkit.createText(composite, getDeployDir(), SWT.BORDER);
+
+ deployText = toolkit.createText(parent, getDeployDir(), SWT.BORDER);
deployListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
page.execute(new SetDeployDirCommand());
@@ -227,7 +330,7 @@
};
deployText.addModifyListener(deployListener);
- deployButton = toolkit.createButton(composite, Messages.browse,
+ deployButton = toolkit.createButton(parent, Messages.browse,
SWT.PUSH);
deployButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
@@ -241,12 +344,12 @@
}
});
- Label tempDeployLabel = toolkit.createLabel(composite,
+ Label tempDeployLabel = toolkit.createLabel(parent,
Messages.swf_TempDeployDirectory);
tempDeployLabel.setForeground(toolkit.getColors().getColor(
IFormColors.TITLE));
- tempDeployText = toolkit.createText(composite, getTempDeployDir(),
+ tempDeployText = toolkit.createText(parent, getTempDeployDir(),
SWT.BORDER);
tempDeployListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
@@ -255,7 +358,7 @@
};
tempDeployText.addModifyListener(tempDeployListener);
- tempDeployButton = toolkit.createButton(composite, Messages.browse,
+ tempDeployButton = toolkit.createButton(parent, Messages.browse,
SWT.PUSH);
tempDeployButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
@@ -268,11 +371,6 @@
}
});
- FormData descriptionLabelData = new FormData();
- descriptionLabelData.left = new FormAttachment(0, 5);
- descriptionLabelData.top = new FormAttachment(0, 5);
- descriptionLabel.setLayoutData(descriptionLabelData);
-
// first row
FormData labelData = new FormData();
labelData.left = new FormAttachment(0, 5);
@@ -310,36 +408,7 @@
tempButtonData.left = new FormAttachment(100, -100);
tempButtonData.top = new FormAttachment(deployText, 5);
tempDeployButton.setLayoutData(tempButtonData);
-
- zipDeployWTPProjects = toolkit.createButton(composite,
- Messages.EditorZipDeployments, SWT.CHECK);
- boolean zippedPublisherAvailable = isZippedPublisherAvailable();
- boolean value = getServer().zipsWTPDeployments();
- zipDeployWTPProjects.setEnabled(zippedPublisherAvailable);
- zipDeployWTPProjects.setSelection(zippedPublisherAvailable && value);
-
- FormData zipButtonData = new FormData();
- zipButtonData.right = new FormAttachment(100, -5);
- zipButtonData.left = new FormAttachment(0, 5);
- zipButtonData.top = new FormAttachment(tempDeployText, 5);
- zipDeployWTPProjects.setLayoutData(zipButtonData);
-
- zipListener = new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- page.execute(new SetZipCommand());
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
- };
- zipDeployWTPProjects.addSelectionListener(zipListener);
-
- toolkit.paintBordersFor(composite);
- section.setClient(composite);
- page.getSaveStatus();
- updateWidgets();
- return section;
+ return tempDeployText;
}
protected boolean getShowRadios() {
@@ -349,63 +418,44 @@
showRadios = false;
return showRadios;
}
- public static interface IBrowseBehavior {
- public String openBrowseDialog(ModuleDeploymentPage page, String original);
- }
- public static HashMap<String, IBrowseBehavior> browseBehaviorMap = new HashMap<String, IBrowseBehavior>();
- static {
- browseBehaviorMap.put(LocalPublishMethod.LOCAL_PUBLISH_METHOD, new IBrowseBehavior() {
- public String openBrowseDialog(ModuleDeploymentPage page, String original) {
- DirectoryDialog d = new DirectoryDialog(new Shell());
- d.setFilterPath(page.makeGlobal(original));
- return d.open();
- }
- });
- }
- protected String openBrowseDialog(String original) {
- String mode = getServer().getAttributeHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- IBrowseBehavior beh = browseBehaviorMap.get(mode);
- if( beh == null )
- beh = browseBehaviorMap.get(LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- return beh.openBrowseDialog(page, original);
- }
-
private void updateWidgets() {
if( getShowRadios()) {
- metadataRadio.setSelection(getDeployType().equals(
- IDeployableServer.DEPLOY_METADATA));
- serverRadio.setSelection(getDeployType().equals(
- IDeployableServer.DEPLOY_SERVER));
- customRadio.setSelection(getDeployType().equals(
- IDeployableServer.DEPLOY_CUSTOM));
- currentSelection = metadataRadio.getSelection() ? metadataRadio
- : serverRadio.getSelection() ? serverRadio : customRadio;
+ if( showMetadataRadio())
+ metadataRadio.setSelection(getDeployType().equals(
+ IDeployableServer.DEPLOY_METADATA));
+ if( showServerRadio())
+ serverRadio.setSelection(getDeployType().equals(
+ IDeployableServer.DEPLOY_SERVER));
+ if( showCustomRadio())
+ customRadio.setSelection(getDeployType().equals(
+ IDeployableServer.DEPLOY_CUSTOM));
- String mode = page.getServer().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- boolean metaEnabled = callbackMappings.get(mode).metadataEnabled(page.getServer());
- metadataRadio.setEnabled(metaEnabled);
+ currentSelection = metadataRadio != null && metadataRadio.getSelection() ? metadataRadio
+ : serverRadio != null && serverRadio.getSelection() ? serverRadio : customRadio;
}
- JBossServer jbs = ServerConverter.getJBossServer(page.getServer().getOriginal());
- String newDir = getHelper().getAttribute(IDeployableServer.DEPLOY_DIRECTORY,
- jbs == null ? "" : jbs.getDeployFolder()); //$NON-NLS-1$
- String newTemp = getHelper().getAttribute(IDeployableServer.TEMP_DEPLOY_DIRECTORY,
- jbs == null ? "" : jbs.getTempDeployFolder()); //$NON-NLS-1$
- newDir = ServerUtil.makeRelative(page.getServer().getRuntime(), new Path(newDir)).toString();
- newTemp = ServerUtil.makeRelative(page.getServer().getRuntime(), new Path(newTemp)).toString();
- deployText.removeModifyListener(deployListener);
- deployText.setText(newDir);
- deployText.addModifyListener(deployListener);
- tempDeployText.removeModifyListener(tempDeployListener);
- tempDeployText.setText(newTemp);
- tempDeployText.addModifyListener(tempDeployListener);
-
- deployText.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
- tempDeployText.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
- deployButton.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
- tempDeployButton.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
+ if(showTempAndDeployTexts()) {
+ JBossServer jbs = ServerConverter.getJBossServer(page.getServer().getOriginal());
+ String newDir = getHelper().getAttribute(IDeployableServer.DEPLOY_DIRECTORY,
+ jbs == null ? "" : jbs.getDeployFolder()); //$NON-NLS-1$
+ String newTemp = getHelper().getAttribute(IDeployableServer.TEMP_DEPLOY_DIRECTORY,
+ jbs == null ? "" : jbs.getTempDeployFolder()); //$NON-NLS-1$
+ newDir = ServerUtil.makeRelative(page.getServer().getRuntime(), new Path(newDir)).toString();
+ newTemp = ServerUtil.makeRelative(page.getServer().getRuntime(), new Path(newTemp)).toString();
+ deployText.removeModifyListener(deployListener);
+ deployText.setText(newDir);
+ deployText.addModifyListener(deployListener);
+ tempDeployText.removeModifyListener(tempDeployListener);
+ tempDeployText.setText(newTemp);
+ tempDeployText.addModifyListener(tempDeployListener);
+
+ deployText.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
+ tempDeployText.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
+ deployButton.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
+ tempDeployButton.setEnabled(getDeployType().equals(IDeployableServer.DEPLOY_CUSTOM));
+ }
}
public void radioSelected(Object c) {
@@ -530,43 +580,64 @@
page.getSaveStatus();
}
+ protected void handleMetadataRadioSelected() {
+ newDir = JBossServerCorePlugin.getServerStateLocation(id)
+ .append(IJBossRuntimeResourceConstants.DEPLOY).makeAbsolute().toString();
+ newTemp = JBossServerCorePlugin.getServerStateLocation(id)
+ .append(IJBossToolingConstants.TEMP_DEPLOY).makeAbsolute().toString();
+ new File(newDir).mkdirs();
+ new File(newTemp).mkdirs();
+ }
+
+ protected void handleServerRadioSelected() {
+ if( server.getRuntime() != null &&
+ server.getRuntime().loadAdapter(IJBossServerRuntime.class, null) != null) {
+ String mode = getHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ newDir = getServerRadioNewDeployDir();
+ newTemp = getServerRadioNewTempDeployDir();
+ if( mode.equals(LocalPublishMethod.LOCAL_PUBLISH_METHOD))
+ new File(newTemp).mkdirs();
+ }
+ }
+
+ protected String getServerRadioNewDeployDir() {
+ String mode = getHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ if( ServerUtil.isJBoss7(page.getServer().getServerType())) {
+ return new Path(IJBossRuntimeResourceConstants.AS7_STANDALONE)
+ .append(IJBossRuntimeResourceConstants.AS7_DEPLOYMENTS)
+ .makeRelative().toString();
+ } else {
+ IDeploymentPageCallback cb = callbackMappings.get(mode);
+ String loc = cb.getServerLocation(page.getServer());
+ String config = cb.getServerConfigName(page.getServer());
+ return new Path(loc)
+ .append(config)
+ .append(IJBossRuntimeResourceConstants.DEPLOY).toString();
+ }
+ }
+
+ protected String getServerRadioNewTempDeployDir() {
+ String mode = getHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ if( ServerUtil.isJBoss7(page.getServer().getServerType())) {
+ return new Path(IJBossRuntimeResourceConstants.AS7_STANDALONE)
+ .append(IJBossRuntimeResourceConstants.FOLDER_TMP)
+ .makeRelative().toString();
+ } else {
+ IDeploymentPageCallback cb = callbackMappings.get(mode);
+ String loc = cb.getServerLocation(page.getServer());
+ String config = cb.getServerConfigName(page.getServer());
+ return new Path(loc).append(config)
+ .append(IJBossToolingConstants.TMP)
+ .append(IJBossToolingConstants.JBOSSTOOLS_TMP).toString();
+ }
+ }
+
protected void discoverNewFolders() {
// Discover the new folders
if( newSelection == metadataRadio ) {
- newDir = JBossServerCorePlugin.getServerStateLocation(id)
- .append(IJBossRuntimeResourceConstants.DEPLOY).makeAbsolute().toString();
- newTemp = JBossServerCorePlugin.getServerStateLocation(id)
- .append(IJBossToolingConstants.TEMP_DEPLOY).makeAbsolute().toString();
- new File(newDir).mkdirs();
- new File(newTemp).mkdirs();
+ handleMetadataRadioSelected();
} else if( newSelection == serverRadio ) {
- if( server.getRuntime() != null &&
- server.getRuntime().loadAdapter(IJBossServerRuntime.class, null) != null) {
- String loc, config;
- loc = config = null;
- String mode = getHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- IDeploymentPageCallback cb = callbackMappings.get(mode);
- loc = cb.getServerLocation(page.getServer());
- config = cb.getServerConfigName(page.getServer());
- if( ServerUtil.isJBoss7(page.getServer().getServerType())) {
- // fast hack, UGH!
- newDir = new Path(IJBossRuntimeResourceConstants.AS7_STANDALONE)
- .append(IJBossRuntimeResourceConstants.AS7_DEPLOYMENTS)
- .makeRelative().toString();
- newTemp = new Path(IJBossRuntimeResourceConstants.AS7_STANDALONE)
- .append(IJBossRuntimeResourceConstants.FOLDER_TMP)
- .makeRelative().toString();
- } else {
- newDir = new Path(loc)
- .append(config)
- .append(IJBossRuntimeResourceConstants.DEPLOY).toString();
- newTemp = new Path(loc).append(config)
- .append(IJBossToolingConstants.TMP)
- .append(IJBossToolingConstants.JBOSSTOOLS_TMP).toString();
- }
- if( mode.equals(LocalPublishMethod.LOCAL_PUBLISH_METHOD))
- new File(newTemp).mkdirs();
- }
+ handleServerRadioSelected();
} else {
newDir = lastCustomDeploy;
newTemp = lastCustomTemp;
@@ -690,7 +761,7 @@
}
public Object getValue(Object element, String property) {
- DeploymentModulePrefs p = preferences.getOrCreatePreferences(currentDeployType)
+ DeploymentModulePrefs p = preferences.getOrCreatePreferences(MAIN)
.getOrCreateModulePrefs((IModule) element);
if (property == COLUMN_LOC) {
return getOutputFolderAndName(p, (IModule)element);
@@ -706,7 +777,7 @@
public void modify(Object element, String property, Object value) {
IModule module = (IModule) ((TreeItem) element).getData();
- DeploymentModulePrefs p = preferences.getOrCreatePreferences(currentDeployType)
+ DeploymentModulePrefs p = preferences.getOrCreatePreferences(MAIN)
.getOrCreateModulePrefs(module);
if (property == COLUMN_LOC) {
String outputName = new Path(((String)value)).lastSegment();
@@ -766,13 +837,13 @@
return m.getName();
if (columnIndex == 1) {
DeploymentModulePrefs modPref = preferences
- .getOrCreatePreferences(currentDeployType)
+ .getOrCreatePreferences(MAIN)
.getOrCreateModulePrefs(m);
return getOutputFolderAndName(modPref, m);
}
if (columnIndex == 2) {
DeploymentModulePrefs modPref = preferences
- .getOrCreatePreferences(currentDeployType)
+ .getOrCreatePreferences(MAIN)
.getOrCreateModulePrefs(m);
String result = modPref.getProperty(COLUMN_TEMP_LOC);
if (result != null)
@@ -809,12 +880,11 @@
public void propertyChange(PropertyChangeEvent evt) {
if( getShowRadios() && evt.getPropertyName().equals( IDeployableServer.SERVER_MODE)) {
- String mode = page.getServer().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- metadataRadio.setEnabled(callbackMappings.get(mode).metadataEnabled(page.getServer()));
-// String originalDeployLocation = page.getServer().getOriginal().getAttribute(IDeployableServer.DEPLOY_DIRECTORY_TYPE, IDeployableServer.DEPLOY_CUSTOM);
-// String wcDeployLocation = page.getServer().getAttribute(IDeployableServer.DEPLOY_DIRECTORY_TYPE, IDeployableServer.DEPLOY_CUSTOM);
- if(!metadataRadio.isEnabled() && metadataRadio.getSelection()) {
- page.execute(new RadioClickedCommand(serverRadio, currentSelection));
+ if( showMetadataRadio() ) {
+ metadataRadio.setEnabled(enableMetadataRadio());
+ if(!metadataRadio.isEnabled() && metadataRadio.getSelection()) {
+ page.execute(new RadioClickedCommand(serverRadio, currentSelection));
+ }
}
}
updateWidgets();
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java 2011-06-10 00:59:44 UTC (rev 31999)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java 2011-06-10 06:02:41 UTC (rev 32000)
@@ -196,10 +196,7 @@
}
public static String makeGlobal(String path, IRuntime runtime) {
- IJBossServerRuntime rt = getRuntime(runtime);
- if( rt != null )
- return ServerUtil.makeGlobal(rt, new Path(path)).toString();
- return path;
+ return ServerUtil.makeGlobal(runtime, new Path(path)).toString();
}
public String makeRelative(String path) {
@@ -207,17 +204,9 @@
}
public static String makeRelative(String path, IRuntime runtime) {
- IJBossServerRuntime rt = getRuntime(runtime);
- if (rt == null)
- return path;
- return ServerUtil.makeRelative(rt, new Path(path)).toString();
+ return ServerUtil.makeRelative(runtime, new Path(path)).toString();
}
- private IJBossServerRuntime getRuntime() {
- IRuntime r = server.getRuntime();
- return getRuntime(r);
- }
-
public static IJBossServerRuntime getRuntime(IRuntime r) {
IJBossServerRuntime ajbsrt = null;
if (r != null) {
@@ -231,14 +220,8 @@
public void setFocus() {
}
-
// Currently inactive!!! See bug 286699
public void doSave(IProgressMonitor monitor) {
tab.updateListeners();
-// try {
-// DeploymentPreferenceLoader.savePreferences(server.getOriginal(), preferences);
-// } catch( IOException ioe ) {
-// // TODO eh?
-// }
}
}
14 years, 10 months
JBoss Tools SVN: r31999 - trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-06-09 20:59:44 -0400 (Thu, 09 Jun 2011)
New Revision: 31999
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java
Log:
JBIDE-9088
https://issues.jboss.org/browse/JBIDE-9088
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java 2011-06-10 00:59:29 UTC (rev 31998)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java 2011-06-10 00:59:44 UTC (rev 31999)
@@ -14,6 +14,7 @@
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -805,6 +806,22 @@
firePathRemovedToDependentProjects(source);
}
+ /**
+ * Used for cleaning jsf2 resources - because they now are loaded all at once,
+ * starting at root.
+ *
+ * @param path
+ * @param cs
+ */
+ public void updateChildPaths(IPath path, Collection<IPath> cs) {
+ IPath[] ps = sourcePaths2.keySet().toArray(new IPath[0]);
+ for (IPath p: ps) {
+ if(!cs.contains(p) && !p.equals(path) && path.isPrefixOf(p)) {
+ pathRemoved(p);
+ }
+ }
+ }
+
public void firePathRemovedToDependentProjects(IPath source) {
if(usedBy.isEmpty()) return;
if(EclipseResourceUtil.isJar(source.toString())) return;
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java 2011-06-10 00:59:29 UTC (rev 31998)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java 2011-06-10 00:59:44 UTC (rev 31999)
@@ -164,6 +164,7 @@
LoadedDeclarations c = result.get(path);
p.registerComponents(c, path);
}
+ p.updateChildPaths(jsf2resourcesFolder.getFullPath(), result.keySet());
}
}
14 years, 10 months
JBoss Tools SVN: r31998 - in trunk/cdi: plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink and 6 other directories.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2011-06-09 20:59:29 -0400 (Thu, 09 Jun 2011)
New Revision: 31998
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/InjectedPointHyperlinkTest.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java
Removed:
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/search/CDIElementWrapper.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CDISeamResourceLoadingHyperlinkDetectorTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamConfigTagNameHyperlinkTest.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/BeansXmlHyperLinkTest.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/EventAndObserverMethodHyperlinkDetectorTest.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/InjectedPointHyperlinkDetectorTest.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/ProducerDisposerHyperlinkDetectorTest.java
trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/search/CDISearchParticipantTest.java
Log:
https://issues.jboss.org/browse/JBIDE-9068
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -56,6 +56,7 @@
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
import org.jboss.tools.cdi.internal.core.impl.ClassBean;
import org.jboss.tools.common.EclipseUtil;
+import org.jboss.tools.common.java.IJavaMemberReference;
import org.jboss.tools.common.model.util.EclipseJavaUtil;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.common.text.ITextSourceReference;
@@ -1065,4 +1066,57 @@
}
return result;
}
+
+ /**
+ * returns set of IBean elements filtered in order to have unique IJavaElement
+ * @param cdiProject
+ * @param attemptToResolveAmbiguousDependency
+ * @param injectionPoint
+ * @return
+ */
+ public static Set<IBean> getFilteredBeans(ICDIProject cdiProject, boolean attemptToResolveAmbiguousDependency, IInjectionPoint injectionPoint){
+ Set<IBean> beans = cdiProject.getBeans(attemptToResolveAmbiguousDependency, injectionPoint);
+ HashSet<IJavaElement> elements = new HashSet<IJavaElement>();
+ HashSet<IBean> result = new HashSet<IBean>();
+
+ for(IBean bean : beans){
+ IJavaElement element = getJavaElement(bean);
+ if(!elements.contains(element)){
+ elements.add(element);
+ result.add(bean);
+ }
+ }
+
+ return result;
+ }
+
+ public static List<IBean> getSortedBeans(ICDIProject cdiProject, boolean attemptToResolveAmbiguousDependency, IInjectionPoint injectionPoint){
+ Set<IBean> beans = getFilteredBeans(cdiProject, attemptToResolveAmbiguousDependency, injectionPoint);
+ return sortBeans(beans);
+ }
+
+ public static IJavaElement getJavaElement(ICDIElement cdiElement){
+ if(cdiElement instanceof IJavaMemberReference)
+ return ((IJavaMemberReference)cdiElement).getSourceMember();
+ if(cdiElement instanceof IBean)
+ return ((IBean)cdiElement).getBeanClass();
+ else if(cdiElement instanceof IInjectionPointParameter){
+ IMethod method = ((IInjectionPointParameter)cdiElement).getBeanMethod().getMethod();
+ return getParameter(method, ((IInjectionPointParameter)cdiElement).getName());
+ }
+ return null;
+ }
+
+ public static ILocalVariable getParameter(IMethod method, String name){
+ try{
+ for(ILocalVariable param : method.getParameters()){
+ if(param.getElementName().equals(name))
+ return param;
+ }
+ }catch(JavaModelException ex){
+ CDICorePlugin.getDefault().logError(ex);
+ }
+ return null;
+ }
+
}
\ No newline at end of file
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -20,9 +20,8 @@
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.ResolvedBinaryType;
-import org.eclipse.jdt.internal.core.ResolvedSourceType;
import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
import org.eclipse.jdt.internal.ui.text.JavaWordFinder;
@@ -93,7 +92,7 @@
ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
for (IJavaElement element : elements) {
int position = 0;
- if(element instanceof ResolvedSourceType || element instanceof ResolvedBinaryType){
+ if(element instanceof IType){
ICompilationUnit cUnit = (ICompilationUnit)input;
element = cUnit.getElementAt(wordRegion.getOffset());
if(element == null)
@@ -130,16 +129,15 @@
return;
}
- Set<IBean> resultBeanSet = cdiProject.getBeans(true, injectionPoint);
- List<IBean> resultBeanList = CDIUtil.sortBeans(resultBeanSet);
+ List<IBean> resultBeans = CDIUtil.getSortedBeans(cdiProject, true, injectionPoint);
- Set<IBean> alternativeBeanSet = cdiProject.getBeans(false, injectionPoint);
- List<IBean> alternativeBeanList = CDIUtil.sortBeans(alternativeBeanSet);
+ List<IBean> alternativeBeans = CDIUtil.getSortedBeans(cdiProject, false, injectionPoint);
+
- if(resultBeanList.size() > 0){
- hyperlinks.add(new InjectedPointHyperlink(region, resultBeanList.get(0), document, true));
- if(alternativeBeanList.size() > 1)
- hyperlinks.add(new AlternativeInjectedPointListHyperlink(region, alternativeBeanList, viewer, document));
+ if(resultBeans.size() > 0){
+ hyperlinks.add(new InjectedPointHyperlink(region, resultBeans.get(0), document, true));
+ if(alternativeBeans.size() > 1)
+ hyperlinks.add(new AlternativeInjectedPointListHyperlink(region, alternativeBeans, viewer, document));
}
}
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -332,19 +332,6 @@
return null;
}
- public static ILocalVariable getParameter(IMethod method, String name){
- try{
- for(ILocalVariable param : method.getParameters()){
- if(param.getElementName().equals(name))
- return param;
- }
- }catch(JavaModelException ex){
- CDIUIPlugin.getDefault().logError(ex);
- }
- return null;
- }
-
-
public static void addQualifiersToInjectedPoint(IInjectionPoint injectionPoint, IBean bean){
try{
ICompilationUnit original = injectionPoint.getClassBean().getBeanClass().getCompilationUnit();
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/search/CDIElementWrapper.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/search/CDIElementWrapper.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/search/CDIElementWrapper.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -14,6 +14,7 @@
import org.eclipse.jdt.core.ILocalVariable;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.Signature;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IBean;
import org.jboss.tools.cdi.core.ICDIElement;
import org.jboss.tools.cdi.core.IInjectionPointField;
@@ -49,7 +50,7 @@
label = ((IInjectionPointMethod)element).getMethod().getDeclaringType().getElementName()+DOT+((IInjectionPointMethod)element).getMethod().getElementName()+BRACKETS;
}else if(element instanceof IInjectionPointParameter){
IMethod method = ((IInjectionPointParameter)element).getBeanMethod().getMethod();
- javaElement = MarkerResolutionUtils.getParameter(method, ((IInjectionPointParameter)element).getName());
+ javaElement = CDIUtil.getParameter(method, ((IInjectionPointParameter)element).getName());
String type = Signature.getSignatureSimpleName(((ILocalVariable)javaElement).getTypeSignature());
label = method.getDeclaringType().getElementName()+DOT+method.getElementName()+OPEN+type+SPACE+javaElement.getElementName()+CLOSE;
}
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF 2011-06-10 00:59:29 UTC (rev 31998)
@@ -19,7 +19,9 @@
org.jboss.tools.cdi.seam.config.core.test,
org.jboss.tools.tests,
org.eclipse.core.runtime,
- org.eclipse.jdt.core
+ org.eclipse.jdt.core,
+ org.jboss.tools.cdi.seam.solder.core.test;bundle-version="1.0.0",
+ org.jboss.tools.cdi.text.ext;bundle-version="1.2.0"
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Bundle-Vendor.0
Export-Package: org.jboss.tools.cdi.seam.text.ext.test
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CDISeamResourceLoadingHyperlinkDetectorTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CDISeamResourceLoadingHyperlinkDetectorTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CDISeamResourceLoadingHyperlinkDetectorTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -4,13 +4,16 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.osgi.util.NLS;
+import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.seam.text.ext.CDISeamExtMessages;
import org.jboss.tools.cdi.seam.text.ext.hyperlink.CDISeamResourceLoadingHyperlink;
import org.jboss.tools.cdi.seam.text.ext.hyperlink.CDISeamResourceLoadingHyperlinkDetector;
-import org.jboss.tools.cdi.text.ext.test.HyperlinkDetectorTest;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil;
import org.jboss.tools.common.util.FileUtil;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestHyperlink;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestRegion;
-public class CDISeamResourceLoadingHyperlinkDetectorTest extends HyperlinkDetectorTest{
+public class CDISeamResourceLoadingHyperlinkDetectorTest extends TCKTest{
private static final String FILENAME = "JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/ResourceLoader.java";
public void testCDISeamResourceLoadingHyperlinkDetector() throws Exception {
@@ -26,7 +29,7 @@
regionList.add(new TestRegion(injectPosition, 58, new TestHyperlink[]{new TestHyperlink(CDISeamResourceLoadingHyperlink.class, NLS.bind(CDISeamExtMessages.CDI_SEAM_RESOURCE_LOADING_HYPERLINK, "WEB-INF/beans.xml"))}));
}
- checkRegions(FILENAME, regionList, new CDISeamResourceLoadingHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, FILENAME, regionList, new CDISeamResourceLoadingHyperlinkDetector());
}
}
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -13,6 +13,7 @@
import org.eclipse.jdt.internal.core.JavaModelManager;
import org.jboss.tools.cdi.core.test.CDICoreTestSetup;
import org.jboss.tools.cdi.seam.config.core.test.SeamConfigTestSetup;
+import org.jboss.tools.cdi.seam.solder.core.test.SeamSolderTestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -34,6 +35,11 @@
suiteAll.addTest(new SeamConfigTestSetup(suiteConfig));
+ suiteConfig = new TestSuite("CDI Seam Solder Tests");
+ suiteConfig.addTestSuite(InjectedPointHyperlinkTest.class);
+
+ suiteAll.addTest(new SeamSolderTestSetup(suiteConfig));
+
return suiteAll;
}
}
\ No newline at end of file
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/InjectedPointHyperlinkTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/InjectedPointHyperlinkTest.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/InjectedPointHyperlinkTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -0,0 +1,51 @@
+package org.jboss.tools.cdi.seam.text.ext.test;
+
+import java.util.ArrayList;
+import java.util.Set;
+
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.seam.solder.core.test.SeamSolderTest;
+import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
+import org.jboss.tools.cdi.text.ext.hyperlink.InjectedPointHyperlink;
+import org.jboss.tools.cdi.text.ext.hyperlink.InjectedPointHyperlinkDetector;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestHyperlink;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestRegion;
+
+public class InjectedPointHyperlinkTest extends SeamSolderTest {
+ public void testInjectedPointHyperlinkDetector() throws Exception {
+ Set<IBean> beans = cdiProject.getBeans("/CDISolderTest/src/org/jboss/generic2/MessageManager.java", true);
+ IBean bean=null;
+ for(IBean b : beans){
+ bean = b;
+ }
+ ArrayList<TestRegion> regionList = new ArrayList<TestRegion>();
+ regionList.add(new TestRegion(97, 6, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.messageDispatcherProducer()", bean),
+ })); // Inject
+ regionList.add(new TestRegion(106, 7, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.messageDispatcherProducer()", bean),
+ })); // Logger
+ regionList.add(new TestRegion(115, 28, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.messageDispatcherProducer()", bean),
+ })); // logger
+ regionList.add(new TestRegion(148, 6, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.getPolicy()", bean),
+ })); // logger
+ regionList.add(new TestRegion(157, 7, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.getPolicy()", bean),
+ })); // logger
+ regionList.add(new TestRegion(166, 23, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.getPolicy()", bean),
+ })); // logger
+ regionList.add(new TestRegion(281, 31, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.getPolicy()", bean),
+ })); // logger
+ regionList.add(new TestRegion(318, 6, new TestHyperlink[]{
+ new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " MessageManager.getPolicy()", bean),
+ })); // logger
+
+ CDIHyperlinkTestUtil.checkRegions(project, "src/org/jboss/generic2/DurableMessageLogger.java", regionList, new InjectedPointHyperlinkDetector());
+ }
+
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/InjectedPointHyperlinkTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamConfigTagNameHyperlinkTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamConfigTagNameHyperlinkTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamConfigTagNameHyperlinkTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -18,7 +18,7 @@
import org.eclipse.ui.IFileEditorInput;
import org.jboss.tools.cdi.seam.config.core.test.SeamConfigTest;
import org.jboss.tools.cdi.seam.text.ext.CDISeamExtPlugin;
-import org.jboss.tools.cdi.text.ext.test.HyperlinkDetectorTest;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil;
import org.jboss.tools.common.util.FileUtil;
/**
@@ -31,7 +31,7 @@
public void testSeamConfigTagNameHyperlink() throws Exception {
int offset = 802; // <|test602:Report>
- IHyperlink hyperlink = HyperlinkDetectorTest.checkHyperLinkInXml("src/META-INF/beans.xml", project, offset, "org.jboss.tools.cdi.seam.text.ext.hyperlink.SeamConfigTagNameHyperlink");
+ IHyperlink hyperlink = CDIHyperlinkTestUtil.checkHyperLinkInXml("src/META-INF/beans.xml", project, offset, "org.jboss.tools.cdi.seam.text.ext.hyperlink.SeamConfigTagNameHyperlink");
hyperlink.open();
IEditorPart editor = CDISeamExtPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
@@ -42,7 +42,7 @@
public void testSeamConfigTagAttributeHyperlink() throws Exception {
int offset = 1088; // <test603:OtherQualifier va|lue1="AA"
- IHyperlink hyperlink = HyperlinkDetectorTest.checkHyperLinkInXml("src/META-INF/beans.xml", project, offset, "org.jboss.tools.cdi.seam.text.ext.hyperlink.SeamConfigTagNameHyperlink");
+ IHyperlink hyperlink = CDIHyperlinkTestUtil.checkHyperLinkInXml("src/META-INF/beans.xml", project, offset, "org.jboss.tools.cdi.seam.text.ext.hyperlink.SeamConfigTagNameHyperlink");
hyperlink.open();
IEditorPart editor = CDISeamExtPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/BeansXmlHyperLinkTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/BeansXmlHyperLinkTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/BeansXmlHyperLinkTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -10,26 +10,28 @@
******************************************************************************/
package org.jboss.tools.cdi.text.ext.test;
+import org.jboss.tools.cdi.core.test.tck.TCKTest;
+
/**
* beans.xml OpenOns test
*
* @author Alexey Kazakov
*/
-public class BeansXmlHyperLinkTest extends HyperlinkDetectorTest {
+public class BeansXmlHyperLinkTest extends TCKTest {
public void testAlternativesClassOpenOns() throws Exception {
- checkHyperLinkInXml("WebContent/WEB-INF/beans.xml", 73, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
+ CDIHyperlinkTestUtil.checkHyperLinkInXml(tckProject, "WebContent/WEB-INF/beans.xml", 73, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
}
public void testAlternativesStereotypeOpenOns() throws Exception {
- checkHyperLinkInXml("WebContent/WEB-INF/beans.xml", 395, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
+ CDIHyperlinkTestUtil.checkHyperLinkInXml(tckProject, "WebContent/WEB-INF/beans.xml", 395, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
}
public void testDecoratorClassOpenOns() throws Exception {
- checkHyperLinkInXml("WebContent/WEB-INF/beans.xml", 1159, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
+ CDIHyperlinkTestUtil.checkHyperLinkInXml(tckProject, "WebContent/WEB-INF/beans.xml", 1159, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
}
public void testInterceptorClassOpenOns() throws Exception {
- checkHyperLinkInXml("WebContent/WEB-INF/beans.xml", 1841, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
+ CDIHyperlinkTestUtil.checkHyperLinkInXml(tckProject, "WebContent/WEB-INF/beans.xml", 1841, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
}
}
\ No newline at end of file
Copied: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java (from rev 31973, trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java)
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -0,0 +1,380 @@
+package org.jboss.tools.cdi.text.ext.test;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
+import org.eclipse.jdt.internal.ui.text.JavaWordFinder;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.Region;
+import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.texteditor.DocumentProviderRegistry;
+import org.eclipse.ui.texteditor.IDocumentProvider;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart;
+import org.jboss.tools.cdi.core.ICDIElement;
+import org.jboss.tools.cdi.text.ext.hyperlink.ITestableCDIHyperlink;
+import org.jboss.tools.common.editor.ObjectMultiPageEditor;
+import org.jboss.tools.common.model.ui.editor.EditorPartWrapper;
+import org.jboss.tools.common.text.ext.hyperlink.HyperlinkDetector;
+import org.jboss.tools.common.text.ext.hyperlink.IHyperlinkRegion;
+import org.jboss.tools.common.text.ext.util.AxisUtil;
+
+public class CDIHyperlinkTestUtil extends TestCase{
+ public static void checkRegions(IProject project, String fileName, List<TestRegion> regionList, AbstractHyperlinkDetector elPartitioner) throws Exception {
+ IFile file = project.getFile(fileName);
+
+ assertNotNull("The file \"" + fileName + "\" is not found", file);
+ assertTrue("The file \"" + fileName + "\" is not found", file.isAccessible());
+
+ FileEditorInput editorInput = new FileEditorInput(file);
+
+ IDocumentProvider documentProvider = null;
+ try {
+ documentProvider = DocumentProviderRegistry.getDefault().getDocumentProvider(editorInput);
+ } catch (Exception x) {
+ x.printStackTrace();
+ fail("An exception caught: " + x.getMessage());
+ }
+
+ assertNotNull("The document provider for the file \"" + fileName + "\" is not loaded", documentProvider);
+
+ try {
+ documentProvider.connect(editorInput);
+ } catch (Exception x) {
+ x.printStackTrace();
+ fail("The document provider is not able to be initialized with the editor input\nAn exception caught: "+x.getMessage());
+ }
+
+ IDocument document = documentProvider.getDocument(editorInput);
+
+ assertNotNull("The document for the file \"" + fileName + "\" is not loaded", document);
+
+ int expected = 0;
+ for(TestRegion testRegion : regionList)
+ expected += testRegion.region.getLength()+1;
+
+ IEditorPart part = openFileInEditor(file);
+ ISourceViewer viewer = null;
+ if(part instanceof JavaEditor){
+ viewer = ((JavaEditor)part).getViewer();
+ }
+
+ elPartitioner.setContext(new TestContext((ITextEditor)part));
+
+ int counter = 0;
+ for (int i = 0; i < document.getLength(); i++) {
+ TestData testData = new TestData(document, i);
+ IHyperlink[] links = elPartitioner.detectHyperlinks(viewer, testData.getHyperlinkRegion(), true);
+
+ boolean recognized = links != null;
+
+ if (recognized) {
+ counter++;
+ TestRegion testRegion = findOffsetInRegions(i, regionList);
+ if(testRegion == null){
+ fail("Wrong detection for offset - "+i);
+ }else{
+ checkTestRegion(links, testRegion);
+ }
+ }
+ else {
+ for(TestRegion testRegion : regionList){
+ if(i >= testRegion.region.getOffset() && i <= testRegion.region.getOffset()+testRegion.region.getLength()) {
+ int line = document.getLineOfOffset(testRegion.region.getOffset());
+ fail("Wrong detection for region - "+testRegion.region.getOffset()+" : "+testRegion.region.getLength()+" region - "+i);
+ }
+ }
+ }
+ }
+
+ assertEquals("Wrong recognized region count: ", expected, counter);
+
+ documentProvider.disconnect(editorInput);
+ }
+
+ private static void checkTestRegion(IHyperlink[] links, TestRegion testRegion){
+ for(IHyperlink link : links){
+ TestHyperlink testLink = findTestHyperlink(testRegion.hyperlinks, link);
+ assertNotNull("Unexpected hyperlink - "+link.getHyperlinkText(), testLink);
+ assertEquals("Unexpected hyperlink type", testLink.hyperlink, link.getClass());
+ assertTrue("Validation fails for hyperlink - "+link.getHyperlinkText(), testLink.validateHyperlink(link));
+ }
+
+ for(TestHyperlink testLink : testRegion.hyperlinks){
+ IHyperlink link = findHyperlink(links, testLink);
+ assertNotNull("Hyperlink - "+testLink.name+" not found", link);
+ }
+ }
+
+ private static TestHyperlink findTestHyperlink(List<TestHyperlink> testHyperlinks, IHyperlink link){
+ for(TestHyperlink testLink : testHyperlinks){
+ if(testLink.name.equals(link.getHyperlinkText()))
+ return testLink;
+ }
+ return null;
+ }
+
+ private static IHyperlink findHyperlink(IHyperlink[] links, TestHyperlink testLink){
+ for(IHyperlink link : links){
+ if(testLink.name.equals(link.getHyperlinkText()))
+ return link;
+ }
+ return null;
+ }
+
+ public static void checkHyperLinkInXml(IProject project, String fileName, int offset, String hyperlinkClassName) throws Exception {
+ checkHyperLinkInXml(fileName, project, offset, hyperlinkClassName);
+ }
+
+ public static IHyperlink checkHyperLinkInXml(String fileName, IProject project, int offset, String hyperlinkClassName) throws Exception {
+ Region region = new Region(offset, 0);
+ IFile file = project.getFile(fileName);
+
+ assertNotNull("The file \"" + fileName + "\" is not found", file);
+ assertTrue("The file \"" + fileName + "\" is not found", file.isAccessible());
+
+ FileEditorInput editorInput = new FileEditorInput(file);
+
+ IEditorPart part = openFileInEditor(file);
+ if(part instanceof EditorPartWrapper) part = ((EditorPartWrapper)part).getEditor();
+ ISourceViewer viewer = null;
+ if (part instanceof XMLMultiPageEditorPart) {
+ IEditorPart[] parts = ((XMLMultiPageEditorPart)part).findEditors(editorInput);
+ if(parts.length>0) {
+ viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
+ }
+ } else if(part instanceof ObjectMultiPageEditor) {
+ viewer = ((ObjectMultiPageEditor)part).getSourceEditor().getTextViewer();
+ } else if(part instanceof StructuredTextEditor) {
+ viewer = ((StructuredTextEditor)part).getTextViewer();
+ }
+
+ IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, region, true);
+ if(links!=null) {
+ for (IHyperlink hyperlink : links) {
+ if(hyperlink.getClass().getName().equals(hyperlinkClassName)) {
+ return hyperlink;
+ }
+ }
+ }
+ fail("Can't find HyperLink");
+ return null;
+ }
+
+ private static TestRegion findOffsetInRegions(int offset, List<TestRegion> regionList){
+ for(TestRegion testRegion : regionList){
+ if(offset >= testRegion.region.getOffset() && offset <= testRegion.region.getOffset()+testRegion.region.getLength())
+ return testRegion;
+ }
+ return null;
+ }
+
+ public static IEditorPart openFileInEditor(IFile input) {
+ return openFileInEditor(input, null);
+ }
+
+ public static IEditorPart openFileInEditor(IFile input, String id) {
+ if (input != null && input.exists()) {
+ try {
+ if(id==null) {
+ IWorkbenchPage page = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ return IDE.openEditor(page, input, true);
+ } else {
+ IWorkbenchPage page = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ return IDE.openEditor(page, input, id, true);
+ }
+ } catch (PartInitException pie) {
+ pie.printStackTrace();
+ fail(pie.getMessage());
+ }
+ }
+ return null;
+ }
+
+ static class TestData {
+ IDocument document;
+ int offset;
+ IRegion region;
+ String contentType;
+ private IHyperlinkRegion hyperlinkRegion = null;
+
+ TestData (IDocument document, int offset) {
+ this.document = document;
+ this.offset = offset;
+ init();
+ }
+
+ private void init() {
+ this.region = getDocumentRegion();
+ this.contentType = getContentType();
+ this.hyperlinkRegion = getHyperlinkRegion();
+ }
+
+ private IRegion getDocumentRegion() {
+ IRegion region = null;
+ try {
+ region = JavaWordFinder.findWord(document, offset);
+ } catch (Exception x) {
+ x.printStackTrace();
+ fail(x.getMessage());
+ }
+
+ return region;
+ }
+
+ public IHyperlinkRegion getHyperlinkRegion() {
+ if (hyperlinkRegion != null)
+ return hyperlinkRegion;
+
+ return new IHyperlinkRegion() {
+ public String getAxis() {
+ return AxisUtil.getAxis(document, region.getOffset());
+ }
+ public String getContentType() {
+ return contentType;
+ }
+ public String getType() {
+ return region.toString();
+ }
+ public int getLength() {
+ return region.getLength();
+ }
+ public int getOffset() {
+ return region.getOffset();
+ }
+ public String toString() {
+ return "[" + getOffset() + "-" + (getOffset() + getLength() - 1) + ":" + getType() + ":" + getContentType() + "]";
+ }
+ };
+ }
+
+ /**
+ * Returns the content type of document
+ *
+ * @param document -
+ * assumes document is not null
+ * @return String content type of given document
+ */
+ private String getContentType() {
+ String type = null;
+
+ IModelManager mgr = StructuredModelManager.getModelManager();
+ IStructuredModel model = null;
+ try {
+ model = mgr.getExistingModelForRead(document);
+ if (model != null) {
+ type = model.getContentTypeIdentifier();
+ }
+ } finally {
+ if (model != null) {
+ model.releaseFromRead();
+ }
+ }
+ return type;
+ }
+ }
+
+ static class TestContext implements IAdaptable{
+ ITextEditor editor;
+
+ public TestContext(ITextEditor editor){
+ this.editor = editor;
+ }
+
+ public Object getAdapter(Class adapter) {
+ if(adapter.equals(ITextEditor.class))
+ return editor;
+ return null;
+ }
+ }
+
+ public static class TestRegion{
+ Region region;
+ ArrayList<TestHyperlink> hyperlinks = new ArrayList<TestHyperlink>();
+
+ public TestRegion(int offset, int length, TestHyperlink[] testHyperlinks){
+ region = new Region(offset, length);
+ for(TestHyperlink testHyperlink : testHyperlinks){
+ hyperlinks.add(testHyperlink);
+ }
+ }
+ }
+
+ public static class TestHyperlink{
+ Class<? extends IHyperlink> hyperlink;
+ ICDIElement element = null;
+ String[] elementPaths = null;
+ String name;
+
+ public TestHyperlink(Class<? extends IHyperlink> hyperlink, String name){
+ this.hyperlink = hyperlink;
+ this.name = name;
+ }
+
+ public TestHyperlink(Class<? extends IHyperlink> hyperlink, String name, ICDIElement element){
+ this(hyperlink, name);
+ this.element = element;
+ }
+
+ public TestHyperlink(Class<? extends IHyperlink> hyperlink, String name, String[] elementPaths){
+ this(hyperlink, name);
+ this.elementPaths = elementPaths;
+ }
+
+ public boolean validateHyperlink(IHyperlink hyperlink){
+ if(hyperlink instanceof ITestableCDIHyperlink && ((ITestableCDIHyperlink)hyperlink).getCDIElement() != null && element != null){
+ assertEquals(element, ((ITestableCDIHyperlink)hyperlink).getCDIElement());
+ }else if(hyperlink instanceof ITestableCDIHyperlink && ((ITestableCDIHyperlink)hyperlink).getCDIElements() != null && elementPaths != null){
+ for(ICDIElement element : ((ITestableCDIHyperlink)hyperlink).getCDIElements()){
+ String elementPath = findElementPath(elementPaths, element);
+ assertNotNull("Unexpected CDI element - "+element.getSourcePath().toString(), elementPath);
+ }
+
+ for(String elementPath : elementPaths){
+ ICDIElement element = findCDIElement(((ITestableCDIHyperlink)hyperlink).getCDIElements(), elementPath);
+ assertNotNull("CDI element - "+elementPath+" not found", element);
+ }
+ }
+ return true;
+ }
+
+ protected String findElementPath(String[] elementPaths, ICDIElement element){
+ for(String elementPath : elementPaths){
+ if(elementPath.equals(element.getSourcePath().toString()))
+ return elementPath;
+ }
+ return null;
+ }
+
+ protected ICDIElement findCDIElement(Set<? extends ICDIElement> elements, String elementPath){
+ for(ICDIElement element : elements){
+ if(elementPath.equals(element.getSourcePath().toString()))
+ return element;
+ }
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/EventAndObserverMethodHyperlinkDetectorTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/EventAndObserverMethodHyperlinkDetectorTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/EventAndObserverMethodHyperlinkDetectorTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -2,12 +2,15 @@
import java.util.ArrayList;
+import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
import org.jboss.tools.cdi.text.ext.hyperlink.EventAndObserverMethodHyperlinkDetector;
import org.jboss.tools.cdi.text.ext.hyperlink.EventListHyperlink;
import org.jboss.tools.cdi.text.ext.hyperlink.ObserverMethodListHyperlink;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestRegion;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestHyperlink;
-public class EventAndObserverMethodHyperlinkDetectorTest extends HyperlinkDetectorTest {
+public class EventAndObserverMethodHyperlinkDetectorTest extends TCKTest {
public void testEventHyperlinkDetector() throws Exception {
String[] elementPaths = new String[]{
@@ -46,7 +49,7 @@
regionList.add(new TestRegion(1235, 11, new TestHyperlink[]{new TestHyperlink(ObserverMethodListHyperlink.class, CDIExtensionsMessages.CDI_EVENT_LIST_HYPERLINK_OPEN_OBSERVER_METHODS, elementPaths)}));
regionList.add(new TestRegion(1334, 42, new TestHyperlink[]{new TestHyperlink(ObserverMethodListHyperlink.class, CDIExtensionsMessages.CDI_EVENT_LIST_HYPERLINK_OPEN_OBSERVER_METHODS, elementPaths)}));
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/event/bindingTypes/EventEmitter.java", regionList, new EventAndObserverMethodHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/event/bindingTypes/EventEmitter.java", regionList, new EventAndObserverMethodHyperlinkDetector());
}
public void testObserverMethodHyperlinkDetector() throws Exception {
@@ -65,7 +68,7 @@
regionList.add(new TestRegion(1232, 9, new TestHyperlink[]{new TestHyperlink(EventListHyperlink.class, CDIExtensionsMessages.CDI_EVENT_LIST_HYPERLINK_OPEN_EVENTS, elementPaths)}));
regionList.add(new TestRegion(1264, 18, new TestHyperlink[]{new TestHyperlink(EventListHyperlink.class, CDIExtensionsMessages.CDI_EVENT_LIST_HYPERLINK_OPEN_EVENTS, elementPaths)}));
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/event/observer/checkedException/TeaCupPomeranian.java", regionList, new EventAndObserverMethodHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/event/observer/checkedException/TeaCupPomeranian.java", regionList, new EventAndObserverMethodHyperlinkDetector());
}
}
\ No newline at end of file
Deleted: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -1,378 +0,0 @@
-package org.jboss.tools.cdi.text.ext.test;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
-import org.eclipse.jdt.internal.ui.text.JavaWordFinder;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.texteditor.DocumentProviderRegistry;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart;
-import org.jboss.tools.cdi.core.ICDIElement;
-import org.jboss.tools.cdi.core.test.tck.TCKTest;
-import org.jboss.tools.cdi.text.ext.hyperlink.ITestableCDIHyperlink;
-import org.jboss.tools.common.editor.ObjectMultiPageEditor;
-import org.jboss.tools.common.model.ui.editor.EditorPartWrapper;
-import org.jboss.tools.common.text.ext.hyperlink.HyperlinkDetector;
-import org.jboss.tools.common.text.ext.hyperlink.IHyperlinkRegion;
-import org.jboss.tools.common.text.ext.util.AxisUtil;
-
-public class HyperlinkDetectorTest extends TCKTest {
- protected void checkRegions(String fileName, List<TestRegion> regionList, AbstractHyperlinkDetector elPartitioner) throws Exception {
- IFile file = tckProject.getFile(fileName);
-
- assertNotNull("The file \"" + fileName + "\" is not found", file);
- assertTrue("The file \"" + fileName + "\" is not found", file.isAccessible());
-
- FileEditorInput editorInput = new FileEditorInput(file);
-
- IDocumentProvider documentProvider = null;
- try {
- documentProvider = DocumentProviderRegistry.getDefault().getDocumentProvider(editorInput);
- } catch (Exception x) {
- x.printStackTrace();
- fail("An exception caught: " + x.getMessage());
- }
-
- assertNotNull("The document provider for the file \"" + fileName + "\" is not loaded", documentProvider);
-
- try {
- documentProvider.connect(editorInput);
- } catch (Exception x) {
- x.printStackTrace();
- fail("The document provider is not able to be initialized with the editor input\nAn exception caught: "+x.getMessage());
- }
-
- IDocument document = documentProvider.getDocument(editorInput);
-
- assertNotNull("The document for the file \"" + fileName + "\" is not loaded", document);
-
- int expected = 0;
- for(TestRegion testRegion : regionList)
- expected += testRegion.region.getLength()+1;
-
- IEditorPart part = openFileInEditor(file);
- ISourceViewer viewer = null;
- if(part instanceof JavaEditor){
- viewer = ((JavaEditor)part).getViewer();
- }
-
- elPartitioner.setContext(new TestContext((ITextEditor)part));
-
- int counter = 0;
- for (int i = 0; i < document.getLength(); i++) {
- TestData testData = new TestData(document, i);
- IHyperlink[] links = elPartitioner.detectHyperlinks(viewer, testData.getHyperlinkRegion(), true);
-
- boolean recognized = links != null;
-
- if (recognized) {
- counter++;
- TestRegion testRegion = findOffsetInRegions(i, regionList);
- if(testRegion == null){
- fail("Wrong detection for offset - "+i);
- }else{
- checkTestRegion(links, testRegion);
- }
- } else {
- for(TestRegion testRegion : regionList){
- if(i >= testRegion.region.getOffset() && i <= testRegion.region.getOffset()+testRegion.region.getLength()) {
- int line = document.getLineOfOffset(testRegion.region.getOffset());
- fail("Wrong detection for region - "+testRegion.region.getOffset()+" : "+testRegion.region.getLength()+" region - "+i);
- }
- }
- }
- }
-
- assertEquals("Wrong recognized region count: ", expected, counter);
-
- documentProvider.disconnect(editorInput);
- }
-
- protected void checkTestRegion(IHyperlink[] links, TestRegion testRegion){
- for(IHyperlink link : links){
- TestHyperlink testLink = findTestHyperlink(testRegion.hyperlinks, link);
- assertNotNull("Unexpected hyperlink - "+link.getHyperlinkText(), testLink);
- assertEquals("Unexpected hyperlink type", testLink.hyperlink, link.getClass());
- assertTrue("Validation fails for hyperlink - "+link.getHyperlinkText(), testLink.validateHyperlink(link));
- }
-
- for(TestHyperlink testLink : testRegion.hyperlinks){
- IHyperlink link = findHyperlink(links, testLink);
- assertNotNull("Hyperlink - "+testLink.name+" not found", link);
- }
- }
-
- protected TestHyperlink findTestHyperlink(List<TestHyperlink> testHyperlinks, IHyperlink link){
- for(TestHyperlink testLink : testHyperlinks){
- if(testLink.name.equals(link.getHyperlinkText()))
- return testLink;
- }
- return null;
- }
-
- protected IHyperlink findHyperlink(IHyperlink[] links, TestHyperlink testLink){
- for(IHyperlink link : links){
- if(testLink.name.equals(link.getHyperlinkText()))
- return link;
- }
- return null;
- }
-
- protected void checkHyperLinkInXml(String fileName, int offset, String hyperlinkClassName) throws Exception {
- checkHyperLinkInXml(fileName, tckProject, offset, hyperlinkClassName);
- }
-
- public static IHyperlink checkHyperLinkInXml(String fileName, IProject project, int offset, String hyperlinkClassName) throws Exception {
- Region region = new Region(offset, 0);
- IFile file = project.getFile(fileName);
-
- assertNotNull("The file \"" + fileName + "\" is not found", file);
- assertTrue("The file \"" + fileName + "\" is not found", file.isAccessible());
-
- FileEditorInput editorInput = new FileEditorInput(file);
-
- IEditorPart part = openFileInEditor(file);
- if(part instanceof EditorPartWrapper) part = ((EditorPartWrapper)part).getEditor();
- ISourceViewer viewer = null;
- if (part instanceof XMLMultiPageEditorPart) {
- IEditorPart[] parts = ((XMLMultiPageEditorPart)part).findEditors(editorInput);
- if(parts.length>0) {
- viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
- }
- } else if(part instanceof ObjectMultiPageEditor) {
- viewer = ((ObjectMultiPageEditor)part).getSourceEditor().getTextViewer();
- } else if(part instanceof StructuredTextEditor) {
- viewer = ((StructuredTextEditor)part).getTextViewer();
- }
-
- IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, region, true);
- if(links!=null) {
- for (IHyperlink hyperlink : links) {
- if(hyperlink.getClass().getName().equals(hyperlinkClassName)) {
- return hyperlink;
- }
- }
- }
- fail("Can't find HyperLink");
- return null;
- }
-
- protected TestRegion findOffsetInRegions(int offset, List<TestRegion> regionList){
- for(TestRegion testRegion : regionList){
- if(offset >= testRegion.region.getOffset() && offset <= testRegion.region.getOffset()+testRegion.region.getLength())
- return testRegion;
- }
- return null;
- }
-
- public static IEditorPart openFileInEditor(IFile input) {
- return openFileInEditor(input, null);
- }
-
- public static IEditorPart openFileInEditor(IFile input, String id) {
- if (input != null && input.exists()) {
- try {
- if(id==null) {
- IWorkbenchPage page = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
- return IDE.openEditor(page, input, true);
- } else {
- IWorkbenchPage page = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
- return IDE.openEditor(page, input, id, true);
- }
- } catch (PartInitException pie) {
- pie.printStackTrace();
- fail(pie.getMessage());
- }
- }
- return null;
- }
-
- class TestData {
- IDocument document;
- int offset;
- IRegion region;
- String contentType;
- private IHyperlinkRegion hyperlinkRegion = null;
-
- TestData (IDocument document, int offset) {
- this.document = document;
- this.offset = offset;
- init();
- }
-
- private void init() {
- this.region = getDocumentRegion();
- this.contentType = getContentType();
- this.hyperlinkRegion = getHyperlinkRegion();
- }
-
- private IRegion getDocumentRegion() {
- IRegion region = null;
- try {
- region = JavaWordFinder.findWord(document, offset);
- } catch (Exception x) {
- x.printStackTrace();
- fail(x.getMessage());
- }
-
- return region;
- }
-
- public IHyperlinkRegion getHyperlinkRegion() {
- if (hyperlinkRegion != null)
- return hyperlinkRegion;
-
- return new IHyperlinkRegion() {
- public String getAxis() {
- return AxisUtil.getAxis(document, region.getOffset());
- }
- public String getContentType() {
- return contentType;
- }
- public String getType() {
- return region.toString();
- }
- public int getLength() {
- return region.getLength();
- }
- public int getOffset() {
- return region.getOffset();
- }
- public String toString() {
- return "[" + getOffset() + "-" + (getOffset() + getLength() - 1) + ":" + getType() + ":" + getContentType() + "]";
- }
- };
- }
-
- /**
- * Returns the content type of document
- *
- * @param document -
- * assumes document is not null
- * @return String content type of given document
- */
- private String getContentType() {
- String type = null;
-
- IModelManager mgr = StructuredModelManager.getModelManager();
- IStructuredModel model = null;
- try {
- model = mgr.getExistingModelForRead(document);
- if (model != null) {
- type = model.getContentTypeIdentifier();
- }
- } finally {
- if (model != null) {
- model.releaseFromRead();
- }
- }
- return type;
- }
- }
-
- class TestContext implements IAdaptable{
- ITextEditor editor;
-
- public TestContext(ITextEditor editor){
- this.editor = editor;
- }
-
- public Object getAdapter(Class adapter) {
- if(adapter.equals(ITextEditor.class))
- return editor;
- return null;
- }
- }
-
- public class TestRegion{
- Region region;
- ArrayList<TestHyperlink> hyperlinks = new ArrayList<TestHyperlink>();
-
- public TestRegion(int offset, int length, TestHyperlink[] testHyperlinks){
- region = new Region(offset, length);
- for(TestHyperlink testHyperlink : testHyperlinks){
- hyperlinks.add(testHyperlink);
- }
- }
- }
-
- public class TestHyperlink{
- Class<? extends IHyperlink> hyperlink;
- ICDIElement element = null;
- String[] elementPaths = null;
- String name;
-
- public TestHyperlink(Class<? extends IHyperlink> hyperlink, String name){
- this.hyperlink = hyperlink;
- this.name = name;
- }
-
- public TestHyperlink(Class<? extends IHyperlink> hyperlink, String name, ICDIElement element){
- this(hyperlink, name);
- this.element = element;
- }
-
- public TestHyperlink(Class<? extends IHyperlink> hyperlink, String name, String[] elementPaths){
- this(hyperlink, name);
- this.elementPaths = elementPaths;
- }
-
- public boolean validateHyperlink(IHyperlink hyperlink){
- if(hyperlink instanceof ITestableCDIHyperlink && ((ITestableCDIHyperlink)hyperlink).getCDIElement() != null && element != null){
- assertEquals(element, ((ITestableCDIHyperlink)hyperlink).getCDIElement());
- }else if(hyperlink instanceof ITestableCDIHyperlink && ((ITestableCDIHyperlink)hyperlink).getCDIElements() != null && elementPaths != null){
- for(ICDIElement element : ((ITestableCDIHyperlink)hyperlink).getCDIElements()){
- String elementPath = findElementPath(elementPaths, element);
- assertNotNull("Unexpected CDI element - "+element.getSourcePath().toString(), elementPath);
- }
-
- for(String elementPath : elementPaths){
- ICDIElement element = findCDIElement(((ITestableCDIHyperlink)hyperlink).getCDIElements(), elementPath);
- assertNotNull("CDI element - "+elementPath+" not found", element);
- }
- }
- return true;
- }
-
- protected String findElementPath(String[] elementPaths, ICDIElement element){
- for(String elementPath : elementPaths){
- if(elementPath.equals(element.getSourcePath().toString()))
- return elementPath;
- }
- return null;
- }
-
- protected ICDIElement findCDIElement(Set<? extends ICDIElement> elements, String elementPath){
- for(ICDIElement element : elements){
- if(elementPath.equals(element.getSourcePath().toString()))
- return element;
- }
- return null;
- }
-
- }
-}
\ No newline at end of file
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/InjectedPointHyperlinkDetectorTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/InjectedPointHyperlinkDetectorTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/InjectedPointHyperlinkDetectorTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -5,15 +5,17 @@
import org.eclipse.core.resources.IFile;
import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
import org.jboss.tools.cdi.text.ext.hyperlink.AlternativeInjectedPointListHyperlink;
import org.jboss.tools.cdi.text.ext.hyperlink.InjectedPointHyperlink;
import org.jboss.tools.cdi.text.ext.hyperlink.InjectedPointHyperlinkDetector;
-import org.jboss.tools.cdi.text.ext.test.HyperlinkDetectorTest.TestRegion;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestRegion;
import org.jboss.tools.common.util.FileUtil;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestHyperlink;
-public class InjectedPointHyperlinkDetectorTest extends HyperlinkDetectorTest {
+public class InjectedPointHyperlinkDetectorTest extends TCKTest {
public void testInjectedPointHyperlinkDetector() throws Exception {
Set<IBean> beans = cdiProject.getBeans("/tck/JavaSource/org/jboss/jsr299/tck/tests/lookup/injectionpoint/BasicLogger.java", true);
@@ -43,7 +45,7 @@
new TestHyperlink(AlternativeInjectedPointListHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_SHOW_ALTERNATIVES)
})); // logger
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/lookup/injectionpoint/LoggerConsumer.java", regionList, new InjectedPointHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/lookup/injectionpoint/LoggerConsumer.java", regionList, new InjectedPointHyperlinkDetector());
}
public void testInjectedProducerMethodParametersHyperlinkDetector() throws Exception {
@@ -62,7 +64,7 @@
new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " CustomProducerImpl.produce()", bean)
})); // order
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/CustomProducerImpl.java", regionList, new InjectedPointHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/CustomProducerImpl.java", regionList, new InjectedPointHyperlinkDetector());
}
public void testInjectedConstructorParametersHyperlinkDetector() throws Exception {
@@ -79,7 +81,7 @@
regionList.add(new TestRegion(979, 3, new TestHyperlink[]{new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " Fox", bean)}));
regionList.add(new TestRegion(1017, 3, new TestHyperlink[]{new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " Fox", bean)}));
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/context/dependent/FoxFarm.java", regionList, new InjectedPointHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/context/dependent/FoxFarm.java", regionList, new InjectedPointHyperlinkDetector());
}
public void testInjectedInitializerParametersHyperlinkDetector() throws Exception {
@@ -96,7 +98,7 @@
regionList.add(new TestRegion(976, 3, new TestHyperlink[]{new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " Fox", bean)}));
regionList.add(new TestRegion(1014, 3, new TestHyperlink[]{new TestHyperlink(InjectedPointHyperlink.class, CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+ " Fox", bean)}));
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/context/dependent/FoxHole.java", regionList, new InjectedPointHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/context/dependent/FoxHole.java", regionList, new InjectedPointHyperlinkDetector());
}
}
\ No newline at end of file
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/ProducerDisposerHyperlinkDetectorTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/ProducerDisposerHyperlinkDetectorTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/ProducerDisposerHyperlinkDetectorTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -2,12 +2,15 @@
import java.util.ArrayList;
+import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
import org.jboss.tools.cdi.text.ext.hyperlink.DisposerHyperlink;
import org.jboss.tools.cdi.text.ext.hyperlink.ProducerDisposerHyperlinkDetector;
import org.jboss.tools.cdi.text.ext.hyperlink.ProducerHyperlink;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestHyperlink;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestRegion;
-public class ProducerDisposerHyperlinkDetectorTest extends HyperlinkDetectorTest {
+public class ProducerDisposerHyperlinkDetectorTest extends TCKTest {
public void testProducerDisposerHyperlinkDetector() throws Exception {
ArrayList<TestRegion> regionList = new ArrayList<TestRegion>();
@@ -15,6 +18,6 @@
regionList.add(new TestRegion(1222, 7, new TestHyperlink[]{new TestHyperlink(DisposerHyperlink.class, CDIExtensionsMessages.CDI_PRODUCER_DISPOSER_HYPERLINK_OPEN_BOUND_DISPOSER+ " dispose")})); // producer
regionList.add(new TestRegion(1291, 7, new TestHyperlink[]{new TestHyperlink(ProducerHyperlink.class, CDIExtensionsMessages.CDI_PRODUCER_DISPOSER_HYPERLINK_OPEN_BOUND_PRODUCER+ " produce")})); // disposer
- checkRegions("JavaSource/org/jboss/jsr299/tck/tests/decorators/invocation/producer/method/ProducerImpl.java", regionList, new ProducerDisposerHyperlinkDetector());
+ CDIHyperlinkTestUtil.checkRegions(tckProject, "JavaSource/org/jboss/jsr299/tck/tests/decorators/invocation/producer/method/ProducerImpl.java", regionList, new ProducerDisposerHyperlinkDetector());
}
}
\ No newline at end of file
Modified: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/search/CDISearchParticipantTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/search/CDISearchParticipantTest.java 2011-06-10 00:23:02 UTC (rev 31997)
+++ trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/search/CDISearchParticipantTest.java 2011-06-10 00:59:29 UTC (rev 31998)
@@ -19,6 +19,7 @@
import org.eclipse.jdt.ui.search.ISearchRequestor;
import org.eclipse.jdt.ui.search.QuerySpecification;
import org.eclipse.search.ui.text.Match;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.ICDIElement;
import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.internal.core.impl.ClassBean;
@@ -26,7 +27,6 @@
import org.jboss.tools.cdi.internal.core.impl.InjectionPointField;
import org.jboss.tools.cdi.internal.core.impl.InjectionPointParameter;
import org.jboss.tools.cdi.internal.core.impl.ObserverMethod;
-import org.jboss.tools.cdi.ui.marker.MarkerResolutionUtils;
import org.jboss.tools.cdi.ui.search.CDIBeanQueryParticipant;
import org.jboss.tools.cdi.ui.search.CDIMatch;
import org.jboss.tools.cdi.ui.search.InjectionPointQueryParticipant;
@@ -55,7 +55,7 @@
element = type;
}else if(searchType == PARAMETER_SEARCH){
IMethod method = getMethod(type, elementName);
- element = MarkerResolutionUtils.getParameter(method, parameterName);
+ element = CDIUtil.getParameter(method, parameterName);
}
if(element != null){
14 years, 10 months
JBoss Tools SVN: r31997 - in trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal: scanner and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-06-09 20:23:02 -0400 (Thu, 09 Jun 2011)
New Revision: 31997
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java
Log:
JBIDE-9088
https://issues.jboss.org/browse/JBIDE-9088
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java 2011-06-09 23:19:41 UTC (rev 31996)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java 2011-06-10 00:23:02 UTC (rev 31997)
@@ -2,6 +2,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -152,14 +153,18 @@
if (jsf2resourcesFolder == null || jsf2resourcesProcessed) return;
jsf2resourcesProcessed = true;
JSF2ResourcesScanner scanner = new JSF2ResourcesScanner();
- LoadedDeclarations c = null;
+ Map<IPath,LoadedDeclarations> result = null;
try {
- c = scanner.parse((IFolder) jsf2resourcesFolder, p);
+ result = scanner.parse((IFolder) jsf2resourcesFolder, p);
} catch (ScannerException e) {
WebKbPlugin.getDefault().logError(e);
}
- if (c != null)
- componentsLoaded(c, jsf2resourcesFolder);
+ if (result != null) {
+ for (IPath path: result.keySet()) {
+ LoadedDeclarations c = result.get(path);
+ p.registerComponents(c, path);
+ }
+ }
}
void componentsLoaded(LoadedDeclarations c, IResource resource) {
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java 2011-06-09 23:19:41 UTC (rev 31996)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java 2011-06-10 00:23:02 UTC (rev 31997)
@@ -1,5 +1,8 @@
package org.jboss.tools.jst.web.kb.internal.scanner;
+import java.util.HashMap;
+import java.util.Map;
+
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -54,29 +57,34 @@
return null;
}
- public LoadedDeclarations parse(IFolder f, IKbProject sp) throws ScannerException {
+ public Map<IPath, LoadedDeclarations> parse(IFolder f, IKbProject sp) throws ScannerException {
XModel model = InnerModelHelper.createXModel(f.getProject());
if(model == null) return null;
XModelObject o = EclipseResourceUtil.getObjectByResource(model, f);
- return parse(o, f.getFullPath(), sp);
+ return parse(o, f.getFullPath(), sp, false);
}
//XModelObject must represent folder named 'resources' under web root.
- public LoadedDeclarations parse(XModelObject o, IPath source, IKbProject sp) {
+ public Map<IPath, LoadedDeclarations> parse(XModelObject o, IPath source, IKbProject sp, boolean lib) {
if(o == null) return null;
-
- LoadedDeclarations ds = new LoadedDeclarations();
- processFolder(o, ds, source, URI_PREFIX);
- return ds;
+ Map<IPath, LoadedDeclarations> result = new HashMap<IPath, LoadedDeclarations>();
+ processFolder(o, result, source, URI_PREFIX, lib);
+ return result;
}
- void processFolder(XModelObject o, LoadedDeclarations ds, IPath source, String uriPrefix) {
+ void processFolder(XModelObject o, Map<IPath, LoadedDeclarations> result, IPath source, String uriPrefix, boolean lib) {
+ LoadedDeclarations ds = result.get(source);
+ if(ds == null) {
+ ds = new LoadedDeclarations();
+ result.put(source, ds);
+ }
CompositeTagLibrary library = null;
XModelObject[] cs = o.getChildren();
for (XModelObject c: cs) {
if(c.getFileType() == XModelObject.FOLDER) {
String n = c.getAttributeValue(XModelObjectConstants.ATTR_NAME);
- processFolder(c, ds, source, uriPrefix + "/" + n); //$NON-NLS-1$
+ IPath source1 = lib ? source : source.append(n);
+ processFolder(c, result, source1, uriPrefix + "/" + n, lib); //$NON-NLS-1$
}
String entity = c.getModelEntity().getName();
if(ENT_COMPOSITE_COMPONENT.equals(entity)) {
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java 2011-06-09 23:19:41 UTC (rev 31996)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java 2011-06-10 00:23:02 UTC (rev 31997)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.internal.scanner;
+import java.util.Map;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
import org.jboss.tools.common.model.XModel;
@@ -96,8 +98,8 @@
}
if(tld.getFileType() == XModelObject.FOLDER && tld.getAttributeValue(XModelObjectConstants.ATTR_NAME).equals("resources")) { //$NON-NLS-1$
JSF2ResourcesScanner s = new JSF2ResourcesScanner();
- LoadedDeclarations ds1 = s.parse(tld, path, sp);
- if(ds1 != null) ds.add(ds1);
+ Map<IPath,LoadedDeclarations> ds1 = s.parse(tld, path, sp, true);
+ if(ds1 != null && ds1.size() > 0) ds.add(ds1.values().iterator().next());
} else if(isMyFacesMetadata(tld)) {
MyFacesScanner s = new MyFacesScanner();
LoadedDeclarations ds1 = s.parse(tld, path, sp);
14 years, 10 months
JBoss Tools SVN: r31996 - in trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test: src/org/jboss/tools/cdi/seam/solder/core/test and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-06-09 19:19:41 -0400 (Thu, 09 Jun 2011)
New Revision: 31996
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic2/DurableQueueConfiguration.wrongtype
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java
Log:
JBIDE-8695
https://issues.jboss.org/browse/JBIDE-8695
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic2/DurableQueueConfiguration.wrongtype
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic2/DurableQueueConfiguration.wrongtype (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic2/DurableQueueConfiguration.wrongtype 2011-06-09 23:19:41 UTC (rev 31996)
@@ -0,0 +1,17 @@
+package org.jboss.generic2;
+
+import javax.enterprise.context.ConversationScoped;
+
+import org.jboss.seam.solder.core.Veto;
+
+//@Veto
+@Durable
+@ConversationScoped
+@ACMEQueue("durableQueue")
+public class DurableQueueConfiguration extends Object {
+
+ public DurableQueueConfiguration() {
+// super(null);
+ this.durable = true;
+ }
+}
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanTest.java 2011-06-09 23:18:45 UTC (rev 31995)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanTest.java 2011-06-09 23:19:41 UTC (rev 31996)
@@ -10,17 +10,13 @@
******************************************************************************/
package org.jboss.tools.cdi.seam.solder.core.test;
-import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IType;
import org.jboss.tools.cdi.core.CDICorePlugin;
import org.jboss.tools.cdi.core.IBean;
@@ -32,9 +28,6 @@
import org.jboss.tools.cdi.core.IProducerMethod;
import org.jboss.tools.cdi.seam.solder.core.generic.GenericBeanProducerMethod;
import org.jboss.tools.cdi.seam.solder.core.generic.GenericClassBean;
-import org.jboss.tools.common.util.FileUtil;
-import org.jboss.tools.test.util.JobUtils;
-import org.jboss.tools.test.util.ResourcesUtils;
/**
*
@@ -224,7 +217,7 @@
* Replace DurableQueueConfiguration.java with vetoed version.
* After that there are only 2 configurations.
*/
- replaceFile("src/org/jboss/generic2/DurableQueueConfiguration.vetoed",
+ replaceFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.vetoed",
"src/org/jboss/generic2/DurableQueueConfiguration.java");
beanToBeVetoed = null;
@@ -248,7 +241,7 @@
* Set original DurableQueueConfiguration.java back.
* Make sure that there are again 3 configurations.
*/
- replaceFile("src/org/jboss/generic2/DurableQueueConfiguration.original",
+ replaceFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.original",
"src/org/jboss/generic2/DurableQueueConfiguration.java");
beanToBeVetoed = null;
@@ -270,22 +263,8 @@
assertNotNull(beanToBeVetoed);
}
- void replaceFile(String sourcePath, String targetPath) throws CoreException {
- boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
- JobUtils.waitForIdle();
- try {
- IFile target = project.getFile(new Path(targetPath));
- assertTrue(target.exists());
- IFile source = project.getFile(new Path(sourcePath));
- assertTrue(target.exists());
- target.setContents(source.getContents(), true, false, new NullProgressMonitor());
- JobUtils.waitForIdle();
- project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
- JobUtils.waitForIdle();
- } finally {
- ResourcesUtils.setBuildAutomatically(saveAutoBuild);
- JobUtils.waitForIdle();
- }
+ static void replaceFile(IProject project, String sourcePath, String targetPath) throws CoreException {
+ GenericBeanValidationTest.writeFile(project, sourcePath, targetPath);
}
}
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java 2011-06-09 23:18:45 UTC (rev 31995)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java 2011-06-09 23:19:41 UTC (rev 31996)
@@ -11,11 +11,13 @@
package org.jboss.tools.cdi.seam.solder.core.test;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
+import org.jboss.tools.cdi.seam.solder.core.validation.SeamSolderValidationMessages;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ResourcesUtils;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
@@ -52,7 +54,7 @@
* Set original DurableQueueConfiguration.java back.
* After that there are only 2 configurations, with different qualifiers.
*/
- writeFile("src/org/jboss/generic2/DurableQueueConfiguration.original",
+ writeFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.original",
"src/org/jboss/generic2/DurableQueueConfiguration.java");
AbstractResourceMarkerTest.assertMarkerIsCreated(file, CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS + ".*", 15);
@@ -74,7 +76,7 @@
* Replace DurableQueueConfiguration.java with not generic version.
* After that there are only 2 configurations.
*/
- writeFile("src/org/jboss/generic2/DurableQueueConfiguration.notgeneric",
+ writeFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.notgeneric",
"src/org/jboss/generic2/DurableQueueConfiguration.java");
AbstractResourceMarkerTest.assertMarkerIsNotCreated(file, CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS + ".*");
@@ -83,13 +85,41 @@
* Set original DurableQueueConfiguration.java back.
* Assert that MessageLogger again has error marker.
*/
- writeFile("src/org/jboss/generic2/DurableQueueConfiguration.original",
+ writeFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.original",
"src/org/jboss/generic2/DurableQueueConfiguration.java");
AbstractResourceMarkerTest.assertMarkerIsCreated(file, CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS + ".*", 15);
}
- void writeFile(String sourcePath, String targetPath) throws CoreException {
+ public void testWrongTypeOfGenericPointConfiguration() throws CoreException {
+ /*
+ * Generic configuration point DurableQueueConfiguration has correct type.
+ */
+ IFile file = project.getFile(new Path("src/org/jboss/generic2/DurableQueueConfiguration.java"));
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file, SeamSolderValidationMessages.WRONG_TYPE_OF_GENERIC_CONFIGURATION_POINT + ".*");
+
+
+ /*
+ * Remove DurableQueueConfiguration.java with vetoed version.
+ * Generic configuration point DurableQueueConfiguration has incorrect type.
+ */
+ writeFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.wrongtype",
+ "src/org/jboss/generic2/DurableQueueConfiguration.java");
+
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file, SeamSolderValidationMessages.WRONG_TYPE_OF_GENERIC_CONFIGURATION_POINT + ".*", 11);
+
+ /*
+ * Set original DurableQueueConfiguration.java back.
+ * Generic configuration point DurableQueueConfiguration has correct type.
+ */
+ writeFile(project, "src/org/jboss/generic2/DurableQueueConfiguration.original",
+ "src/org/jboss/generic2/DurableQueueConfiguration.java");
+
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file, SeamSolderValidationMessages.WRONG_TYPE_OF_GENERIC_CONFIGURATION_POINT + ".*");
+ }
+
+
+ static void writeFile(IProject project, String sourcePath, String targetPath) throws CoreException {
boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
JobUtils.waitForIdle();
try {
14 years, 10 months
JBoss Tools SVN: r31995 - trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/META-INF.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-06-09 19:18:45 -0400 (Thu, 09 Jun 2011)
New Revision: 31995
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/META-INF/MANIFEST.MF
Log:
JBIDE-8695
https://issues.jboss.org/browse/JBIDE-8695
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/META-INF/MANIFEST.MF 2011-06-09 22:47:21 UTC (rev 31994)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/META-INF/MANIFEST.MF 2011-06-09 23:18:45 UTC (rev 31995)
@@ -29,5 +29,6 @@
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Vendor: JBoss by Red Hat
Export-Package: org.jboss.tools.cdi.seam.solder.core,
- org.jboss.tools.cdi.seam.solder.core.generic
+ org.jboss.tools.cdi.seam.solder.core.generic,
+ org.jboss.tools.cdi.seam.solder.core.validation
14 years, 10 months
JBoss Tools SVN: r31994 - trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-06-09 18:47:21 -0400 (Thu, 09 Jun 2011)
New Revision: 31994
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointListHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java
Log:
JBIDE-9110
https://issues.jboss.org/browse/JBIDE-9110
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlink.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlink.java 2011-06-09 22:41:08 UTC (rev 31993)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlink.java 2011-06-09 22:47:21 UTC (rev 31994)
@@ -21,8 +21,8 @@
public class GenericInjectedPointHyperlink extends InjectedPointHyperlink {
- public GenericInjectedPointHyperlink(IRegion region, IBean bean, IDocument document, boolean b) {
- super(region, bean, document, b);
+ public GenericInjectedPointHyperlink(IRegion region, IBean bean, IDocument document) {
+ super(region, bean, document);
}
@Override
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java 2011-06-09 22:41:08 UTC (rev 31993)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java 2011-06-09 22:47:21 UTC (rev 31994)
@@ -168,7 +168,7 @@
List<IBean> resultBeanList = CDIUtil.sortBeans(resultBeanSet2);
if(resultBeanList.size() == 1) {
- hyperlinks.add(new GenericInjectedPointHyperlink(region, resultBeanList.get(0), document, true));
+ hyperlinks.add(new GenericInjectedPointHyperlink(region, resultBeanList.get(0), document));
} else if(resultBeanList.size() > 0) {
hyperlinks.add(new GenericInjectedPointListHyperlink(region, resultBeanList, viewer, document));
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointListHyperlink.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointListHyperlink.java 2011-06-09 22:41:08 UTC (rev 31993)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointListHyperlink.java 2011-06-09 22:47:21 UTC (rev 31994)
@@ -35,7 +35,7 @@
@Override
protected IHyperlink createHyperlink(IRegion region, IBean bean) {
- return new GenericInjectedPointHyperlink(region, bean, getDocument(), false);
+ return new GenericInjectedPointHyperlink(region, bean, getDocument());
}
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java 2011-06-09 22:41:08 UTC (rev 31993)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java 2011-06-09 22:47:21 UTC (rev 31994)
@@ -37,8 +37,8 @@
public class SeamConfigInjectedPointHyperlink extends InjectedPointHyperlink {
- public SeamConfigInjectedPointHyperlink(IRegion region, IBean bean, IDocument document, boolean b) {
- super(region, bean, document, b);
+ public SeamConfigInjectedPointHyperlink(IRegion region, IBean bean, IDocument document) {
+ super(region, bean, document);
}
protected void doHyperlink(IRegion region) {
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java 2011-06-09 22:41:08 UTC (rev 31993)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java 2011-06-09 22:47:21 UTC (rev 31994)
@@ -63,7 +63,7 @@
List<IBean> resultBeanList = CDIUtil.sortBeans(resultBeanSet2);
if(resultBeanList.size() == 1) {
- hyperlinks.add(new SeamConfigInjectedPointHyperlink(region, resultBeanList.get(0), document, true));
+ hyperlinks.add(new SeamConfigInjectedPointHyperlink(region, resultBeanList.get(0), document));
} else if(resultBeanList.size() > 0) {
hyperlinks.add(new SeamConfigInjectedPointListHyperlink(region, resultBeanList, viewer, document));
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java 2011-06-09 22:41:08 UTC (rev 31993)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java 2011-06-09 22:47:21 UTC (rev 31994)
@@ -35,7 +35,7 @@
@Override
protected IHyperlink createHyperlink(IRegion region, IBean bean) {
- return new SeamConfigInjectedPointHyperlink(region, bean, getDocument(), false);
+ return new SeamConfigInjectedPointHyperlink(region, bean, getDocument());
}
}
14 years, 10 months
JBoss Tools SVN: r31993 - in trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext: META-INF and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-06-09 18:41:08 -0400 (Thu, 09 Jun 2011)
New Revision: 31993
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/META-INF/MANIFEST.MF
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.properties
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.xml
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/CDISeamExtMessages.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/messages.properties
Log:
JBIDE-9110
https://issues.jboss.org/browse/JBIDE-9110
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/META-INF/MANIFEST.MF 2011-06-09 22:36:21 UTC (rev 31992)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/META-INF/MANIFEST.MF 2011-06-09 22:41:08 UTC (rev 31993)
@@ -13,6 +13,8 @@
org.jboss.tools.common.text.ext;bundle-version="2.0.0",
org.eclipse.jface.text;bundle-version="3.7.0",
org.eclipse.jdt.ui;bundle-version="3.7.0",
+ org.eclipse.ui.ide,
+ org.jboss.tools.common.model.ui,
org.jboss.tools.cdi.ui;bundle-version="1.2.0",
org.jboss.tools.cdi.core,
org.jboss.tools.cdi.text.ext,
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.properties
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.properties 2011-06-09 22:36:21 UTC (rev 31992)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.properties 2011-06-09 22:41:08 UTC (rev 31993)
@@ -1,3 +1,4 @@
providerName=JBoss by Red Hat
Bundle-Name.0 = CDI Seam Text Editors Extensions
GenericInjectedPointHyperlinkDetector = CDI Seam Generic Injected Point
+SeamConfigInjectedPointHyperlinkDetector = CDI Seam Config Injected Beans
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.xml
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.xml 2011-06-09 22:36:21 UTC (rev 31992)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/plugin.xml 2011-06-09 22:41:08 UTC (rev 31993)
@@ -23,6 +23,16 @@
</hyperlinkDetector>
</extension>
+ <extension
+ point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
+ <hyperlinkDetector
+ class="org.jboss.tools.cdi.seam.text.ext.hyperlink.SeamConfigInjectedPointHyperlinkDetector"
+ id="org.jboss.tools.cdi.seam.text.ext.hyperlink.SeamConfigInjectedPointHyperlinkDetector"
+ name="%SeamConfigInjectedPointHyperlinkDetector"
+ targetId="org.eclipse.jdt.ui.javaCode">
+ </hyperlinkDetector>
+ </extension>
+
<extension
point="org.jboss.tools.common.text.ext.hyperlinkPartitioner"
id="org.jboss.tools.cdi.text.ext.hyperlinkPartitioner"
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/CDISeamExtMessages.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/CDISeamExtMessages.java 2011-06-09 22:36:21 UTC (rev 31992)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/CDISeamExtMessages.java 2011-06-09 22:41:08 UTC (rev 31993)
@@ -23,6 +23,7 @@
public static String CDI_SEAM_CONFIG_OPEN_TAG;
public static String CDI_INJECTED_POINT_HYPERLINK_SHOW_GENERIC_BEANS;
+ public static String CDI_INJECTED_POINT_HYPERLINK_SHOW_SEAM_CONFIG_BEANS;
public static String OPEN_GENERIC_BEAN;
public static String OPEN_GENERIC_PRODUCER_BEAN;
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java 2011-06-09 22:36:21 UTC (rev 31992)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java 2011-06-09 22:41:08 UTC (rev 31993)
@@ -48,13 +48,11 @@
import org.jboss.tools.cdi.seam.solder.core.CDISeamSolderConstants;
import org.jboss.tools.cdi.seam.solder.core.generic.GenericClassBean;
import org.jboss.tools.cdi.text.ext.CDIExtensionsPlugin;
-import org.jboss.tools.cdi.text.ext.hyperlink.AlternativeInjectedPointListHyperlink;
-import org.jboss.tools.cdi.text.ext.hyperlink.InjectedPointHyperlink;
public class GenericInjectedPointHyperlinkDetector extends AbstractHyperlinkDetector{
- private IRegion region;
- private IDocument document;
- private ITextViewer viewer;
+ protected IRegion region;
+ protected IDocument document;
+ protected ITextViewer viewer;
public IHyperlink[] detectHyperlinks(ITextViewer textViewer,
IRegion region, boolean canShowMultipleHyperlinks) {
@@ -128,7 +126,7 @@
return null;
}
- private void findInjectedBeans(CDICoreNature nature, IJavaElement element, int offset, IFile file, ArrayList<IHyperlink> hyperlinks){
+ protected void findInjectedBeans(CDICoreNature nature, IJavaElement element, int offset, IFile file, ArrayList<IHyperlink> hyperlinks){
ICDIProject cdiProject = nature.getDelegate();
if(cdiProject == null) {
Added: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java 2011-06-09 22:41:08 UTC (rev 31993)
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.seam.text.ext.hyperlink;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IProducerField;
+import org.jboss.tools.cdi.core.IProducerMethod;
+import org.jboss.tools.cdi.internal.core.impl.AbstractBeanElement;
+import org.jboss.tools.cdi.seam.config.core.definition.IConfigDefinition;
+import org.jboss.tools.cdi.seam.text.ext.CDISeamExtMessages;
+import org.jboss.tools.cdi.seam.text.ext.CDISeamExtPlugin;
+import org.jboss.tools.cdi.text.ext.hyperlink.InjectedPointHyperlink;
+import org.jboss.tools.common.editor.ObjectMultiPageEditor;
+import org.jboss.tools.common.model.ui.editor.EditorPartWrapper;
+import org.jboss.tools.common.text.ITextSourceReference;
+
+public class SeamConfigInjectedPointHyperlink extends InjectedPointHyperlink {
+
+ public SeamConfigInjectedPointHyperlink(IRegion region, IBean bean, IDocument document, boolean b) {
+ super(region, bean, document, b);
+ }
+
+ protected void doHyperlink(IRegion region) {
+ IEditorPart part = null;
+ ITextSourceReference source = ((AbstractBeanElement)bean).getDefinition().getOriginalDefinition();
+ IFile resource = (IFile)source.getResource();
+ IWorkbenchWindow window = CDISeamExtPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
+ if (window == null) return;
+ IWorkbenchPage page = window.getActivePage();
+ try {
+ part = IDE.openEditor(page, resource);
+ } catch (PartInitException e) {
+ CDISeamExtPlugin.log(e);
+ }
+ if(part instanceof EditorPartWrapper) {
+ part = ((EditorPartWrapper)part).getEditor();
+ }
+ if(part instanceof ObjectMultiPageEditor) {
+ ObjectMultiPageEditor mpe = (ObjectMultiPageEditor)part;
+ ITextEditor textEditor = (ITextEditor)mpe.getAdapter(ITextEditor.class);
+ if(textEditor != null) {
+ mpe.setActiveEditor(textEditor);
+ part = textEditor;
+ }
+ }
+ if(part != null) {
+ part.getEditorSite().getSelectionProvider().setSelection(new TextSelection(source.getStartPosition(), source.getLength()));
+ }
+ }
+
+ @Override
+ public String getHyperlinkText() {
+ String text = super.getHyperlinkText();
+ IConfigDefinition configDef = (IConfigDefinition)((AbstractBeanElement)bean).getDefinition();
+ int line = configDef.getConfig().getNode().getLocation().getLine();
+ ITextSourceReference source = ((AbstractBeanElement)bean).getDefinition().getOriginalDefinition();
+ text += " in " + source.getResource().getName() + " at line " + line;
+ return text;
+ }
+
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlink.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java 2011-06-09 22:41:08 UTC (rev 31993)
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.seam.text.ext.hyperlink;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.jboss.tools.cdi.core.CDICoreNature;
+import org.jboss.tools.cdi.core.CDIUtil;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.internal.core.impl.AbstractBeanElement;
+import org.jboss.tools.cdi.internal.core.impl.definition.AbstractMemberDefinition;
+import org.jboss.tools.cdi.seam.config.core.definition.IConfigDefinition;
+import org.jboss.tools.common.text.ITextSourceReference;
+
+public class SeamConfigInjectedPointHyperlinkDetector extends GenericInjectedPointHyperlinkDetector {
+
+ protected void findInjectedBeans(CDICoreNature nature, IJavaElement element, int offset, IFile file, ArrayList<IHyperlink> hyperlinks){
+ ICDIProject cdiProject = nature.getDelegate();
+
+ if(cdiProject == null) {
+ return;
+ }
+
+ Set<IBean> beans = cdiProject.getBeans(file.getFullPath());
+
+ Set<IInjectionPoint> injectionPoints = GenericInjectedPointHyperlinkDetector.findInjectionPoints(beans, element, offset);
+ if(injectionPoints.isEmpty()) {
+ return;
+ }
+
+ Set<IBean> resultBeanSet2 = new HashSet<IBean>();
+
+ for (IInjectionPoint injectionPoint: injectionPoints) {
+ Set<IBean> resultBeanSet = cdiProject.getBeans(true, injectionPoint);
+ for (IBean b: resultBeanSet) {
+ if(b instanceof AbstractBeanElement) {
+ AbstractMemberDefinition def = ((AbstractBeanElement)b).getDefinition();
+ if(def instanceof IConfigDefinition) {
+ ITextSourceReference ref = def.getOriginalDefinition();
+ if(ref != null) {
+ resultBeanSet2.add(b);
+ }
+ }
+ }
+ }
+ }
+
+ List<IBean> resultBeanList = CDIUtil.sortBeans(resultBeanSet2);
+ if(resultBeanList.size() == 1) {
+ hyperlinks.add(new SeamConfigInjectedPointHyperlink(region, resultBeanList.get(0), document, true));
+ } else if(resultBeanList.size() > 0) {
+ hyperlinks.add(new SeamConfigInjectedPointListHyperlink(region, resultBeanList, viewer, document));
+ }
+ }
+
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointHyperlinkDetector.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java 2011-06-09 22:41:08 UTC (rev 31993)
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.seam.text.ext.hyperlink;
+
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.seam.text.ext.CDISeamExtMessages;
+import org.jboss.tools.cdi.text.ext.hyperlink.AlternativeInjectedPointListHyperlink;
+
+public class SeamConfigInjectedPointListHyperlink extends
+ AlternativeInjectedPointListHyperlink {
+
+ public SeamConfigInjectedPointListHyperlink(IRegion region, List<IBean> beans,
+ ITextViewer viewer, IDocument document) {
+ super(region, beans, viewer, document);
+ }
+
+ @Override
+ public String getHyperlinkText() {
+ return CDISeamExtMessages.CDI_INJECTED_POINT_HYPERLINK_SHOW_SEAM_CONFIG_BEANS;
+ }
+
+ @Override
+ protected IHyperlink createHyperlink(IRegion region, IBean bean) {
+ return new SeamConfigInjectedPointHyperlink(region, bean, getDocument(), false);
+ }
+
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigInjectedPointListHyperlink.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/messages.properties
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/messages.properties 2011-06-09 22:36:21 UTC (rev 31992)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/messages.properties 2011-06-09 22:41:08 UTC (rev 31993)
@@ -2,5 +2,6 @@
CDI_SEAM_RESOURCE_LOADING_HYPERLINK=Open Resource ''{0}''
CDI_SEAM_CONFIG_OPEN_TAG=Open Seam Config tag {0}
CDI_INJECTED_POINT_HYPERLINK_SHOW_GENERIC_BEANS=Show All Generic Beans...
+CDI_INJECTED_POINT_HYPERLINK_SHOW_SEAM_CONFIG_BEANS=Show All Seam Config Bean Definitions...
OPEN_GENERIC_BEAN=Open Generic Bean {0}
OPEN_GENERIC_PRODUCER_BEAN=Open Generic Producer Bean {0}
14 years, 10 months