JBoss Tools SVN: r24852 - trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-09-10 04:41:50 -0400 (Fri, 10 Sep 2010)
New Revision: 24852
Removed:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsMessages.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/messages.properties
Log:
[JBIDE-7034] extracted google analytics part to be independent from reporting
Deleted: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsMessages.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsMessages.java 2010-09-10 08:38:30 UTC (rev 24851)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsMessages.java 2010-09-10 08:41:50 UTC (rev 24852)
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.usage.googleanalytics;
-
-import org.eclipse.osgi.util.NLS;
-
-public class GoogleAnalyticsMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.jboss.tools.usage.googleanalytics.messages"; //$NON-NLS-1$
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, GoogleAnalyticsMessages.class);
- }
-
- private GoogleAnalyticsMessages() {
- }
-}
Deleted: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/messages.properties
===================================================================
15 years, 7 months
JBoss Tools SVN: r24851 - in trunk/usage: plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics and 4 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-09-10 04:38:30 -0400 (Fri, 10 Sep 2010)
New Revision: 24851
Added:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/EclipseUserAgent.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/GoogleAnalyticsEclipseMessages.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/messages.properties
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingEclipseEnvironment.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/ReportingEclipseEnvironmentFake.java
Removed:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java
Modified:
trunk/usage/plugins/org.jboss.tools.usage/META-INF/MANIFEST.MF
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingMessages.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/PreferencesUtils.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFakeSingleton.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/GoogleAnalyticsUrlStrategyTest.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java
Log:
[JBIDE-7034] extracted google analytics part to be independent from reporting
Modified: trunk/usage/plugins/org.jboss.tools.usage/META-INF/MANIFEST.MF
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/META-INF/MANIFEST.MF 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/META-INF/MANIFEST.MF 2010-09-10 08:38:30 UTC (rev 24851)
@@ -6,7 +6,8 @@
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package: org.jboss.tools.usage,
org.jboss.tools.usage.googleanalytics,
- org.jboss.tools.usage.preferences; x-friends:="org.jboss.tools.usage.test",
+ org.jboss.tools.usage.googleanalytics.eclipse,
+ org.jboss.tools.usage.preferences;x-friends:="org.jboss.tools.usage.test",
org.jboss.tools.usage.reporting;x-friends:="org.jboss.tools.usage.test",
org.jboss.tools.usage.util
Require-Bundle: org.eclipse.osgi;bundle-version="3.5.0",
Copied: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java (from rev 24848, trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java)
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.googleanalytics.eclipse;
+
+import java.util.Random;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.tools.usage.googleanalytics.AbstractGoogleAnalyticsParameters;
+import org.jboss.tools.usage.googleanalytics.IGoogleAnalyticsParameters;
+import org.jboss.tools.usage.googleanalytics.IUserAgent;
+import org.jboss.tools.usage.internal.JBossToolsUsageActivator;
+import org.jboss.tools.usage.preferences.IUsageReportPreferenceConstants;
+import org.jboss.tools.usage.util.PreferencesUtils;
+
+/**
+ * @author Andre Dietisheim
+ */
+public abstract class AbstractEclipseEnvironment extends AbstractGoogleAnalyticsParameters implements IGoogleAnalyticsParameters {
+
+ private static final String SYSPROP_JAVA_VERSION = "java.version";
+
+ private String screenResolution;
+ private String screenColorDepth;
+ private Random random;
+ private IEclipsePreferences preferences;
+ private String firstVisit;
+ private String lastVisit;
+ private String currentVisit;
+ private long visitCount;
+ private IUserAgent eclipseUserAgent;
+
+ public AbstractEclipseEnvironment(String accountName, String hostName, String referral, IEclipsePreferences preferences) {
+ super(accountName, hostName, referral);
+ this.random = new Random();
+ this.preferences = preferences;
+ eclipseUserAgent = createEclipseUserAgent();
+ initScreenSettings();
+ initVisits();
+ }
+
+ protected void initScreenSettings() {
+ final Display display = getDisplay();
+ display.syncExec(new Runnable() {
+
+ public void run() {
+ screenColorDepth = display.getDepth() + SCREENCOLORDEPTH_POSTFIX;
+
+ Rectangle bounds = display.getBounds();
+ screenResolution = bounds.width + SCREERESOLUTION_DELIMITER + bounds.height;
+ }
+ });
+ }
+
+ private void initVisits() {
+ String currentTime = String.valueOf(System.currentTimeMillis());
+ this.currentVisit = currentTime;
+ this.firstVisit = preferences.get(IUsageReportPreferenceConstants.FIRST_VISIT, null);
+ if (firstVisit == null) {
+ this.firstVisit = currentTime;
+ preferences.put(IUsageReportPreferenceConstants.FIRST_VISIT, firstVisit);
+ }
+ lastVisit = preferences.get(IUsageReportPreferenceConstants.LAST_VISIT, currentTime);
+ visitCount = preferences.getLong(IUsageReportPreferenceConstants.VISIT_COUNT, 1);
+ }
+
+ protected IUserAgent createEclipseUserAgent() {
+ return new EclipseUserAgent();
+ }
+
+ public String getBrowserLanguage() {
+ return eclipseUserAgent.getBrowserLanguage();
+ }
+
+ public String getScreenResolution() {
+ return screenResolution;
+ }
+
+ public String getScreenColorDepth() {
+ return screenColorDepth;
+ }
+
+ protected Display getDisplay() {
+ if (PlatformUI.isWorkbenchRunning()) {
+ return PlatformUI.getWorkbench().getDisplay();
+ }
+
+ Display display = Display.getCurrent();
+ if (display == null) {
+ display = Display.getDefault();
+ }
+ return display;
+ }
+
+ public String getUserAgent() {
+ return eclipseUserAgent.toString();
+ }
+
+ public String getUserId() {
+ String userId = preferences.get(IUsageReportPreferenceConstants.ECLIPSE_INSTANCE_ID, null);
+ if (userId == null) {
+ userId = createIdentifier();
+ preferences.put(IUsageReportPreferenceConstants.ECLIPSE_INSTANCE_ID, userId);
+ PreferencesUtils.checkedSavePreferences(preferences, JBossToolsUsageActivator.getDefault(), GoogleAnalyticsEclipseMessages.EclipseEnvironment_Error_SavePreferences);
+ }
+ return userId;
+ }
+
+ /**
+ * Creates an unique identifier.
+ *
+ * @return the identifier
+ */
+ private String createIdentifier() {
+ StringBuilder builder = new StringBuilder();
+ builder.append(Math.abs(random.nextLong()));
+ builder.append(System.currentTimeMillis());
+ return builder.toString();
+ }
+
+ public abstract String getKeyword();
+
+ public String getCurrentVisit() {
+ return currentVisit;
+ }
+
+ public String getFirstVisit() {
+ return firstVisit;
+ }
+
+ public String getLastVisit() {
+ return lastVisit;
+ }
+
+ public long getVisitCount() {
+ return visitCount;
+ }
+
+ public void visit() {
+ lastVisit = currentVisit;
+ preferences.put(IUsageReportPreferenceConstants.LAST_VISIT, lastVisit);
+ currentVisit = String.valueOf(System.currentTimeMillis());
+ visitCount++;
+ preferences.putLong(IUsageReportPreferenceConstants.VISIT_COUNT, visitCount);
+ PreferencesUtils.checkedSavePreferences(preferences, JBossToolsUsageActivator.getDefault(), GoogleAnalyticsEclipseMessages.EclipseEnvironment_Error_SavePreferences);
+ }
+
+ public String getFlashVersion() {
+ return getJavaVersion();
+ }
+
+ private String getJavaVersion() {
+ return System.getProperty(SYSPROP_JAVA_VERSION);
+ }
+}
Copied: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/EclipseUserAgent.java (from rev 24848, trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java)
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/EclipseUserAgent.java (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/EclipseUserAgent.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.googleanalytics.eclipse;
+
+import java.text.MessageFormat;
+
+import org.eclipse.core.runtime.IProduct;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.usage.googleanalytics.IUserAgent;
+import org.osgi.framework.Bundle;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class EclipseUserAgent implements IUserAgent {
+
+ public static final char JAVA_LOCALE_DELIMITER = '_';
+
+ private static final String ECLIPSE_RUNTIME_BULDEID = "org.eclipse.core.runtime"; //$NON-NLS-1$
+
+ private static final String USERAGENT_WIN = "{0}/{1} (Windows; U; Windows NT 6.1; {2})"; //$NON-NLS-1$
+ private static final String USERAGENT_MAC = "{0}/{1} (Macintosh; U; Intel Mac OS X 10.5; {2})"; //$NON-NLS-1$
+ private static final String USERAGENT_LINUX = "{0}/{1} (X11; U; Linux i686; {2})"; //$NON-NLS-1$
+
+ public static final char VERSION_DELIMITER = '.';
+
+ private String browserLanguage;
+
+ private String createBrowserLanguage() {
+ String nl = getNL();
+ if (nl == null) {
+ return ""; //$NON-NLS-1$
+ }
+
+ int indexOf = nl.indexOf(JAVA_LOCALE_DELIMITER); //$NON-NLS-1$
+ if (indexOf <= 0) {
+ return nl;
+ }
+
+ StringBuilder builder = new StringBuilder();
+ builder.append(nl.substring(0, indexOf));
+ builder.append(BROWSER_LOCALE_DELIMITER);
+ builder.append(nl.substring(indexOf + 1));
+ return builder.toString();
+ }
+
+ protected String getNL() {
+ return Platform.getNL();
+ }
+
+ public String getBrowserLanguage() {
+ if (browserLanguage == null) {
+ browserLanguage = createBrowserLanguage();
+ }
+ return browserLanguage;
+ }
+
+ public String toString() {
+ String productId = getApplicationName();
+ String productVersion = getApplicationVersion();
+
+ /**
+ * Google API for android: this.userAgent = String.format(
+ * "GoogleAnalytics/%s (Linux; U; Android %s; %s-%s; %s; Build/%s)" ,
+ * new Object[] { "1.0" , Build.VERSION.RELEASE ,
+ * (localLocale.getLanguage() != null) ?
+ * localLocale.getLanguage().toLowerCase() : "en" ,
+ * (localLocale.getCountry() != null) ?
+ * localLocale.getCountry().toLowerCase() : "" , Build.MODEL, Build.ID
+ * });
+ */
+
+ return MessageFormat.format(
+ getUserAgentPattern(getOS())
+ , productId
+ , productVersion
+ , getBrowserLanguage()
+ );
+ }
+
+ protected String getOS() {
+ return Platform.getOS();
+ }
+
+ protected String getApplicationName() {
+ return getApplicationBundle().getSymbolicName();
+ }
+
+ protected String getApplicationVersion() {
+ String fullVersion = getApplicationBundle().getVersion().toString();
+ int productVersionStart = fullVersion.lastIndexOf(VERSION_DELIMITER);
+ if (productVersionStart > 0) {
+ return fullVersion.substring(0, productVersionStart);
+ } else {
+ return fullVersion;
+ }
+ }
+
+ /**
+ * Returns the bundle that launched the application that this class runs in.
+ *
+ * @return the defining bundle
+ */
+ private Bundle getApplicationBundle() {
+ IProduct product = Platform.getProduct();
+ if (product != null) {
+ return product.getDefiningBundle();
+ } else {
+ return Platform.getBundle(ECLIPSE_RUNTIME_BULDEID);
+ }
+ }
+
+ private String getUserAgentPattern(String os) {
+ String userAgentPattern = ""; //$NON-NLS-1$
+ /*
+ * TODO: implement architecture (i686, x86_64 etc.), Windows version, MacOS version etc.
+ */
+ if (Platform.OS_LINUX.equals(os)) {
+ return USERAGENT_LINUX; //$NON-NLS-1$
+ } else if (Platform.OS_MACOSX.equals(os)) {
+ return USERAGENT_MAC; //$NON-NLS-1$
+ } else if (Platform.OS_WIN32.equals(os)) {
+ return USERAGENT_WIN; //$NON-NLS-1$
+ }
+ return userAgentPattern;
+ }
+}
Property changes on: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/EclipseUserAgent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/GoogleAnalyticsEclipseMessages.java (from rev 24574, trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsMessages.java)
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/GoogleAnalyticsEclipseMessages.java (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/GoogleAnalyticsEclipseMessages.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.googleanalytics.eclipse;
+
+import org.eclipse.osgi.util.NLS;
+
+public class GoogleAnalyticsEclipseMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.jboss.tools.usage.googleanalytics.messages"; //$NON-NLS-1$
+
+ public static String EclipseEnvironment_Error_SavePreferences;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, GoogleAnalyticsEclipseMessages.class);
+ }
+
+ private GoogleAnalyticsEclipseMessages() {
+ }
+}
Property changes on: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/GoogleAnalyticsEclipseMessages.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/messages.properties (from rev 24574, trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/messages.properties)
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/messages.properties (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/messages.properties 2010-09-10 08:38:30 UTC (rev 24851)
@@ -0,0 +1 @@
+EclipseEnvironment_Error_SavePreferences=Could not save preferences file \"{0}\" .
\ No newline at end of file
Property changes on: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/messages.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.usage.reporting;
-
-import java.util.Random;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.jboss.tools.usage.googleanalytics.AbstractGoogleAnalyticsParameters;
-import org.jboss.tools.usage.googleanalytics.IGoogleAnalyticsParameters;
-import org.jboss.tools.usage.googleanalytics.IUserAgent;
-import org.jboss.tools.usage.internal.JBossToolsUsageActivator;
-import org.jboss.tools.usage.preferences.IUsageReportPreferenceConstants;
-import org.jboss.tools.usage.util.BundleUtils;
-import org.jboss.tools.usage.util.BundleUtils.IBundleEntryFilter;
-import org.jboss.tools.usage.util.PreferencesUtils;
-import org.osgi.framework.Bundle;
-
-/**
- * @author Andre Dietisheim
- */
-public class EclipseEnvironment extends AbstractGoogleAnalyticsParameters implements IGoogleAnalyticsParameters {
-
- private static final String SYSPROP_JAVA_VERSION = "java.version";
- private static final String JBOSS_TOOLS_BUNDLES_PREFIX = "org\\.jboss\\.tools.+"; //$NON-NLS-1$
- private static final char BUNDLE_GROUP_DELIMITER = '-';
-
- private String screenResolution;
- private String screenColorDepth;
- private Random random;
- private IEclipsePreferences preferences;
- private String firstVisit;
- private String lastVisit;
- private String currentVisit;
- private long visitCount;
- private IUserAgent eclipseUserAgent;
-
- public EclipseEnvironment(String accountName, String hostName, String referral, IEclipsePreferences preferences) {
- super(accountName, hostName, referral);
- this.random = new Random();
- this.preferences = preferences;
- eclipseUserAgent = createEclipseUserAgent();
- initScreenSettings();
- initVisits();
- }
-
- protected void initScreenSettings() {
- final Display display = getDisplay();
- display.syncExec(new Runnable() {
-
- public void run() {
- screenColorDepth = display.getDepth() + SCREENCOLORDEPTH_POSTFIX;
-
- Rectangle bounds = display.getBounds();
- screenResolution = bounds.width + SCREERESOLUTION_DELIMITER + bounds.height;
- }
- });
- }
-
- private void initVisits() {
- String currentTime = String.valueOf(System.currentTimeMillis());
- this.currentVisit = currentTime;
- this.firstVisit = preferences.get(IUsageReportPreferenceConstants.FIRST_VISIT, null);
- if (firstVisit == null) {
- this.firstVisit = currentTime;
- preferences.put(IUsageReportPreferenceConstants.FIRST_VISIT, firstVisit);
- }
- lastVisit = preferences.get(IUsageReportPreferenceConstants.LAST_VISIT, currentTime);
- visitCount = preferences.getLong(IUsageReportPreferenceConstants.VISIT_COUNT, 1);
- }
-
- protected IUserAgent createEclipseUserAgent() {
- return new EclipseUserAgent();
- }
-
- public String getBrowserLanguage() {
- return eclipseUserAgent.getBrowserLanguage();
- }
-
- public String getScreenResolution() {
- return screenResolution;
- }
-
- public String getScreenColorDepth() {
- return screenColorDepth;
- }
-
- protected Display getDisplay() {
- if (PlatformUI.isWorkbenchRunning()) {
- return PlatformUI.getWorkbench().getDisplay();
- }
-
- Display display = Display.getCurrent();
- if (display == null) {
- display = Display.getDefault();
- }
- return display;
- }
-
- public String getUserAgent() {
- return eclipseUserAgent.toString();
- }
-
- public String getUserId() {
- String userId = preferences.get(IUsageReportPreferenceConstants.ECLIPSE_INSTANCE_ID, null);
- if (userId == null) {
- userId = createIdentifier();
- preferences.put(IUsageReportPreferenceConstants.ECLIPSE_INSTANCE_ID, userId);
- PreferencesUtils.checkedSavePreferences(preferences, JBossToolsUsageActivator.getDefault(), ReportingMessages.EclipseEnvironment_Error_SavePreferences);
- }
- return userId;
- }
-
- /**
- * Creates an unique identifier.
- *
- * @return the identifier
- */
- private String createIdentifier() {
- StringBuilder builder = new StringBuilder();
- builder.append(Math.abs(random.nextLong()));
- builder.append(System.currentTimeMillis());
- return builder.toString();
- }
-
- public String getKeyword() {
- JBossBundleGroups jbossBundleGroups = new JBossBundleGroups();
- IBundleEntryFilter jbossToolsFilter = new BundleUtils.BundleSymbolicNameFilter(JBOSS_TOOLS_BUNDLES_PREFIX);
- IBundleEntryFilter compositeFilter = new BundleUtils.CompositeFilter(
- jbossToolsFilter
- , jbossBundleGroups);
- BundleUtils.getBundles(compositeFilter, getBundles());
-
- return bundleGroupsToKeywordString(jbossBundleGroups);
- }
-
- protected Bundle[] getBundles() {
- return JBossToolsUsageActivator.getDefault().getBundle().getBundleContext().getBundles();
- }
-
- private String bundleGroupsToKeywordString(JBossBundleGroups jbossBundleGroups) {
- char delimiter = BUNDLE_GROUP_DELIMITER;
- StringBuilder builder = new StringBuilder();
- for (String bundleGroupId : jbossBundleGroups.getBundleGroupIds()) {
- builder.append(bundleGroupId)
- .append(delimiter);
- }
- return builder.toString();
- }
-
- public String getCurrentVisit() {
- return currentVisit;
- }
-
- public String getFirstVisit() {
- return firstVisit;
- }
-
- public String getLastVisit() {
- return lastVisit;
- }
-
- public long getVisitCount() {
- return visitCount;
- }
-
- public void visit() {
- lastVisit = currentVisit;
- preferences.put(IUsageReportPreferenceConstants.LAST_VISIT, lastVisit);
- currentVisit = String.valueOf(System.currentTimeMillis());
- visitCount++;
- preferences.putLong(IUsageReportPreferenceConstants.VISIT_COUNT, visitCount);
- PreferencesUtils.checkedSavePreferences(preferences, JBossToolsUsageActivator.getDefault(), ReportingMessages.EclipseEnvironment_Error_SavePreferences);
- }
-
- public String getFlashVersion() {
- return getJavaVersion();
- }
-
- private String getJavaVersion() {
- return System.getProperty(SYSPROP_JAVA_VERSION);
- }
-}
Deleted: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.usage.reporting;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.jboss.tools.usage.googleanalytics.IUserAgent;
-import org.osgi.framework.Bundle;
-
-/**
- * @author Andre Dietisheim
- */
-public class EclipseUserAgent implements IUserAgent {
-
- public static final char JAVA_LOCALE_DELIMITER = '_';
-
- private static final String ECLIPSE_RUNTIME_BULDEID = "org.eclipse.core.runtime"; //$NON-NLS-1$
-
- private static final String USERAGENT_WIN = "{0}/{1} (Windows; U; Windows NT 6.1; {2})"; //$NON-NLS-1$
- private static final String USERAGENT_MAC = "{0}/{1} (Macintosh; U; Intel Mac OS X 10.5; {2})"; //$NON-NLS-1$
- private static final String USERAGENT_LINUX = "{0}/{1} (X11; U; Linux i686; {2})"; //$NON-NLS-1$
-
- public static final char VERSION_DELIMITER = '.';
-
- private String browserLanguage;
-
- private String createBrowserLanguage() {
- String nl = getNL();
- if (nl == null) {
- return ""; //$NON-NLS-1$
- }
-
- int indexOf = nl.indexOf(JAVA_LOCALE_DELIMITER); //$NON-NLS-1$
- if (indexOf <= 0) {
- return nl;
- }
-
- StringBuilder builder = new StringBuilder();
- builder.append(nl.substring(0, indexOf));
- builder.append(BROWSER_LOCALE_DELIMITER);
- builder.append(nl.substring(indexOf + 1));
- return builder.toString();
- }
-
- protected String getNL() {
- return Platform.getNL();
- }
-
- public String getBrowserLanguage() {
- if (browserLanguage == null) {
- browserLanguage = createBrowserLanguage();
- }
- return browserLanguage;
- }
-
- public String toString() {
- String productId = getApplicationName();
- String productVersion = getApplicationVersion();
-
- /**
- * Google API for android: this.userAgent = String.format(
- * "GoogleAnalytics/%s (Linux; U; Android %s; %s-%s; %s; Build/%s)" ,
- * new Object[] { "1.0" , Build.VERSION.RELEASE ,
- * (localLocale.getLanguage() != null) ?
- * localLocale.getLanguage().toLowerCase() : "en" ,
- * (localLocale.getCountry() != null) ?
- * localLocale.getCountry().toLowerCase() : "" , Build.MODEL, Build.ID
- * });
- */
-
- return MessageFormat.format(
- getUserAgentPattern(getOS())
- , productId
- , productVersion
- , getBrowserLanguage()
- );
- }
-
- protected String getOS() {
- return Platform.getOS();
- }
-
- protected String getApplicationName() {
- return getApplicationBundle().getSymbolicName();
- }
-
- protected String getApplicationVersion() {
- String fullVersion = getApplicationBundle().getVersion().toString();
- int productVersionStart = fullVersion.lastIndexOf(VERSION_DELIMITER);
- if (productVersionStart > 0) {
- return fullVersion.substring(0, productVersionStart);
- } else {
- return fullVersion;
- }
- }
-
- /**
- * Returns the bundle that launched the application that this class runs in.
- *
- * @return the defining bundle
- */
- private Bundle getApplicationBundle() {
- IProduct product = Platform.getProduct();
- if (product != null) {
- return product.getDefiningBundle();
- } else {
- return Platform.getBundle(ECLIPSE_RUNTIME_BULDEID);
- }
- }
-
- private String getUserAgentPattern(String os) {
- String userAgentPattern = ""; //$NON-NLS-1$
- /*
- * TODO: implement architecture (i686, x86_64 etc.), Windows version, MacOS version etc.
- */
- if (Platform.OS_LINUX.equals(os)) {
- return USERAGENT_LINUX; //$NON-NLS-1$
- } else if (Platform.OS_MACOSX.equals(os)) {
- return USERAGENT_MAC; //$NON-NLS-1$
- } else if (Platform.OS_WIN32.equals(os)) {
- return USERAGENT_WIN; //$NON-NLS-1$
- }
- return userAgentPattern;
- }
-}
Copied: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingEclipseEnvironment.java (from rev 24848, trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java)
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingEclipseEnvironment.java (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingEclipseEnvironment.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.reporting;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.jboss.tools.usage.googleanalytics.eclipse.AbstractEclipseEnvironment;
+import org.jboss.tools.usage.internal.JBossToolsUsageActivator;
+import org.jboss.tools.usage.util.BundleUtils;
+import org.jboss.tools.usage.util.BundleUtils.IBundleEntryFilter;
+import org.osgi.framework.Bundle;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class ReportingEclipseEnvironment extends AbstractEclipseEnvironment {
+
+ private static final String JBOSS_TOOLS_BUNDLES_PREFIX = "org\\.jboss\\.tools.+"; //$NON-NLS-1$
+ private static final char BUNDLE_GROUP_DELIMITER = '-';
+
+ public ReportingEclipseEnvironment(String accountName, String hostName, String referral, IEclipsePreferences preferences) {
+ super(accountName, hostName, referral, preferences);
+ }
+
+ @Override
+ public String getKeyword() {
+ JBossBundleGroups jbossBundleGroups = new JBossBundleGroups();
+ IBundleEntryFilter jbossToolsFilter = new BundleUtils.BundleSymbolicNameFilter(JBOSS_TOOLS_BUNDLES_PREFIX);
+ IBundleEntryFilter compositeFilter = new BundleUtils.CompositeFilter(
+ jbossToolsFilter
+ , jbossBundleGroups);
+ BundleUtils.getBundles(compositeFilter, getBundles());
+
+ return bundleGroupsToKeywordString(jbossBundleGroups);
+ }
+
+ protected Bundle[] getBundles() {
+ return JBossToolsUsageActivator.getDefault().getBundle().getBundleContext().getBundles();
+ }
+
+ private String bundleGroupsToKeywordString(JBossBundleGroups jbossBundleGroups) {
+ char delimiter = BUNDLE_GROUP_DELIMITER;
+ StringBuilder builder = new StringBuilder();
+ for (String bundleGroupId : jbossBundleGroups.getBundleGroupIds()) {
+ builder.append(bundleGroupId)
+ .append(delimiter);
+ }
+ return builder.toString();
+ }
+}
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingMessages.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingMessages.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/ReportingMessages.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -14,7 +14,6 @@
public class ReportingMessages extends NLS {
private static final String BUNDLE_NAME = "org.jboss.tools.usage.reporting.messages"; //$NON-NLS-1$
- public static String EclipseEnvironment_Error_SavePreferences;
public static String UsageReport_Reporting_Usage;
public static String UsageReport_Querying_Enablement;
@@ -26,6 +25,7 @@
public static String UsageReport_Error_SavePreferences;
public static String UsageReport_GoogleAnalyticsAccount;
public static String UsageReport_HostName;
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, ReportingMessages.class);
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -84,7 +84,7 @@
}
private ITracker getTracker() {
- IGoogleAnalyticsParameters eclipseEnvironment = new EclipseEnvironment(
+ IGoogleAnalyticsParameters eclipseEnvironment = new ReportingEclipseEnvironment(
GANALYTICS_ACCOUNTNAME
, HOST_NAME
, IGoogleAnalyticsParameters.VALUE_NO_REFERRAL
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties 2010-09-10 08:38:30 UTC (rev 24851)
@@ -1,4 +1,3 @@
-EclipseEnvironment_Error_SavePreferences=Could not sage {0} to preferences.
UsageReport_Reporting_Usage=Reporting JBoss Tools usage
UsageReport_Querying_Enablement=Querying whether reporting is globally enabled
UsageReport_Asking_User=Asking User to allow reporting
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/PreferencesUtils.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/PreferencesUtils.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/PreferencesUtils.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -17,7 +17,6 @@
import org.eclipse.jface.preference.IPersistentPreferenceStore;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.jboss.tools.usage.internal.JBossToolsUsageActivator;
-import org.jboss.tools.usage.reporting.ReportingMessages;
import org.osgi.service.prefs.BackingStoreException;
public class PreferencesUtils {
@@ -39,8 +38,8 @@
preferences.flush();
} catch (BackingStoreException e) {
IStatus status = StatusUtils.getErrorStatus(plugin.getBundle().getSymbolicName(),
- ReportingMessages.EclipseEnvironment_Error_SavePreferences,
- e, message);
+ message,
+ e, preferences.absolutePath());
plugin.getLog().log(status);
}
Deleted: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.usage.test;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.jboss.tools.usage.googleanalytics.IUserAgent;
-import org.jboss.tools.usage.reporting.EclipseEnvironment;
-
-/**
- * @author Andre Dietisheim
- */
-public class EclipseEnvironmentFake extends EclipseEnvironment {
-
- public static final String GANALYTICS_ACCOUNTNAME = "UA-17645367-1";
- public static final String HOSTNAME = "jboss.org";
- public static final String REFERRAL = "0";
- public static final String JAVA_VERSION = "1.6.0_20";
-
- private String javaVersion;
-
- public EclipseEnvironmentFake() {
- this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, JAVA_VERSION, new EclipsePreferencesFake());
- }
-
- public EclipseEnvironmentFake(IEclipsePreferences preferences) {
- this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, JAVA_VERSION, preferences);
- }
-
- public EclipseEnvironmentFake(String accountName, String hostName, String referral) {
- this(accountName, hostName, referral, JAVA_VERSION, new EclipsePreferencesFake());
- }
-
- public EclipseEnvironmentFake(String accountName, String hostName, String referral, String javaVersion,
- IEclipsePreferences preferences) {
- super(accountName, hostName, referral, preferences);
- this.javaVersion = javaVersion;
- }
-
- @Override
- protected void initScreenSettings() {
- // do not access swt/display
- }
-
- @Override
- protected IUserAgent createEclipseUserAgent() {
- return new EclipseUserAgentFake();
- }
-
- @Override
- public String getScreenResolution() {
- return 1920 + SCREERESOLUTION_DELIMITER + 1080;
- }
-
- @Override
- public String getScreenColorDepth() {
- return 24 + SCREENCOLORDEPTH_POSTFIX;
- }
-
- public String getFlashVersion() {
- return javaVersion;
- }
-}
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFakeSingleton.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFakeSingleton.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFakeSingleton.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -15,6 +15,6 @@
*/
public class EclipseEnvironmentFakeSingleton {
- public static EclipseEnvironmentFake INSTANCE = new EclipseEnvironmentFake();
+ public static ReportingEclipseEnvironmentFake INSTANCE = new ReportingEclipseEnvironmentFake();
}
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -2,7 +2,7 @@
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.Platform;
-import org.jboss.tools.usage.reporting.EclipseUserAgent;
+import org.jboss.tools.usage.googleanalytics.eclipse.EclipseUserAgent;
public class EclipseUserAgentFake extends EclipseUserAgent {
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -23,7 +23,7 @@
import java.util.regex.Pattern;
import org.eclipse.core.runtime.Platform;
-import org.jboss.tools.usage.reporting.EclipseEnvironment;
+import org.jboss.tools.usage.googleanalytics.eclipse.AbstractEclipseEnvironment;
import org.jboss.tools.usage.reporting.JBossBundleGroups;
import org.junit.Test;
import org.osgi.framework.Bundle;
@@ -71,7 +71,7 @@
@Test
public void testKeyword() {
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake() {
+ AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake() {
@Override
protected Bundle[] getBundles() {
return new Bundle[] {
@@ -235,7 +235,7 @@
@Test
public void testVisitsOnFirstVisit() {
EclipsePreferencesFake preferences = new EclipsePreferencesFake();
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
+ AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences);
String firstVisit = eclipseEnvironment.getFirstVisit();
assertEquals(1, eclipseEnvironment.getVisitCount());
assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
@@ -246,7 +246,7 @@
@Test
public void testVisitsOnSecondVisit() throws InterruptedException {
EclipsePreferencesFake preferences = new EclipsePreferencesFake();
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
+ AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences);
String firstVisit = eclipseEnvironment.getFirstVisit();
Thread.sleep(10);
eclipseEnvironment.visit();
@@ -260,7 +260,7 @@
@Test
public void testVisitsOnThirdVisit() throws InterruptedException {
EclipsePreferencesFake preferences = new EclipsePreferencesFake();
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
+ AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences);
String firstVisit = eclipseEnvironment.getFirstVisit();
Thread.sleep(10);
eclipseEnvironment.visit();
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/GoogleAnalyticsUrlStrategyTest.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/GoogleAnalyticsUrlStrategyTest.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/GoogleAnalyticsUrlStrategyTest.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -30,7 +30,7 @@
@Before
public void setUp() {
- this.urlStrategy = new GoogleAnalyticsUrlStrategy(new EclipseEnvironmentFake());
+ this.urlStrategy = new GoogleAnalyticsUrlStrategy(new ReportingEclipseEnvironmentFake());
}
@Test
@@ -50,7 +50,7 @@
+ "&utmr=0"
+ "&utmp=%2Ftesting%2Fstrategy"
+ "&utmfl="
- + EclipseEnvironmentFake.JAVA_VERSION
+ + ReportingEclipseEnvironmentFake.JAVA_VERSION
+ "&utmac=UA-17645367-1"
+ "&utmcc=__utma%3D156030503.195542053.1281528584.1281528584.1281528584.1%3B%2B__utmz%3D156030500.1281528584.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B"
+ "&gaq=1";
@@ -76,7 +76,7 @@
@Test
public void visitCountIncreases() throws Exception {
- IGoogleAnalyticsParameters eclipseEnvironment = new EclipseEnvironmentFake();
+ IGoogleAnalyticsParameters eclipseEnvironment = new ReportingEclipseEnvironmentFake();
assertEquals(1, eclipseEnvironment.getVisitCount());
eclipseEnvironment.visit();
assertEquals(2, eclipseEnvironment.getVisitCount());
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java 2010-09-10 00:10:15 UTC (rev 24850)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -51,12 +51,12 @@
public void differentUserIdOnDifferentEclipseInstance() throws Exception {
String focusPointName = "testDifferentUserIdOnDifferentEclipseInstance"
+ System.currentTimeMillis();
- UrlRevealingTracker tracker = getTracker(new EclipseEnvironmentFake());
+ UrlRevealingTracker tracker = getTracker(new ReportingEclipseEnvironmentFake());
tracker.trackSynchronously(createFocusPoint(focusPointName));
String userId = getUserId(tracker.getTrackingUrl());
assertTrue(userId != null);
- tracker = getTracker(new EclipseEnvironmentFake());
+ tracker = getTracker(new ReportingEclipseEnvironmentFake());
FocusPoint focusPoint = createFocusPoint(focusPointName);
tracker.trackSynchronously(focusPoint);
String newUserId = getUserId(tracker.getTrackingUrl());
@@ -67,7 +67,7 @@
@Test
public void visitCountIncreases() throws Exception {
- IGoogleAnalyticsParameters eclipseEnvironment = new EclipseEnvironmentFake();
+ IGoogleAnalyticsParameters eclipseEnvironment = new ReportingEclipseEnvironmentFake();
assertEquals(1, eclipseEnvironment.getVisitCount());
UrlRevealingTracker tracker = getTracker(eclipseEnvironment);
tracker.trackSynchronously(createFocusPoint("testVisitCount"));
Copied: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/ReportingEclipseEnvironmentFake.java (from rev 24848, trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java)
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/ReportingEclipseEnvironmentFake.java (rev 0)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/ReportingEclipseEnvironmentFake.java 2010-09-10 08:38:30 UTC (rev 24851)
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.test;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.jboss.tools.usage.googleanalytics.IUserAgent;
+import org.jboss.tools.usage.reporting.ReportingEclipseEnvironment;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class ReportingEclipseEnvironmentFake extends ReportingEclipseEnvironment {
+
+ public static final String GANALYTICS_ACCOUNTNAME = "UA-17645367-1";
+ public static final String HOSTNAME = "jboss.org";
+ public static final String REFERRAL = "0";
+ public static final String JAVA_VERSION = "1.6.0_20";
+
+ private String javaVersion;
+
+ public ReportingEclipseEnvironmentFake() {
+ this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, JAVA_VERSION, new EclipsePreferencesFake());
+ }
+
+ public ReportingEclipseEnvironmentFake(IEclipsePreferences preferences) {
+ this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, JAVA_VERSION, preferences);
+ }
+
+ public ReportingEclipseEnvironmentFake(String accountName, String hostName, String referral) {
+ this(accountName, hostName, referral, JAVA_VERSION, new EclipsePreferencesFake());
+ }
+
+ public ReportingEclipseEnvironmentFake(String accountName, String hostName, String referral, String javaVersion,
+ IEclipsePreferences preferences) {
+ super(accountName, hostName, referral, preferences);
+ this.javaVersion = javaVersion;
+ }
+
+ @Override
+ protected void initScreenSettings() {
+ // do not access swt/display
+ }
+
+ @Override
+ protected IUserAgent createEclipseUserAgent() {
+ return new EclipseUserAgentFake();
+ }
+
+ @Override
+ public String getScreenResolution() {
+ return 1920 + SCREERESOLUTION_DELIMITER + 1080;
+ }
+
+ @Override
+ public String getScreenColorDepth() {
+ return 24 + SCREENCOLORDEPTH_POSTFIX;
+ }
+
+ public String getFlashVersion() {
+ return javaVersion;
+ }
+}
Property changes on: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/ReportingEclipseEnvironmentFake.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 7 months
JBoss Tools SVN: r24850 - in trunk/cdi: plugins/org.jboss.tools.cdi.xml/src/org/jboss/tools/cdi/xml and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-09-09 20:10:15 -0400 (Thu, 09 Sep 2010)
New Revision: 24850
Added:
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/BeansXmlHyperLinkTest.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/plugin.xml
trunk/cdi/plugins/org.jboss.tools.cdi.xml.ui/src/org/jboss/tools/cdi/xml/ui/CDIXMLUiPlugin.java
trunk/cdi/plugins/org.jboss.tools.cdi.xml/src/org/jboss/tools/cdi/xml/CDIXMLPlugin.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CdiTextExtAllTests.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java
Log:
https://jira.jboss.org/browse/JBIDE-7025 beans.xml openons
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/plugin.xml
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/plugin.xml 2010-09-09 19:23:16 UTC (rev 24849)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/plugin.xml 2010-09-10 00:10:15 UTC (rev 24850)
@@ -31,5 +31,35 @@
targetId="org.eclipse.jdt.ui.javaCode">
</hyperlinkDetector>
</extension>
-
-</plugin>
+
+ <extension
+ point="org.jboss.tools.common.text.ext.hyperlinkPartitioner"
+ id="org.jboss.tools.cdi.text.ext.hyperlinkPartitioner"
+ name="org.jboss.tools.cdi.text.ext.hyperlinkPartitioner">
+ <hyperlinkPartitioner
+ id="org.jboss.tools.cdi.text.ext.hyperlink.TypeNameHyperlinkPartitioner"
+ class="org.jboss.tools.common.text.ext.hyperlink.xml.XMLClassHyperlinkPartitioner">
+ <contentType id="org.jboss.tools.common.model.ui.xml">
+ <partitionType id="org.jboss.tools.common.text.ext.xml.XML_ROOT">
+ <axis path="/beans/*/class/" />
+ </partitionType>
+ </contentType>
+ <contentType id="org.eclipse.core.runtime.xml">
+ <partitionType id="org.jboss.tools.common.text.ext.xml.XML_ROOT">
+ <axis path="/beans/*/class/" />
+ </partitionType>
+ </contentType>
+ <contentType id="org.jboss.tools.common.model.ui.xml">
+ <partitionType id="org.jboss.tools.common.text.ext.xml.XML_ROOT">
+ <axis path="/beans/alternatives/stereotype/" />
+ </partitionType>
+ </contentType>
+ <contentType id="org.eclipse.core.runtime.xml">
+ <partitionType id="org.jboss.tools.common.text.ext.xml.XML_ROOT">
+ <axis path="/beans/alternatives/stereotype/" />
+ </partitionType>
+ </contentType>
+ </hyperlinkPartitioner>
+ </extension>
+
+</plugin>
\ No newline at end of file
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.xml/src/org/jboss/tools/cdi/xml/CDIXMLPlugin.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.xml/src/org/jboss/tools/cdi/xml/CDIXMLPlugin.java 2010-09-09 19:23:16 UTC (rev 24849)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.xml/src/org/jboss/tools/cdi/xml/CDIXMLPlugin.java 2010-09-10 00:10:15 UTC (rev 24850)
@@ -17,7 +17,7 @@
/**
*/
public class CDIXMLPlugin extends AbstractUIPlugin {
- public static final String PLUGIN_ID = "org.jboss.tools.seam.xml"; //$NON-NLS-1$
+ public static final String PLUGIN_ID = "org.jboss.tools.cdi.xml"; //$NON-NLS-1$
public CDIXMLPlugin() {
super();
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.xml.ui/src/org/jboss/tools/cdi/xml/ui/CDIXMLUiPlugin.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.xml.ui/src/org/jboss/tools/cdi/xml/ui/CDIXMLUiPlugin.java 2010-09-09 19:23:16 UTC (rev 24849)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.xml.ui/src/org/jboss/tools/cdi/xml/ui/CDIXMLUiPlugin.java 2010-09-10 00:10:15 UTC (rev 24850)
@@ -17,7 +17,7 @@
import org.osgi.framework.BundleContext;
public class CDIXMLUiPlugin extends AbstractUIPlugin {
- public static String PLUGIN_ID = "org.jboss.tools.seam.xml.ui"; //$NON-NLS-1$
+ public static String PLUGIN_ID = "org.jboss.tools.cdi.xml.ui"; //$NON-NLS-1$
static CDIXMLUiPlugin INSTANCE = null;
public CDIXMLUiPlugin() {
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF 2010-09-09 19:23:16 UTC (rev 24849)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF 2010-09-10 00:10:15 UTC (rev 24850)
@@ -13,7 +13,9 @@
org.eclipse.jdt.ui;bundle-version="3.5.0",
org.eclipse.core.commands;bundle-version="3.5.0",
org.jboss.tools.cdi.core.test;bundle-version="1.0.0",
- org.eclipse.jdt.core;bundle-version="3.5.0"
+ org.eclipse.jdt.core;bundle-version="3.5.0",
+ org.eclipse.wst.xml.ui,
+ org.eclipse.jface;bundle-version="3.6.0"
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Bundle-Vendor.0
Export-Package: org.jboss.tools.cdi.text.ext.test
Added: 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 (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/BeansXmlHyperLinkTest.java 2010-09-10 00:10:15 UTC (rev 24850)
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.text.ext.test;
+
+
+/**
+ * beans.xml OpenOns test
+ *
+ * @author Alexey Kazakov
+ */
+public class BeansXmlHyperLinkTest extends HyperlinkDetectorTest {
+
+ public void testAlternativesClassOpenOns() throws Exception {
+ checkHyperLinkInXml("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");
+ }
+
+ public void testDecoratorClassOpenOns() throws Exception {
+ checkHyperLinkInXml("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", 1761, "org.jboss.tools.common.text.ext.hyperlink.ClassHyperlink");
+ }
+}
\ 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/BeansXmlHyperLinkTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CdiTextExtAllTests.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CdiTextExtAllTests.java 2010-09-09 19:23:16 UTC (rev 24849)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CdiTextExtAllTests.java 2010-09-10 00:10:15 UTC (rev 24850)
@@ -1,21 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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.text.ext.test;
+import junit.framework.Test;
+import junit.framework.TestSuite;
import org.eclipse.jdt.internal.core.JavaModelManager;
import org.jboss.tools.cdi.core.test.CDICoreTestSetup;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
public class CdiTextExtAllTests {
public static Test suite() {
// it could be done here because it is not needed to be enabled back
JavaModelManager.getIndexManager().disable();
-
- TestSuite suite = new TestSuite(CdiTextExtAllTests.class.getName());
- suite.addTest(new CDICoreTestSetup(new TestSuite(InjectedPointHyperlinkDetectorTest.class)));
- suite.addTest(new CDICoreTestSetup(new TestSuite(ProducerDisposerHyperlinkDetectorTest.class)));
- suite.addTest(new CDICoreTestSetup(new TestSuite(EventAndObserverMethodHyperlinkDetectorTest.class)));
- return suite;
+
+ TestSuite suiteAll = new TestSuite("CDI Core Tests");
+
+ TestSuite suite = new TestSuite("CDI OpenOns Tests");
+ suite.addTestSuite(InjectedPointHyperlinkDetectorTest.class);
+ suite.addTestSuite(ProducerDisposerHyperlinkDetectorTest.class);
+ suite.addTestSuite(EventAndObserverMethodHyperlinkDetectorTest.class);
+ suite.addTestSuite(BeansXmlHyperLinkTest.class);
+ suiteAll.addTest(new CDICoreTestSetup(suite));
+
+ return suiteAll;
}
-}
+}
\ 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/HyperlinkDetectorTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java 2010-09-09 19:23:16 UTC (rev 24849)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/HyperlinkDetectorTest.java 2010-09-10 00:10:15 UTC (rev 24850)
@@ -1,12 +1,11 @@
package org.jboss.tools.cdi.text.ext.test;
-import java.util.ArrayList;
+import java.util.List;
import org.eclipse.core.resources.IFile;
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.FindReplaceDocumentAdapter;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.Region;
@@ -25,18 +24,21 @@
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.test.tck.TCKTest;
+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, ArrayList<Region> regionList, AbstractHyperlinkDetector elPartitioner) throws Exception {
- IFile javaFile = tckProject.getFile(fileName);
+ protected void checkRegions(String fileName, List<Region> regionList, AbstractHyperlinkDetector elPartitioner) throws Exception {
+ IFile file = tckProject.getFile(fileName);
- TCKTest.assertTrue("The file \"" + fileName + "\" is not found", (javaFile != null));
- TCKTest.assertTrue("The file \"" + fileName + "\" is not found", (javaFile.exists()));
+ assertNotNull("The file \"" + fileName + "\" is not found", file);
+ assertTrue("The file \"" + fileName + "\" is not found", file.isAccessible());
- FileEditorInput editorInput = new FileEditorInput(javaFile);
+ FileEditorInput editorInput = new FileEditorInput(file);
IDocumentProvider documentProvider = null;
try {
@@ -63,13 +65,13 @@
for(Region region : regionList)
expected += region.getLength()+1;
- IEditorPart part = openFileInEditor(javaFile);
+ IEditorPart part = openFileInEditor(file);
ISourceViewer viewer = null;
if(part instanceof JavaEditor){
viewer = ((JavaEditor)part).getViewer();
}
- elPartitioner.setContext(new TestContext((ITextEditor)part));
+ elPartitioner.setContext(new TestContext((ITextEditor)part));
int counter = 0;
for (int i = 0; i < document.getLength(); i++) {
@@ -98,8 +100,36 @@
documentProvider.disconnect(editorInput);
}
-
- protected boolean findOffsetInRegions(int offset, ArrayList<Region> regionList){
+ protected void checkHyperLinkInXml(String fileName, int offset, String hyperlinkClassName) throws Exception {
+ Region region = new Region(offset, 0);
+ 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);
+
+ IEditorPart part = openFileInEditor(file);
+ ISourceViewer viewer = null;
+ if (part instanceof XMLMultiPageEditorPart) {
+ IEditorPart[] parts = ((XMLMultiPageEditorPart)part).findEditors(editorInput);
+ if(parts.length>0) {
+ viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
+ }
+ }
+
+ IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, region, true);
+ if(links!=null) {
+ for (IHyperlink hyperlink : links) {
+ if(hyperlink.getClass().getName().equals(hyperlinkClassName)) {
+ return;
+ }
+ }
+ }
+ fail("Can't find HyperLink");
+ }
+
+ protected boolean findOffsetInRegions(int offset, List<Region> regionList){
for(Region region : regionList){
if(offset >= region.getOffset() && offset <= region.getOffset()+region.getLength())
return true;
@@ -108,11 +138,21 @@
}
protected IEditorPart openFileInEditor(IFile input) {
+ return openFileInEditor(input, null);
+ }
+
+ protected IEditorPart openFileInEditor(IFile input, String id) {
if (input != null && input.exists()) {
try {
- IWorkbenchPage page = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
- return IDE.openEditor(page, input, true);
+ 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());
@@ -148,7 +188,7 @@
x.printStackTrace();
fail(x.getMessage());
}
-
+
return region;
}
@@ -217,4 +257,4 @@
return null;
}
}
-}
+}
\ No newline at end of file
15 years, 7 months
JBoss Tools SVN: r24849 - in trunk: common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/texteditors/xmleditor and 7 other directories.
by jbosstools-commits@lists.jboss.org
Author: yradtsevich
Date: 2010-09-09 15:23:16 -0400 (Thu, 09 Sep 2010)
New Revision: 24849
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/IVpeSelectionListener.java
Removed:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/InnerDragBuffer.java
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/texteditors/xmleditor/XMLTextEditor.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPTextEditor.java
trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
trunk/vpe/plugins/org.jboss.tools.vpe/META-INF/MANIFEST.MF
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/DndUtil.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/dnd/context/JSPViewerDropAdapter.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/SourceDomUtil.java
Log:
https://jira.jboss.org/browse/JBIDE-6439 :
Refactor and partially reimpement VpeDnD class
- InnerDragBuffer is replaced by 'vpe/xpath' flavor
- 'text/unicode' and 'text/html' flavors now contain source of the selected node
- references to VpeDnD are removed from VpeVisualDomBuilder
Modified: trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -246,7 +246,9 @@
Object ooo = LocalSelectionTransfer.getTransfer().getSelection();
if(ooo instanceof StructuredSelection) {
ooo = ((StructuredSelection)ooo).getFirstElement();
- InnerDragBuffer.setInnerDragObject(ooo);
+ // commented by yradtsevich, see JBIDE-6439 (InnerDragBuffer is removed,
+ // nodes are transfered through vpe/xpath flavor now)
+ //InnerDragBuffer.setInnerDragObject(ooo);
}
mimeData = ooo == null ? null : ooo.toString();
}
Deleted: trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/InnerDragBuffer.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/InnerDragBuffer.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/InnerDragBuffer.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and 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:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.common.model.ui.editors.dnd.context;
-
-public class InnerDragBuffer {
-
- private static Object innerDragObject = null;
-
- public static Object getInnerDragObject() {
- return innerDragObject;
- }
-
- public static void setInnerDragObject(Object innerDragObject) {
- InnerDragBuffer.innerDragObject = innerDragObject;
- }
-
-}
Modified: trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/texteditors/xmleditor/XMLTextEditor.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/texteditors/xmleditor/XMLTextEditor.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/texteditors/xmleditor/XMLTextEditor.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -14,10 +14,6 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.jboss.tools.common.model.ui.ModelUIPlugin;
-import org.jboss.tools.common.model.ui.dnd.ModelTransfer;
-import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDrop;
-import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDropProvider;
import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentListener;
@@ -57,19 +53,14 @@
import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
import org.jboss.tools.common.meta.action.XActionInvoker;
import org.jboss.tools.common.model.XModelBuffer;
import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.XModelTransferBuffer;
import org.jboss.tools.common.model.filesystems.impl.FileAnyImpl;
-import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
-import org.jboss.tools.common.text.xml.ui.FreeCaretStyledText;
+import org.jboss.tools.common.model.ui.ModelUIPlugin;
+import org.jboss.tools.common.model.ui.dnd.ModelTransfer;
import org.jboss.tools.common.model.ui.editor.EditorDescriptor;
import org.jboss.tools.common.model.ui.editor.IModelObjectEditorInput;
import org.jboss.tools.common.model.ui.editors.dnd.DropCommandFactory;
@@ -77,12 +68,19 @@
import org.jboss.tools.common.model.ui.editors.dnd.EmptyTagProposalFactory;
import org.jboss.tools.common.model.ui.editors.dnd.context.DropContext;
import org.jboss.tools.common.model.ui.editors.dnd.context.IDNDTextEditor;
-import org.jboss.tools.common.model.ui.editors.dnd.context.InnerDragBuffer;
+import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDrop;
+import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDropProvider;
import org.jboss.tools.common.model.ui.views.palette.PaletteInsertHelper;
+import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
import org.jboss.tools.common.text.xml.IOccurrencePreferenceProvider;
import org.jboss.tools.common.text.xml.XMLTextViewerConfiguration;
import org.jboss.tools.common.text.xml.XmlEditorPlugin;
+import org.jboss.tools.common.text.xml.ui.FreeCaretStyledText;
import org.jboss.tools.jst.jsp.text.xpl.IStructuredTextOccurrenceStructureProvider;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.Text;
/**
* @author Jeremy
@@ -506,13 +504,13 @@
event.detail = DND.DROP_NONE;
return;
}
- // Drop from VPE to Source is forbidden
- if(dropContext.getFlavor().equals("text/html")) { //$NON-NLS-1$
- if(InnerDragBuffer.getInnerDragObject()!= null) {
- event.detail = DND.DROP_NONE;
- }
- return;
- }
+// // Drop from VPE to Source is forbidden
+// if(dropContext.getFlavor().equals("text/html")) { //$NON-NLS-1$
+// if(InnerDragBuffer.getInnerDragObject()!= null) {
+// event.detail = DND.DROP_NONE;
+// }
+// return;
+// }
int pos = getPosition(event.x, event.y);
if(lastpos == pos && pos >= 0) {
pos = lastpos;
Modified: trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPTextEditor.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPTextEditor.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPTextEditor.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -104,13 +104,12 @@
import org.jboss.tools.common.model.ui.editor.IModelObjectEditorInput;
import org.jboss.tools.common.model.ui.editors.dnd.DropCommandFactory;
import org.jboss.tools.common.model.ui.editors.dnd.DropData;
+import org.jboss.tools.common.model.ui.editors.dnd.DropUtils.AttributeDescriptorValueProvider;
import org.jboss.tools.common.model.ui.editors.dnd.IDropCommand;
import org.jboss.tools.common.model.ui.editors.dnd.ITagProposal;
-import org.jboss.tools.common.model.ui.editors.dnd.DropUtils.AttributeDescriptorValueProvider;
import org.jboss.tools.common.model.ui.editors.dnd.composite.TagAttributesComposite;
import org.jboss.tools.common.model.ui.editors.dnd.composite.TagAttributesComposite.AttributeDescriptorValue;
import org.jboss.tools.common.model.ui.editors.dnd.context.DropContext;
-import org.jboss.tools.common.model.ui.editors.dnd.context.InnerDragBuffer;
import org.jboss.tools.common.model.ui.texteditors.TextMerge;
import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDrop;
import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDropProvider;
@@ -141,8 +140,8 @@
import org.jboss.tools.jst.jsp.ui.action.IExtendedAction;
import org.jboss.tools.jst.web.kb.IPageContext;
import org.jboss.tools.jst.web.kb.KbQuery;
+import org.jboss.tools.jst.web.kb.KbQuery.Type;
import org.jboss.tools.jst.web.kb.PageProcessor;
-import org.jboss.tools.jst.web.kb.KbQuery.Type;
import org.jboss.tools.jst.web.kb.internal.JspContextImpl;
import org.jboss.tools.jst.web.kb.internal.taglib.NameSpace;
import org.jboss.tools.jst.web.kb.internal.taglib.TLDTag;
@@ -932,13 +931,18 @@
event.detail = DND.DROP_NONE;
return;
}
- // Drop from VPE to Source is forbidden
- if (dropContext.getFlavor().equals("text/html")) { //$NON-NLS-1$
- if (InnerDragBuffer.getInnerDragObject() != null) {
- event.detail = DND.DROP_NONE;
- }
- return;
- }
+
+// commented by yradtsevich, see JBIDE-6439 (InnerDragBuffer is removed,
+// nodes are transfered through vpe/xpath flavor now)
+// // Drop from VPE to Source is forbidden
+// if (dropContext.getFlavor().equals("text/html")) { //$NON-NLS-1$
+// if (InnerDragBuffer.getInnerDragObject() != null) {
+// event.detail = DND.DROP_NONE;
+// }
+// return;
+// }
+
+
int pos = getPosition(event.x, event.y);
if (lastpos == pos && pos >= 0) {
pos = lastpos;
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/META-INF/MANIFEST.MF
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/META-INF/MANIFEST.MF 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/META-INF/MANIFEST.MF 2010-09-09 19:23:16 UTC (rev 24849)
@@ -60,6 +60,7 @@
org.eclipse.wst.sse.ui,
org.eclipse.wst.sse.core,
org.eclipse.core.expressions,
- org.jboss.tools.common.model.ui
+ org.jboss.tools.common.model.ui,
+ org.eclipse.wst.xml.xpath.core
Bundle-Version: 3.2.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/DndUtil.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/DndUtil.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/DndUtil.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -15,14 +15,18 @@
import static org.jboss.tools.vpe.xulrunner.util.XPCOM.queryInterface;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Stack;
import org.eclipse.swt.events.TypedEvent;
import org.jboss.tools.common.model.ui.editors.dnd.context.DropContext;
import org.jboss.tools.common.model.ui.editors.dnd.context.IDNDTextEditor;
-import org.jboss.tools.vpe.editor.VpeController;
+import org.jboss.tools.jst.web.kb.PageContextFactory;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.util.HTML;
+import org.jboss.tools.vpe.editor.util.SourceDomUtil;
+import org.jboss.tools.vpe.editor.util.VpeDndUtil;
import org.jboss.tools.vpe.xulrunner.util.XPCOM;
import org.mozilla.interfaces.nsIComponentManager;
import org.mozilla.interfaces.nsIDOMDocument;
@@ -32,8 +36,10 @@
import org.mozilla.interfaces.nsIDragSession;
import org.mozilla.interfaces.nsIServiceManager;
import org.mozilla.interfaces.nsISupports;
+import org.mozilla.interfaces.nsISupportsString;
import org.mozilla.interfaces.nsITransferable;
import org.mozilla.xpcom.Mozilla;
+import org.w3c.dom.Node;
/**
@@ -91,28 +97,9 @@
/** The Constant kFilePromiseDirectoryMime. */
public static final String kFilePromiseDirectoryMime = "application/x-moz-file-promise-dir"; //$NON-NLS-1$
-
- /** The Constant FLAVORS. */
- public static final String[] FLAVORS = {
- VpeController.MODEL_FLAVOR,
- kTextMime,
- kUnicodeMime,
- kHTMLMime,
- kAOLMailMime,
- kPNGImageMime,
- kJPEGImageMime,
- kGIFImageMime,
- kFileMime,
- kURLMime,
- kURLDataMime,
- kURLDescriptionMime,
- kNativeImageMime,
- kNativeHTMLMime,
- kFilePromiseURLMime,
- kFilePromiseMime,
- kFilePromiseDirectoryMime
- };
-
+
+ public static final String VPE_XPATH_FLAVOR = "vpe/xpath"; //$NON-NLS-1$
+
/**
* The Constructor.
*/
@@ -136,25 +123,39 @@
* Returns an instance of {@link DragTransferData}
* for the current DnD session.
*/
- public static DragTransferData getDragTransferData() {
- final nsIDragSession dragSession = getCurrentDragSession();
- final List<String> supportedDataFlavors
- = getSupportedDataFlavors(dragSession);
+ public static DragTransferData getDragTransferData(String... flavors) {
+ nsIDragSession dragSession = getCurrentDragSession();
+ String []supportedFlavors = getSupportedDataFlavors(dragSession, flavors);
+ if (supportedFlavors.length > 0) {
+ nsITransferable iTransferable = createTransferable(supportedFlavors);
+
+ String[] aFlavor = new String[1];
+ nsISupports[] aValue = new nsISupports[1];
+ long[] aDataLen = new long[1];
+
+ dragSession.getData(iTransferable, 0);
+ iTransferable.getAnyTransferData(aFlavor, aValue, aDataLen);
+ return new DragTransferData(aFlavor[0], aValue[0], aDataLen[0]);
+ } else {
+ return null;
+ }
+ }
+
+ public static String getDragTransferDataAsString(String... flavors) {
+ DragTransferData transferData = getDragTransferData(flavors);
+ if (transferData == null || transferData.getValue() == null) {
+ return null;
+ }
+
+ nsISupports value = transferData.getValue();
+ if (VpeDndUtil.isNsIStringInstance(value)) {
+ return queryInterface(value, nsISupportsString.class).getData();
+ } else {
+ return null;
+ }
+ }
- final nsITransferable iTransferable
- = createTransferable(supportedDataFlavors);
-
- String[] aFlavor = new String[1];
- nsISupports[] aValue = new nsISupports[1];
- long[] aDataLen = new long[1];
-
- dragSession.getData(iTransferable, 0);
- iTransferable.getAnyTransferData(aFlavor, aValue, aDataLen);
- return new DragTransferData(aFlavor[0], aValue[0], aDataLen[0]);
- }
-
- public static nsITransferable createTransferable(
- final List<String> supportedDataFlavors) {
+ public static nsITransferable createTransferable(String... flavors) {
final nsIComponentManager componentManager
= Mozilla.getInstance().getComponentManager();
@@ -163,22 +164,22 @@
XPCOM.NS_TRANSFERABLE_CONTRACTID, null,
nsITransferable.NS_ITRANSFERABLE_IID);
- for (final String flavor : supportedDataFlavors) {
+ for (final String flavor : flavors) {
iTransferable.addDataFlavor(flavor);
}
return iTransferable;
}
- private static List<String> getSupportedDataFlavors(
- final nsIDragSession dragSession) {
+ public static String []getSupportedDataFlavors(
+ final nsIDragSession dragSession, String... flavors) {
final List<String> supportedDataFlavors = new ArrayList<String>();
- for (final String flavor : FLAVORS) {
+ for (final String flavor : flavors) {
if (dragSession.isDataFlavorSupported(flavor)) {
supportedDataFlavors.add(flavor);
}
}
- return supportedDataFlavors;
+ return supportedDataFlavors.toArray(new String[supportedDataFlavors.size()]);
}
public static nsIDragSession getCurrentDragSession() {
@@ -263,4 +264,13 @@
return element;
}
+
+ public static Node getNodeFromDragSession(VpePageContext pageContext) {
+ String xPath = DndUtil.getDragTransferDataAsString(VPE_XPATH_FLAVOR);
+ if (xPath != null) {
+ return SourceDomUtil.getNodeByXPath(pageContext, xPath);
+ } else {
+ return null;
+ }
+ }
}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -18,16 +18,17 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
import org.eclipse.wst.xml.core.internal.document.ElementImpl;
+import org.eclipse.wst.xml.core.internal.document.NodeContainer;
+import org.eclipse.wst.xml.xpath.core.util.XSLTXPathHelper;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.filesystems.XFileObject;
import org.jboss.tools.common.model.options.PreferenceModelUtilities;
+import org.jboss.tools.common.model.ui.dnd.ModelTransfer;
import org.jboss.tools.common.model.ui.editors.dnd.DropUtils;
import org.jboss.tools.common.model.ui.editors.dnd.context.IDNDTextEditor;
-import org.jboss.tools.common.model.ui.editors.dnd.context.InnerDragBuffer;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.jst.web.tld.model.TLDUtil;
import org.jboss.tools.vpe.VpeDebug;
@@ -42,6 +43,7 @@
import org.jboss.tools.vpe.editor.mozilla.listener.MozillaSelectionListener;
import org.jboss.tools.vpe.editor.util.VisualDomUtil;
import org.jboss.tools.vpe.editor.util.VpeDndUtil;
+import org.jboss.tools.vpe.xulrunner.editor.IVpeSelectionListener;
import org.jboss.tools.vpe.xulrunner.editor.XulRunnerEditor;
import org.jboss.tools.vpe.xulrunner.util.XPCOM;
import org.mozilla.interfaces.nsIComponentManager;
@@ -64,7 +66,6 @@
import org.mozilla.interfaces.nsITransferable;
import org.mozilla.xpcom.Mozilla;
import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
@@ -75,33 +76,38 @@
*/
// NOTE: the code has been cleaned after SVN revision 21574, many methods
// have been removed. To find the old code refer to older revisions.
-public class VpeDnD implements MozillaDndListener, MozillaSelectionListener {
+public class VpeDnD implements MozillaDndListener, MozillaSelectionListener, IVpeSelectionListener {
private static final String TAG_TAGLIB = "taglib"; //$NON-NLS-1$
- /*
- * Default transfer data
- */
- private static final String VPE_ELEMENT = ""; //$NON-NLS-1$
-
- /**
- * service manager */
private nsIServiceManager serviceManager;
-
- /**
- * component manager
- */
private nsIComponentManager componentManager;
-
- /**
- * drag service
- */
private nsIDragService dragService;
-
private VpeController vpeController;
-
private DraggablePattern draggablePattern;
private DropableArea dropableArea;
+ /** The Constant FLAVORS. */
+ private static final String[] FLAVORS = {
+ ModelTransfer.MODEL,
+ DndUtil.kUnicodeMime,
+ DndUtil.kHTMLMime,
+ DndUtil.kAOLMailMime,
+ DndUtil.kPNGImageMime,
+ DndUtil.kJPEGImageMime,
+ DndUtil.kGIFImageMime,
+ DndUtil.kFileMime,
+ DndUtil.kURLMime,
+ DndUtil.kURLDataMime,
+ DndUtil.kURLDescriptionMime,
+ DndUtil.kNativeImageMime,
+ DndUtil.kNativeHTMLMime,
+ DndUtil.kFilePromiseURLMime,
+ DndUtil.kFilePromiseMime,
+ DndUtil.kFilePromiseDirectoryMime,
+ DndUtil.kTextMime
+ };
+
+
public VpeDnD(VpeController vpeController, MozillaEditor mozillaEditor) {
this.vpeController = vpeController;
draggablePattern = new DraggablePattern(mozillaEditor);
@@ -163,7 +169,7 @@
innerDrop(queryInterface(domEvent, nsIDOMMouseEvent.class));
} else {
//in this case it's is external drag
- externalDrop(queryInterface(domEvent, nsIDOMMouseEvent.class), VpeController.MODEL_FLAVOR, ""); //$NON-NLS-1$
+ externalDrop(queryInterface(domEvent, nsIDOMMouseEvent.class)); //$NON-NLS-1$
}
disposeDropableArea();
vpeController.onRefresh();
@@ -255,7 +261,7 @@
private DropResolver getDropResolverForExternalDrop() {
if (getDragService().getCurrentSession()
- .isDataFlavorSupported(VpeController.MODEL_FLAVOR)) {
+ .isDataFlavorSupported(ModelTransfer.MODEL)) {
XModelObject object = PreferenceModelUtilities.getPreferenceModel()
.getModelBuffer().source();
if (object.getFileType() == XFileObject.FILE
@@ -278,8 +284,9 @@
}
private DropResolver getDropResolverForInternalDrop() {
- if (InnerDragBuffer.getInnerDragObject() instanceof Node) {
- return getDropResolverForNode((Node) InnerDragBuffer.getInnerDragObject());
+ Node node = DndUtil.getNodeFromDragSession(vpeController.getPageContext());
+ if (node != null) {
+ return getDropResolverForNode(node);
} else {
return getSimpleDropResolver(false);
}
@@ -396,11 +403,10 @@
* @param dragetElement
*/
private void startDragSession(nsIDOMElement element) {
- rememberDragNode(getSourceNode(element));
nsISupportsArray transArray = (nsISupportsArray) getComponentManager()
.createInstanceByContractID(XPCOM.NS_SUPPORTSARRAY_CONTRACTID, null,
nsISupportsArray.NS_ISUPPORTSARRAY_IID);
- transArray.appendElement(createTransferable());
+ transArray.appendElement(createTransferable(getSourceNode(element)));
getDragService().invokeDragSession(element, transArray, null,
nsIDragService.DRAGDROP_ACTION_MOVE
| nsIDragService.DRAGDROP_ACTION_COPY
@@ -412,29 +418,35 @@
*
* @return transferable object
*/
- private nsITransferable createTransferable() {
+ private nsITransferable createTransferable(Node node) {
nsITransferable iTransferable = (nsITransferable) getComponentManager()
.createInstanceByContractID(XPCOM.NS_TRANSFERABLE_CONTRACTID, null,
nsITransferable.NS_ITRANSFERABLE_IID);
- nsISupportsString transferData = (nsISupportsString) getComponentManager()
- .createInstanceByContractID(XPCOM.NS_SUPPORTSSTRING_CONTRACTID, null,
- nsISupportsString.NS_ISUPPORTSSTRING_IID);
- String data=VPE_ELEMENT;
- transferData.setData(data);
- iTransferable.setTransferData(VpeController.MODEL_FLAVOR, transferData, data.length());
- iTransferable.setTransferData("text/plain", transferData, data.length()); //$NON-NLS-1$
- iTransferable.setTransferData("text/unicode", transferData,data.length()*2); //$NON-NLS-1$
- iTransferable.setTransferData("text/html", transferData, data.length()*2); //$NON-NLS-1$
- iTransferable.setTransferData("text/xml", transferData, data.length()*2); //$NON-NLS-1$
- iTransferable.setTransferData("text/rtf", transferData, data.length()*2); //$NON-NLS-1$
- iTransferable.setTransferData("text/enriched", transferData, data.length()*2); //$NON-NLS-1$
- iTransferable.setTransferData("text/richtext", transferData, data.length()*2); //$NON-NLS-1$
- iTransferable.setTransferData("text/t140", transferData, data.length()*2); //$NON-NLS-1$
+ String nodeSource = ((NodeContainer)node).getSource();
+ nsISupportsString nodeSourceData = createNsISupportsString(nodeSource);
+ int nodeSourceDataLength = nodeSource.length() * 2;
+ iTransferable.setTransferData(ModelTransfer.MODEL, nodeSourceData, nodeSourceDataLength);
+ iTransferable.setTransferData("text/html", nodeSourceData, nodeSourceDataLength); //$NON-NLS-1$
+ iTransferable.setTransferData("text/unicode", nodeSourceData, nodeSourceDataLength); //$NON-NLS-1$
+
+ String xPath = XSLTXPathHelper.calculateXPathToNode(node);
+ nsISupportsString xPathData = createNsISupportsString(xPath);
+ iTransferable.setTransferData(DndUtil.VPE_XPATH_FLAVOR, xPathData, xPath.length() * 2);
+
return iTransferable;
}
+ private nsISupportsString createNsISupportsString(String data) {
+ nsISupportsString xulString = (nsISupportsString) getComponentManager()
+ .createInstanceByContractID(XPCOM.NS_SUPPORTSSTRING_CONTRACTID, null,
+ nsISupportsString.NS_ISUPPORTSSTRING_IID);
+ xulString.setData(data);
+
+ return xulString;
+ }
+
private void refreshCanDrop(nsIDOMEvent event) {
nsIDOMMouseEvent mouseEvent = queryInterface(event, nsIDOMMouseEvent.class);
@@ -466,16 +478,6 @@
return getDragService().getCurrentSession().getSourceDocument() != null;
}
- private void rememberDragNode(Node node) {
- InnerDragBuffer.setInnerDragObject(node);
- //commented by Maksim Areshkau as fix for https://jira.jboss.org/browse/JBIDE-6860
-// Display.getDefault().asyncExec(new Runnable() {
-// public void run() {
-// InnerDragBuffer.setInnerDragObject(null);
-// }
-// });
- }
-
private boolean isDraggable(nsIDOMElement element) {
vpeController.onHideTooltip();
@@ -525,30 +527,30 @@
textWidget.replaceTextRange(selectionRange.x, selectionRange.y, ""); //$NON-NLS-1$
dropAny(DndUtil.kUnicodeMime, text);
- } else if (InnerDragBuffer.getInnerDragObject() instanceof Node) {
- VpeSourceDropInfo sourceDropInfo = getDropInfo();
- if (sourceDropInfo.getContainer() != null) {
- if (VpeDebug.PRINT_VISUAL_INNER_DRAGDROP_EVENT) {
- System.out
- .print(" container: " + sourceDropInfo.getContainer().getNodeName() + //$NON-NLS-1$
- "(" + sourceDropInfo.getContainer() //$NON-NLS-1$
- + ")" + //$NON-NLS-1$
- " offset: " //$NON-NLS-1$
- + sourceDropInfo.getOffset());
+ } else {
+ Node node = DndUtil.getNodeFromDragSession(vpeController.getPageContext());
+ if (node != null) {
+ VpeSourceDropInfo sourceDropInfo = getDropInfo();
+ if (sourceDropInfo.getContainer() != null) {
+ if (VpeDebug.PRINT_VISUAL_INNER_DRAGDROP_EVENT) {
+ System.out
+ .print(" container: " + sourceDropInfo.getContainer().getNodeName() + //$NON-NLS-1$
+ "(" + sourceDropInfo.getContainer() //$NON-NLS-1$
+ + ")" + //$NON-NLS-1$
+ " offset: " //$NON-NLS-1$
+ + sourceDropInfo.getOffset());
+ }
+
+ if (sourceDropInfo.canDrop()) {
+ VpeDnDHelper dropper = new VpeDnDHelper();
+ dropper.setDndData(false, true);
+ dropper.drop(vpeController.getPageContext(),
+ new VpeSourceInnerDragInfo(node, 0, 0), sourceDropInfo);
+
+ // select dropped node, JBIDE-6239
+ setSelectedNode(node);
+ }
}
-
- if (sourceDropInfo.canDrop()) {
- VpeDnDHelper dropper = new VpeDnDHelper();
- dropper.setDndData(false, true);
- Node node = (Node) InnerDragBuffer.getInnerDragObject();
- dropper.drop(vpeController.getPageContext(),
- new VpeSourceInnerDragInfo(node, 0, 0), sourceDropInfo);
-
- // select dropped node, JBIDE-6239
- setSelectedNode(node);
-
- InnerDragBuffer.setInnerDragObject(null);
- }
}
}
if (VpeDebug.PRINT_VISUAL_INNER_DRAGDROP_EVENT) {
@@ -567,14 +569,12 @@
sourceNodeBounds.getEndOffset());
}
- private void externalDrop(nsIDOMMouseEvent mouseEvent, String flavor, String data) {
+ private void externalDrop(nsIDOMMouseEvent mouseEvent) {
vpeController.onHideTooltip();
-
-
- final DragTransferData dragTransferData = DndUtil.getDragTransferData();
+ final DragTransferData dragTransferData = DndUtil.getDragTransferData(FLAVORS);
final nsISupports aValue = dragTransferData.getValue();
-
+ String data = ""; //$NON-NLS-1$
String aFlavor = ""; //$NON-NLS-1$
if (VpeDndUtil.isNsIFileInstance(aValue)) {
nsIFile aFile = queryInterface(aValue, nsIFile.class);
@@ -592,7 +592,7 @@
} else if (VpeDndUtil.isNsIStringInstance(aValue)) {
nsISupportsString aString = queryInterface(aValue, nsISupportsString.class);
data = aString.getData();
- if (VpeController.MODEL_FLAVOR.equals(dragTransferData.getFlavor())) {
+ if (ModelTransfer.MODEL.equals(dragTransferData.getFlavor())) {
aFlavor = dragTransferData.getFlavor();
} else {
aFlavor = DndUtil.kURLMime;
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -217,7 +217,6 @@
*/
private IKeyEventHandler keyEventHandler;
- public final static String MODEL_FLAVOR = ModelTransfer.MODEL;
// contains vpe update delau time in miliseconds
private int vpeUpdateDelayTime;
@@ -244,6 +243,7 @@
visualBuilder = new VpeVisualDomBuilder(domMapping, this, visualEditor,
pageContext);
vpeDnD = new VpeDnD(this, visualEditor);
+ visualEditor.getXulRunnerEditor().addSelectionListener(vpeDnD);
pageContext.setSourceDomBuilder(sourceBuilder);
pageContext.setVisualDomBuilder(visualBuilder);
IDOMModel sourceModel = (IDOMModel) getModel();
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -1333,7 +1333,6 @@
int resizerConstrains = getResizerConstrains(visualElement);
visualEditor.setSelectionRectangle(visualElement, resizerConstrains,
scroll);
- this.visualEditor.getController().getVpeDnD().selectionChanged();
}
/**
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/dnd/context/JSPViewerDropAdapter.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/dnd/context/JSPViewerDropAdapter.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/dnd/context/JSPViewerDropAdapter.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -29,8 +29,10 @@
import org.jboss.tools.common.model.options.PreferenceModelUtilities;
import org.jboss.tools.common.model.ui.dnd.ModelTransfer;
import org.jboss.tools.common.model.ui.editors.dnd.context.DropContext;
-import org.jboss.tools.common.model.ui.editors.dnd.context.InnerDragBuffer;
import org.jboss.tools.jst.jsp.editor.IJSPTextEditor;
+import org.jboss.tools.jst.jsp.editor.IVisualContext;
+import org.jboss.tools.vpe.dnd.DndUtil;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.dnd.context.xpl.DragNodeCommand2;
import org.w3c.dom.Attr;
import org.w3c.dom.Node;
@@ -189,13 +191,17 @@
if(testOnly) {
return editor != null && editor.isEditable() && dropContext.getFlavor() != null;
} else {
- if(InnerDragBuffer.getInnerDragObject() instanceof Node && editor instanceof IJSPTextEditor) {
+ Node dragNode = null;
+ IVisualContext pageContext = editor.getVPEController().getPageContext();
+ if (pageContext instanceof VpePageContext) {
+ dragNode = DndUtil.getNodeFromDragSession((VpePageContext) pageContext);
+ }
+ if(dragNode != null && editor instanceof IJSPTextEditor) {
int offset = 0;
if(refChild instanceof NodeImpl) {
offset = ((NodeImpl)refChild).getIndex();
}
- ((IJSPTextEditor)editor).getVPEController().drop((Node)InnerDragBuffer.getInnerDragObject(), parentNode, offset);
- InnerDragBuffer.setInnerDragObject(null);
+ ((IJSPTextEditor)editor).getVPEController().drop(dragNode, parentNode, offset);
} else {
int pos = getDropPosition(parentNode, refChild);
editor.selectAndReveal(pos, 0);
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/SourceDomUtil.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/SourceDomUtil.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/SourceDomUtil.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -13,6 +13,10 @@
import java.util.HashSet;
import java.util.Set;
+import javax.xml.transform.TransformerException;
+
+import org.eclipse.wst.xml.xpath.core.util.XSLTXPathHelper;
+import org.jboss.tools.vpe.VpePlugin;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.mapping.VpeDomMapping;
import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
@@ -108,4 +112,18 @@
}
return facetElement;
}
+
+ /**
+ * Returns source node by its XPath.
+ */
+ public static Node getNodeByXPath(VpePageContext pageContext, String xPath) {
+ Node node = null;
+ try {
+ node = XSLTXPathHelper.selectSingleNode(
+ pageContext.getSourceBuilder().getSourceDocument(), xPath);
+ } catch (TransformerException e) {
+ VpePlugin.reportProblem(e);
+ }
+ return node;
+ }
}
Added: trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/IVpeSelectionListener.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/IVpeSelectionListener.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/IVpeSelectionListener.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.xulrunner.editor;
+
+/**
+ * Selection listener. It is fired when selection rectangle is changed.
+ *
+ * @author Yahor Radtsevich (yradtsevich)
+ */
+public interface IVpeSelectionListener {
+ public void selectionChanged();
+}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java 2010-09-09 18:00:10 UTC (rev 24848)
+++ trunk/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java 2010-09-09 19:23:16 UTC (rev 24849)
@@ -11,6 +11,8 @@
package org.jboss.tools.vpe.xulrunner.editor;
+import java.util.ArrayList;
+import java.util.List;
import java.util.regex.Pattern;
import org.eclipse.swt.SWT;
@@ -40,7 +42,6 @@
import org.mozilla.interfaces.nsIDragSession;
import org.mozilla.interfaces.nsIInterfaceRequestor;
import org.mozilla.interfaces.nsISelection;
-import org.mozilla.interfaces.nsISelectionListener;
import org.mozilla.interfaces.nsIServiceManager;
import org.mozilla.interfaces.nsISupports;
import org.mozilla.interfaces.nsITooltipListener;
@@ -57,6 +58,8 @@
/** IVpeResizeListener */
private IVpeResizeListener resizeListener;
+
+ private List<IVpeSelectionListener> selectionListeners = new ArrayList<IVpeSelectionListener>();
/** IXulRunnerVpeResizer */
private IXulRunnerVpeResizer xulRunnerVpeResizer;
@@ -111,8 +114,6 @@
*/
private boolean scrollRegtangleFlag = false;
- private nsISelectionListener selectionListener;
-
private Listener eventListenet = new Listener() {
public void handleEvent(Event event) {
@@ -259,7 +260,21 @@
getIXulRunnerVpeResizer().addResizeListener(resizeListener);
}
}
-
+
+ public void addSelectionListener(IVpeSelectionListener selectionListener) {
+ selectionListeners.add(selectionListener);
+ }
+
+ public void removeSelectionListener(IVpeSelectionListener selectionListener) {
+ selectionListeners.remove(selectionListener);
+ }
+
+ private void fireSelectionListeners() {
+ for (IVpeSelectionListener listener : selectionListeners) {
+ listener.selectionChanged();
+ }
+ }
+
public void onLoadWindow() {
addResizerListener();
}
@@ -476,6 +491,8 @@
// setLastSelectedElement(element);
setLastSelectedNode(node);
lastResizerConstrains = resizerConstrains;
+
+ fireSelectionListeners();
}
/**
15 years, 7 months
JBoss Tools SVN: r24848 - in trunk/usage: plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-09-09 14:00:10 -0400 (Thu, 09 Sep 2010)
New Revision: 24848
Added:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IUserAgent.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsFocusPoint.java
Removed:
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmenTest.java
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsUrlStrategy.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IGoogleAnalyticsParameters.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java
trunk/usage/tests/org.jboss.tools.usage.test/EclipseEnvironmentTest.launch
trunk/usage/tests/org.jboss.tools.usage.test/JBossToolsUsageIntegrationTest.launch
trunk/usage/tests/org.jboss.tools.usage.test/UsageTestSuite.launch
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java
Log:
[JBIDE-7034] UserAgent extracted to its own class. Updated tests and separated test cases
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsUrlStrategy.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsUrlStrategy.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/GoogleAnalyticsUrlStrategy.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -112,7 +112,7 @@
appendParameter(IGoogleAnalyticsParameters.PARAM_PAGE_TITLE, focusPoint.getContentTitle(), builder);
// appendParameter(IGoogleAnalyticsParameters.PARAM_HID,
// getRandomNumber(), builder);
- appendParameter(IGoogleAnalyticsParameters.PARAM_FLASH_VERSION,googleParameters.getFlashVersion(), builder);
+ appendParameter(IGoogleAnalyticsParameters.PARAM_FLASH_VERSION, googleParameters.getFlashVersion(), builder);
appendParameter(IGoogleAnalyticsParameters.PARAM_REFERRAL, googleParameters.getReferral(), builder);
appendParameter(IGoogleAnalyticsParameters.PARAM_PAGE_REQUEST, focusPoint.getContentURI(), builder);
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IGoogleAnalyticsParameters.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IGoogleAnalyticsParameters.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IGoogleAnalyticsParameters.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -27,10 +27,7 @@
public static final char PLUS_SIGN = '+';
public static final char DOT = '.';
public static final char SEMICOLON = ';';
- public static final char JAVA_LOCALE_DELIMITER = '_';
- public static final char BROWSER_LOCALE_DELIMITER = '-';
public static final char PIPE = '|';
- public static final char VERSION_DELIMITER = '.';
public static final String PARAM_HID = "utmhid";
public static final String PARAM_PAGE_REQUEST = "utmp";
Added: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IUserAgent.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IUserAgent.java (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IUserAgent.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.googleanalytics;
+
+/**
+ * @author Andre Dietisheim
+ */
+public interface IUserAgent {
+
+ public static final char BROWSER_LOCALE_DELIMITER = '-';
+
+ public String getBrowserLanguage();
+ public String toString();
+}
Property changes on: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/IUserAgent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseEnvironment.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -10,22 +10,20 @@
******************************************************************************/
package org.jboss.tools.usage.reporting;
-import java.text.MessageFormat;
import java.util.Random;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.usage.googleanalytics.AbstractGoogleAnalyticsParameters;
import org.jboss.tools.usage.googleanalytics.IGoogleAnalyticsParameters;
+import org.jboss.tools.usage.googleanalytics.IUserAgent;
import org.jboss.tools.usage.internal.JBossToolsUsageActivator;
import org.jboss.tools.usage.preferences.IUsageReportPreferenceConstants;
import org.jboss.tools.usage.util.BundleUtils;
-import org.jboss.tools.usage.util.PreferencesUtils;
import org.jboss.tools.usage.util.BundleUtils.IBundleEntryFilter;
+import org.jboss.tools.usage.util.PreferencesUtils;
import org.osgi.framework.Bundle;
/**
@@ -34,12 +32,8 @@
public class EclipseEnvironment extends AbstractGoogleAnalyticsParameters implements IGoogleAnalyticsParameters {
private static final String SYSPROP_JAVA_VERSION = "java.version";
- private static final String USERAGENT_WIN = "{0}/{1} (Windows; U; Windows NT 6.1; {2})"; //$NON-NLS-1$
- private static final String USERAGENT_MAC = "{0}/{1} (Macintosh; U; Intel Mac OS X 10.5; {2})"; //$NON-NLS-1$
- private static final String USERAGENT_LINUX = "{0}/{1} (X11; U; Linux i686; {2})"; //$NON-NLS-1$
- private static final char BUNDLE_GROUP_DELIMITER = '-';
private static final String JBOSS_TOOLS_BUNDLES_PREFIX = "org\\.jboss\\.tools.+"; //$NON-NLS-1$
- private static final String ECLIPSE_RUNTIME_BULDEID = "org.eclipse.core.runtime"; //$NON-NLS-1$
+ private static final char BUNDLE_GROUP_DELIMITER = '-';
private String screenResolution;
private String screenColorDepth;
@@ -49,11 +43,13 @@
private String lastVisit;
private String currentVisit;
private long visitCount;
+ private IUserAgent eclipseUserAgent;
public EclipseEnvironment(String accountName, String hostName, String referral, IEclipsePreferences preferences) {
super(accountName, hostName, referral);
this.random = new Random();
this.preferences = preferences;
+ eclipseUserAgent = createEclipseUserAgent();
initScreenSettings();
initVisits();
}
@@ -83,26 +79,12 @@
visitCount = preferences.getLong(IUsageReportPreferenceConstants.VISIT_COUNT, 1);
}
- public String getBrowserLanguage() {
- String nl = getNL();
- if (nl == null) {
- return ""; //$NON-NLS-1$
- }
-
- int indexOf = nl.indexOf(JAVA_LOCALE_DELIMITER); //$NON-NLS-1$
- if (indexOf <= 0) {
- return nl;
- }
-
- StringBuilder builder = new StringBuilder();
- builder.append(nl.substring(0, indexOf));
- builder.append(BROWSER_LOCALE_DELIMITER);
- builder.append(nl.substring(indexOf + 1));
- return builder.toString();
+ protected IUserAgent createEclipseUserAgent() {
+ return new EclipseUserAgent();
}
- protected String getNL() {
- return Platform.getNL(); //$NON-NLS-1$
+ public String getBrowserLanguage() {
+ return eclipseUserAgent.getBrowserLanguage();
}
public String getScreenResolution() {
@@ -126,77 +108,9 @@
}
public String getUserAgent() {
-
- String productId = getApplicationName();
- String productVersion = getApplicationVersion();
- String browserLanguage = getBrowserLanguage();
-
- /**
- * Google API for android: this.userAgent = String.format(
- * "GoogleAnalytics/%s (Linux; U; Android %s; %s-%s; %s; Build/%s)" ,
- * new Object[] { "1.0" , Build.VERSION.RELEASE ,
- * (localLocale.getLanguage() != null) ?
- * localLocale.getLanguage().toLowerCase() : "en" ,
- * (localLocale.getCountry() != null) ?
- * localLocale.getCountry().toLowerCase() : "" , Build.MODEL, Build.ID
- * });
- */
-
- return MessageFormat.format(
- getUserAgentPattern(getOS())
- , productId
- , productVersion
- , browserLanguage
- );
+ return eclipseUserAgent.toString();
}
- private String getUserAgentPattern(String os) {
- String userAgentPattern = ""; //$NON-NLS-1$
- /*
- * TODO: implement architecture (i686, x86_64 etc.), Windows version, MacOS version etc.
- */
- if (Platform.OS_LINUX.equals(os)) {
- return USERAGENT_LINUX; //$NON-NLS-1$
- } else if (Platform.OS_MACOSX.equals(os)) {
- return USERAGENT_MAC; //$NON-NLS-1$
- } else if (Platform.OS_WIN32.equals(os)) {
- return USERAGENT_WIN; //$NON-NLS-1$
- }
- return userAgentPattern;
- }
-
- protected String getOS() {
- return Platform.getOS();
- }
-
- protected String getApplicationName() {
- return getApplicationBundle().getSymbolicName();
- }
-
- protected String getApplicationVersion() {
- String fullVersion = getApplicationBundle().getVersion().toString();
- int productVersionStart = fullVersion.lastIndexOf(VERSION_DELIMITER);
- if (productVersionStart > 0) {
- return fullVersion.substring(0, productVersionStart);
- } else {
- return fullVersion;
- }
- }
-
- /**
- * Returns the bundle that launched the application that this class runs in.
- *
- * @return the defining bundle
- */
- private Bundle getApplicationBundle() {
- IProduct product = Platform.getProduct();
- if (product != null) {
- return product.getDefiningBundle();
- } else {
- return Platform.getBundle(ECLIPSE_RUNTIME_BULDEID);
- }
- }
-
public String getUserId() {
String userId = preferences.get(IUsageReportPreferenceConstants.ECLIPSE_INSTANCE_ID, null);
if (userId == null) {
Added: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java
===================================================================
--- trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java (rev 0)
+++ trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.reporting;
+
+import java.text.MessageFormat;
+
+import org.eclipse.core.runtime.IProduct;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.usage.googleanalytics.IUserAgent;
+import org.osgi.framework.Bundle;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class EclipseUserAgent implements IUserAgent {
+
+ public static final char JAVA_LOCALE_DELIMITER = '_';
+
+ private static final String ECLIPSE_RUNTIME_BULDEID = "org.eclipse.core.runtime"; //$NON-NLS-1$
+
+ private static final String USERAGENT_WIN = "{0}/{1} (Windows; U; Windows NT 6.1; {2})"; //$NON-NLS-1$
+ private static final String USERAGENT_MAC = "{0}/{1} (Macintosh; U; Intel Mac OS X 10.5; {2})"; //$NON-NLS-1$
+ private static final String USERAGENT_LINUX = "{0}/{1} (X11; U; Linux i686; {2})"; //$NON-NLS-1$
+
+ public static final char VERSION_DELIMITER = '.';
+
+ private String browserLanguage;
+
+ private String createBrowserLanguage() {
+ String nl = getNL();
+ if (nl == null) {
+ return ""; //$NON-NLS-1$
+ }
+
+ int indexOf = nl.indexOf(JAVA_LOCALE_DELIMITER); //$NON-NLS-1$
+ if (indexOf <= 0) {
+ return nl;
+ }
+
+ StringBuilder builder = new StringBuilder();
+ builder.append(nl.substring(0, indexOf));
+ builder.append(BROWSER_LOCALE_DELIMITER);
+ builder.append(nl.substring(indexOf + 1));
+ return builder.toString();
+ }
+
+ protected String getNL() {
+ return Platform.getNL();
+ }
+
+ public String getBrowserLanguage() {
+ if (browserLanguage == null) {
+ browserLanguage = createBrowserLanguage();
+ }
+ return browserLanguage;
+ }
+
+ public String toString() {
+ String productId = getApplicationName();
+ String productVersion = getApplicationVersion();
+
+ /**
+ * Google API for android: this.userAgent = String.format(
+ * "GoogleAnalytics/%s (Linux; U; Android %s; %s-%s; %s; Build/%s)" ,
+ * new Object[] { "1.0" , Build.VERSION.RELEASE ,
+ * (localLocale.getLanguage() != null) ?
+ * localLocale.getLanguage().toLowerCase() : "en" ,
+ * (localLocale.getCountry() != null) ?
+ * localLocale.getCountry().toLowerCase() : "" , Build.MODEL, Build.ID
+ * });
+ */
+
+ return MessageFormat.format(
+ getUserAgentPattern(getOS())
+ , productId
+ , productVersion
+ , getBrowserLanguage()
+ );
+ }
+
+ protected String getOS() {
+ return Platform.getOS();
+ }
+
+ protected String getApplicationName() {
+ return getApplicationBundle().getSymbolicName();
+ }
+
+ protected String getApplicationVersion() {
+ String fullVersion = getApplicationBundle().getVersion().toString();
+ int productVersionStart = fullVersion.lastIndexOf(VERSION_DELIMITER);
+ if (productVersionStart > 0) {
+ return fullVersion.substring(0, productVersionStart);
+ } else {
+ return fullVersion;
+ }
+ }
+
+ /**
+ * Returns the bundle that launched the application that this class runs in.
+ *
+ * @return the defining bundle
+ */
+ private Bundle getApplicationBundle() {
+ IProduct product = Platform.getProduct();
+ if (product != null) {
+ return product.getDefiningBundle();
+ } else {
+ return Platform.getBundle(ECLIPSE_RUNTIME_BULDEID);
+ }
+ }
+
+ private String getUserAgentPattern(String os) {
+ String userAgentPattern = ""; //$NON-NLS-1$
+ /*
+ * TODO: implement architecture (i686, x86_64 etc.), Windows version, MacOS version etc.
+ */
+ if (Platform.OS_LINUX.equals(os)) {
+ return USERAGENT_LINUX; //$NON-NLS-1$
+ } else if (Platform.OS_MACOSX.equals(os)) {
+ return USERAGENT_MAC; //$NON-NLS-1$
+ } else if (Platform.OS_WIN32.equals(os)) {
+ return USERAGENT_WIN; //$NON-NLS-1$
+ }
+ return userAgentPattern;
+ }
+}
Property changes on: trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/EclipseUserAgent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/usage/tests/org.jboss.tools.usage.test/EclipseEnvironmentTest.launch
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/EclipseEnvironmentTest.launch 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/EclipseEnvironmentTest.launch 2010-09-09 18:00:10 UTC (rev 24848)
@@ -15,7 +15,7 @@
<booleanAttribute key="includeOptional" value="true"/>
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmenTest.java"/>
+<listEntry value="/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -29,7 +29,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.usage.test.EclipseEnvironmenTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.usage.test.EclipseUserAgentTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.usage.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/usage/tests/org.jboss.tools.usage.test/JBossToolsUsageIntegrationTest.launch
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/JBossToolsUsageIntegrationTest.launch 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/JBossToolsUsageIntegrationTest.launch 2010-09-09 18:00:10 UTC (rev 24848)
@@ -12,6 +12,7 @@
<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/JBossToolsUsageIntegrationTest"/>
<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.jboss.tools.gwt.core,org.jboss.tools.gwt.ui,org.jboss.tools.common.model,org.jboss.tools.common"/>
<booleanAttribute key="includeOptional" value="true"/>
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -36,8 +37,8 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="com.jboss.jbds.product.product"/>
<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.app@default:default,org.eclipse.datatools.sqltools.debugger.core.ui@default:default,org.eclipse.datatools.enablement.postgresql@default:default,org.apache.commons.httpclient*3.1.0.v201005080502@default:default,org.eclipse.jst.common.frameworks@default:default,org.eclipse.ui.browser@default:default,org.eclipse.datatools.enablement.ingres@default:default,org.eclipse.wst.xsl@default:default,org.eclipse.core.runtime@default:true,org.eclipse.jem.beaninfo@default:default,org.eclipse.datatools.sqltools.editor.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.sdk@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.datatools.enablement.msft.sqlserver@default:default,org.eclipse.datatools.sqltools.plan@default:default,org.eclipse.ui.intro.uni!
versal@default:default,org.eclipse.datatools.sqltools.parsers.sql@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.jem@default:default,org.eclipse.equinox.p2.ui@default:default,org.hibernate.eclipse.mapper@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.jst.j2ee.infopop@default:default,org.eclipse.jst.j2ee.navigator.ui@default:default,org.jboss.tools.common.gef@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.datatools.connectivity.db.generic.ui@default:default,org.jboss.tools.jmx.ui@default:default,org.eclipse.wst.xsl.xalan@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.datatools.connectivity.ui@default:default,org.eclipse.wst.ws@default:default,org.eclipse.wst.xml.ui@default:default,org.jboss.tools.seam.pages.xml@!
default:default,org.eclipse.wst.ws.infopop@default:default,org!
.eclipse
.datatools.enablement.sap.maxdb@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.hamcrest.core@default:default,org.eclipse.jpt.eclipselink.core@default:default,org.eclipse.emf.importer.java@default:default,org.eclipse.jst.jsp.ui@default:default,org.jboss.ide.eclipse.as.classpath.ui@default:default,org.eclipse.jface@default:default,org.eclipse.jst.server.core@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.jst.common.project.facet.core@default:default,org.eclipse.jst.ws.axis.consumption.core@default:default,org.eclipse.jst.j2ee.webservice@default:default,org.eclipse.datatools.sqltools.parsers.sql.query@default:default,org.eclipse.jst.ws.consumption.ui@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ui.views@default:default,org.eclipse.wst.server.ui@default:default,org.eclipse.wst.ws.explorer@default:default,org.eclipse.wst.wsi.ui.doc.user@default:default,org.eclipse.wst.internet.cache@default:default,org.e!
clipse.jpt.eclipselink.ui@default:default,org.jboss.tools.jst.web.ui@default:default,org.eclipse.datatools.sqltools.parsers.sql.xml.query@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.datatools.connectivity.dbdefinition.genericJDBC@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.datatools.sqltools.tabledataeditor@default:default,org.eclipse.help.base@default:default,org.eclipse.jpt.db@default:default,org.eclipse.jst.ejb.ui@default:default,org.eclipse.jdt.launching.macosx@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.datatools.modelbase.sql.edit@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.apache.jasper@default:default,org.eclipse.datatools.connectivity.apache.derby.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.datatools!
.enablement.mysql@default:default,org.eclipse.pde.doc.user@def!
ault:def
ault,org.eclipse.pde.core@default:default,org.eclipse.jst.ws.ui@default:default,org.eclipse.wst.wsi.ui@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.pde.runtime@default:default,org.jboss.tools.hibernate.ui@default:default,org.eclipse.ui@default:default,org.eclipse.core.databinding@default:default,org.apache.commons.logging*1.0.4.v200904062259@default:default,org.eclipse.wst.xsl.doc@default:default,org.eclipse.datatools.sqltools.db.derby.ui@default:default,org.eclipse.datatools.sqltools.sql@default:default,org.eclipse.datatools.enablement.mysql.dbdefinition@default:default,org.eclipse.datatools.enablement.hsqldb.dbdefinition@default:default,org.eclipse.datatools.connectivity.db.generic@default:default,org.eclipse.team.ui@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.jst.jsf.common@default:default,org.jboss.ide.eclipse.as.ssh@default:default,org.eclipse.jface.!
databinding@default:default,org.eclipse.wst.dtdeditor.doc.user@default:default,org.eclipse.jem.workbench@default:default,org.eclipse.jst.ws.axis2.ui@default:default,org.eclipse.core.resources@default:default,org.eclipse.datatools.enablement.sqlite.dbdefinition@default:default,org.eclipse.core.expressions@default:default,org.eclipse.datatools.common.doc.user@default:default,org.eclipse.datatools.enablement.sybase@default:default,org.eclipse.emf@default:default,org.eclipse.datatools.enablement.oracle@default:default,org.eclipse.ui.cocoa@default:false,org.jboss.ide.eclipse.archives.webtools@default:default,org.eclipse.jst.ejb.ui.infopop@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.datatools.modelbase.sql@default:default,org.eclipse.datatools.enablement.postgresql.ui@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.equinox.p2.cons!
ole@default:default,org.eclipse.wst.validation@default:default!
,org.ecl
ipse.datatools.enablement.sybase.ase.ui@default:default,org.eclipse.wst.server.ui.infopop@default:default,org.eclipse.wst.sse.core@default:default,org.sat4j.pb@default:default,org.apache.bcel@default:default,org.apache.lucene.analysis@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.jst.server.generic.oc4j@default:default,org.eclipse.datatools.help@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.datatools.enablement.jdt.classpath@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.datatools.sqltools.ddlgen.ui@default:default,org.eclipse.jst.ws.axis.infopop@default:default,org.eclipse.wst.command.env.core@default:default,org.eclipse.update.configurator@3:true,org.apache.oro@default:default,org.eclipse.datatools.modelbase.sql.query.edit@default:default,org.eclipse.datatools.enablement.oda.xml@default:default,org.eclipse.datatools.sqltools.sqleditor@default:default,org!
.eclipse.wst.xml.core@default:default,org.eclipse.jdt.launching.ui.macosx@default:default,org.eclipse.wst.wsdl@default:default,org.eclipse.datatools.sqltools.debugger.core@default:default,org.eclipse.datatools.enablement.sqlite.ui@default:default,org.eclipse.search@default:default,org.eclipse.equinox.ds@default:true,org.eclipse.datatools.enablement.sybase.ui@default:default,org.apache.commons.discovery@default:default,org.apache.wsil4j@default:default,org.eclipse.wst.xsl.launching@default:default,org.eclipse.equinox.security.ui@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.eclipse.jdt.launching@default:default,org.apache.axis@default:default,org.eclipse.ecf.identity@default:default,org.jboss.tools.common.text.xml@default:default,org.eclipse.core.net@default:default,org.eclipse.wst.wsdl.validation@default:default,org.hibernate.eclipse.jdt.ui@default:default,org.eclipse.datatools.sqltools.db.generic@default:default,org.eclipse.datatools.modelbase.d!
erby@default:default,org.eclipse.jdt.apt.core@default:default,!
org.ecli
pse.jdt.debug.ui@default:default,org.eclipse.datatools.enablement.sybase.ase.models@default:default,org.eclipse.wst.xsl.jaxp.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.jst.j2ee@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.datatools.connectivity.doc.user@default:default,org.eclipse.jst.pagedesigner.jsf.ui@default:default,org.eclipse.jst.ws.consumption.ui.doc.user@default:default,org.eclipse.emf.codegen.ui@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.datatools.enablement.sybase.models@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.ant.core@default:default,org.eclipse.wst.jsdt.support.ie@default:default,org.eclipse.wst.xsdeditor.doc.user@default:default,org.eclipse.ecf@default:default,org.eclipse.datatools.enablement.finfo@default:default,org.eclipse.datatools.conne!
ctivity.sqm.core@default:default,org.jboss.ide.eclipse.as.ui.mbeans@default:default,org.jboss.tools.common.ui@default:default,org.eclipse.team.cvs.ui@default:default,org.jboss.tools.common.resref.core@default:default,org.eclipse.datatools.enablement.ibm.db2.luw.ui@default:default,org.eclipse.jst.ws@default:default,org.eclipse.help.appserver@default:default,org.eclipse.jst.j2ee.jca@default:default,org.apache.xerces@default:default,org.eclipse.jst.server.generic.jonas@default:default,org.jboss.tools.hibernate.xml.ui@default:default,org.eclipse.help.webapp@default:default,org.apache.commons.httpclient*3.1.0.v20080605-1935@default:default,org.eclipse.wst.web.ui@default:default,org.jboss.ide.eclipse.as.wtp.core@default:default,org.eclipse.jst.servlet.ui.infopop@default:default,org.eclipse.datatools.enablement.sqlite@default:default,org.eclipse.jpt.gen@default:default,org.eclipse.jst.j2ee.xdoclet.runtime@default:default,org.eclipse.platform@default:default,org.eclipse.jdt.debug@d!
efault:default,org.eclipse.datatools.enablement.oracle.ui@defa!
ult:defa
ult,org.eclipse.jpt.doc.user@default:default,org.eclipse.jpt.utility@default:default,org.hibernate.eclipse.console@default:default,org.eclipse.core.commands@default:default,org.eclipse.pde.build@default:default,org.jboss.tools.jst.jsp@default:default,org.eclipse.jst.j2ee.ejb@default:default,org.eclipse.jpt.core@default:default,javax.xml@default:default,org.eclipse.datatools.sqltools.result@default:default,org.eclipse.jst.ejb.doc.user@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.emf.ant@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.datatools.enablement.hsqldb.ui@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.datatools.sqltools.schemaobjecteditor.ui@default:default,org.eclipse.datatools.enablement.hsqldb@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.debug.core@default:default,org.eclipse.core.boot@default:default,org.eclipse.datatools.enablement.oda.x!
ml.ui@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.emf.mapping.ecore2xml.ui@default:default,org.jboss.tools.common.el.ui@default:default,org.mortbay.jetty.server@default:default,org.eclipse.equinox.util@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.datatools.sqltools.sqlscrapbook@default:default,org.eclipse.jst.ws.infopop@default:default,org.eclipse.jst.j2ee.ui@default:default,org.eclipse.jst.ws.axis.consumption.ui@default:default,org.hibernate.eclipse.jdt.apt.ui@default:default,org.eclipse.jst.j2ee.webservice.ui@default:default,org.eclipse.jst.common.annotations.controller@default:default,org.eclipse.wst.xsl.jaxp.debug.ui@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.jst.jsf.common.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.datatools.connectivity.oda@default:default,org.eclipse.jst.common.project.facet.ui@default:default,org.eclipse.emf.edit@default:default,org.e!
clipse.emf.converter@default:default,org.eclipse.jst.ws.consum!
ption.in
fopop@default:default,org.eclipse.datatools.enablement.ibm.informix.ui@default:default,org.eclipse.ui.navigator@default:default,org.jboss.tools.common.text.ext@default:default,org.jboss.tools.seam.ui.pages@default:default,org.eclipse.datatools.enablement.ibm.db2.iseries@default:default,org.eclipse.wst.wsdl.ui@default:default,org.eclipse.datatools.connectivity.oda.flatfile.ui@default:default,org.eclipse.ui.intro@default:default,org.eclipse.jem.beaninfo.vm.common@default:default,org.eclipse.ui.cheatsheets@default:default,org.jboss.tools.seam.core@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.ant.ui@default:default,org.eclipse.datatools.enablement.sap.maxdb.ui@default:default,org.eclipse.datatools.connectivity.sqm.server.ui@default:default,org.eclipse.datatools.enablement.ibm.db2.iseries.dbdefinition@default:default,org.eclipse.wst.command.env.infopop@default:default,org.eclipse.core.jobs@default:default,org.jboss.tools.seam.xml@default:default,org!
.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.core.contenttype@default:default,org.apache.commons.codec*1.3.0.v20100518-1140@default:default,org.eclipse.datatools.sqltools.sql.ui@default:default,org.eclipse.jem.beaninfo.vm@default:default,javax.activation@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.jboss.tools.common.projecttemplates@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.wst.command.env.doc.user@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.jboss.tools.hibernate.xml@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.datatools.enablement.msft.sqlserver.dbdefinition@default:default,org.eclipse.wst.xsl.core@default:default,org.eclipse.wst.jsdt.web.core@default:default,org.eclipse.wst.server.preview@default:default,org.eclipse.xsd.edit@default:default,org.e!
clipse.datatools.enablement.ingres.dbdefinition@default:defaul!
t,org.ec
lipse.wst.sse.ui.infopop@default:default,org.jboss.tools.seam.xml.ui@default:default,org.eclipse.team.core@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.datatools.enablement.ingres.ui@default:default,org.eclipse.ui.console@default:default,org.eclipse.jst.jsf.core@default:default,org.eclipse.wst.wsdl.ui.doc.user@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.equinox.common@2:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.jst.ws.axis2.consumption.core@default:default,org.eclipse.datatools.sqltools.sqlbuilder@default:default,org.eclipse.wst.ws.ui@default:default,org.eclipse.datatools.sqltools.result.ui@default:default,org.eclipse.jst.jsf.standard.tagsupport@default:default,org.eclipse.osgi.util@default:default,org.eclipse.wst.server.http.ui@default:default,org.eclipse.datatools.sqltools.parsers.sql.lexer@default:default,org.jboss.tools.jst.web@default:default,org.eclipse.debug.ui@default:default,org.eclip!
se.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.emf.mapping.ecore2ecore.editor@default:default,org.eclipse.jst.pagedesigner.jsp.core@default:default,org.eclipse.wst.xsl.jaxp.debug@default:default,org.apache.xml.serializer@default:default,org.eclipse.datatools.enablement.oda.ws@default:default,org.eclipse.datatools.enablement.oda.ws.ui@default:default,org.eclipse.jst.j2ee.ejb.annotations.emitter@default:default,org.jboss.tools.jst.text.ext@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.apache.commons.logging*1.0.4.v201005080501@default:default,org.eclipse.datatools.enablement.sybase.ase@default:default,org.eclipse.wst.doc.user@default:default,org.eclipse.jst.j2ee.doc.user@default:default,org.apache.commons.lang*2.3.0.v201005080501@default:default,org.eclipse.jst.common.annotations.ui@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.team.svn@default:default,org.eclipse.jst.jsf.facesconfig@default:default,!
org.eclipse.datatools.connectivity@default:default,org.eclipse!
.jst.com
mon.annotations.core@default:default,org.eclipse.datatools.enablement.ibm.db2.iseries.ui@default:default,org.jboss.ide.eclipse.as.ui@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,java_cup.runtime@default:default,javax.xml.rpc@default:default,com.jcraft.jsch@default:default,org.eclipse.wst.html.ui@default:default,org.jboss.ide.eclipse.as.core@default:default,org.eclipse.emf.importer@default:default,org.eclipse.datatools.enablement.sybase.asa.dbdefinition@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.jst.server.generic.jboss@default:default,net.sourceforge.lpg.lpgjavaruntime@default:default,org.eclipse.wst.jsdt.doc@default:default,org.jdom@default:default,javax.wsdl*1.5.1.v201005080630@default:default,org.eclipse.datatools.modelbase.sql.xml.query@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.ecl!
ipse.datatools.enablement.ibm.informix@default:default,org.jboss.tools.jst.web.kb@default:default,org.eclipse.ui.editors@default:default,org.eclipse.datatools.sqltools.doc.user.contexts@default:default,org.eclipse.ui.ide@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.wst.html.ui.infopop@default:default,org.eclipse.datatools.sqltools.common.ui@default:default,org.eclipse.datatools.modelbase.dbdefinition@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.jst.j2ee.core@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.jpt.branding@default:default,org.eclipse.jst.ws.axis.creation.ui@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.wst.xsl.ui@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.wst.ws.service.policy@default:default,org.eclipse.emf.ecore.change!
@default:default,org.eclipse.datatools.connectivity.oda.design!
.ui@defa
ult:default,org.eclipse.osgi@-1:true,org.eclipse.team.svn.help@default:default,org.eclipse.datatools.enablement.ibm.db2.zseries@default:default,org.jboss.tools.common.model.ui@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.core.variables@default:default,org.eclipse.datatools.doc.user@default:default,org.eclipse.datatools.connectivity.console.profile@default:default,org.eclipse.emf.common@default:default,org.eclipse.wst.web@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.jst.jee.ejb@default:default,org.jboss.ide.eclipse.as.wtp.ui@default:default,org.eclipse.ui.forms@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,javax.servlet@default:default,org.eclipse.wst.ws.service.policy.ui@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.jst.server.ui.doc.user@default:default,org.eclipse.wst.server.discovery@default:default,org.eclipse.core.databinding.propert!
y@default:default,org.eclipse.datatools.intro@default:default,org.eclipse.jem.proxy@default:default,org.eclipse.datatools.sqltools.routineeditor@default:default,org.eclipse.jst.ws.axis.ui.doc.user@default:default,org.apache.lucene@default:default,org.eclipse.wst.xsl.saxon@default:default,org.apache.velocity@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.wst.internet.monitor.ui@default:default,org.eclipse.ui.net@default:default,org.eclipse.jst.jee.web@default:default,org.eclipse.jst.server.generic.ui@default:default,org.eclipse.jst.jee.ui@default:default,org.eclipse.datatools.connectivity.sqm.core.ui@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.wst.jsdt.web.support.jsp@default:default,org.apache.log4j*1.2.15.v201005080500@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.datatools.enablement.sybase.asa.ui@default:default,org.eclipse.wst.dtd.ui@default:default,org.eclipse.datat!
ools.enablement.ibm.ui@default:default,org.eclipse.jst.server.!
ui@defau
lt:default,org.eclipse.jst.j2ee.ejb.annotations.ui@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,javax.xml.soap@default:default,org.eclipse.jst.server.tomcat.ui@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.jdt.doc.user@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.eclipse.datatools.sqltools.db.derby@default:default,org.junit4@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.datatools.sqltools.routineeditor.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.sat4j.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.wst.dtd.ui.infopop@default:default,org.eclipse.datatools.connectivity.ui.dse@default:default,org.hibernate.eclipse@default:default,org.eclipse.ui.workbench@default:default,org.jboss.tools.common@default:default,org.eclips!
e.datatools.sqltools.data.core@default:default,org.eclipse.wst.command.env@default:default,org.eclipse.datatools.connectivity.oda.consumer@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.wst.dtd.core@default:default,org.eclipse.datatools.sqltools.db.generic.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jst.server.preview.adapter@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.datatools.sqltools.schemaobjecteditor.ui.pages@default:default,org.apache.log4j*1.2.13.v200903072027@default:default,org.eclipse.pde.ui@default:default,org.eclipse.wst.css.core@default:default,org.jboss.tools.jsf.text.ext@default:default,org.eclipse.pde@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.jem.util@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.datatools.enablement.mysql.ui@default:default,org.eclipse.wst.html.core@default:default,org.apache.xalan@default:def!
ault,org.eclipse.wst.common.environment@default:default,org.ec!
lipse.em
f.importer.rose@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.datatools.enablement.sap.maxdb.dbdefinition@default:default,javax.servlet.jsp@default:default,org.eclipse.jst.jee@default:default,org.eclipse.jst.server.generic.core@default:default,org.eclipse.jst.servlet.ui@default:default,org.eclipse.update.ui@default:default,org.eclipse.jst.ws.axis2.creation.ui@default:default,org.eclipse.jst.ws.uddiregistry@default:default,org.eclipse.wst.wsi@default:default,javax.wsdl*1.6.2.v201005080631@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.rcp@default:default,org.jboss.tools.hibernate.jpt.ui@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.wst.sse.doc.user@default:default,org.jboss.tools.common.model@default:default,org.eclipse.wst.webtools.doc.user@default:default,org.eclipse.ui.externalto!
ols@default:default,org.eclipse.datatools.sqltools.schemaobjecteditor@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.security@default:default,org.eclipse.jst.server.tomcat.core@default:default,org.eclipse.cvs@default:default,org.eclipse.jst.j2ee.ejb.annotation.model@default:default,org.eclipse.jst.j2ee.jca.ui@default:default,org.eclipse.jst.ws.creation.ejb.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.hibernate.eclipse.help@default:default,org.eclipse.datatools.modelbase.sql.query@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.xsd@default:default,org.eclipse.wst.web.ui.infopop@default:default,org.eclipse.pde.ds.ui@default:default,org.apache.xml.resolver@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.jpt.eclipselink.core.ddlgen@default:default,org.eclipse.datatools.connectivity.oda.template.ui@default:default,org.eclipse.wst!
.common.project.facet.ui@default:default,org.eclipse.wst.serve!
r.core@d
efault:default,org.eclipse.datatools.connectivity.doc.user.contexts@default:default,org.eclipse.draw2d@default:default,org.apache.ant@default:default,org.eclipse.jst.jsf.common.runtime@default:default,org.jboss.ide.eclipse.as.classpath.core@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.datatools.connectivity.apache.derby.dbdefinition@default:default,org.eclipse.swt@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.datatools.sqltools.editor.core.ui@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jst.pagedesigner@default:default,org.eclipse.jst.ws.axis2.consumption.ui@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.datatools.sqltools.doc.user@default:default,org.eclipse.datatools.connectivity.oda.flatfile@default:default,org.eclipse.datatools.!
enablement.ibm.db2.zseries.ui@default:default,org.eclipse.jst.jsf.apache.trinidad.tagsupport@default:default,org.eclipse.jst.jsf.doc.user@default:default,org.eclipse.jst.jsf.facesconfig.ui@default:default,org.eclipse.text@default:default,org.eclipse.jst.j2ee.web@default:default,org.mortbay.jetty.util@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.jface.text@default:default,org.eclipse.jst.ws.axis2.ui.doc.user@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.jdt.core@default:default,org.apache.commons.collections@default:default,org.apache.commons.codec*1.3.0.v20100106-1700@default:default,org.eclipse.jst.jsf.ui@default:default,org.eclipse.ui.workbench.compatibility@default:false,javax.mail@default:default,org.eclipse.jst.jsp.core@default:default,org.eclipse.compare@default:default,org.eclipse.jdt@default:default,org.eclipse.datatools.enablement.msft.sqlserver.ui@default:default,org.eclipse.jst.server.websphere.core@d!
efault:default,org.eclipse.jst.ws.doc.user@default:default,org!
.eclipse
.datatools.enablement.sybase.ase.dbdefinition@default:default,org.eclipse.datatools.enablement.sybase.asa.models@default:default,org.jboss.tools.jmx.core@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jst.server.ui.infopop@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.emf.exporter@default:default,org.eclipse.datatools.enablement.postgresql.dbdefinition@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.datatools.connectivity.apache.derby@default:default,org.eclipse.wst.jsdt.web.ui@default:default,org.jboss.ide.eclipse.archives.core@default:default,org.objectweb.asm@default:default,org.eclipse.datatools.connectivity.oda.design@default:default,org.eclipse.wst.xsl.debug.ui@default:default,org.eclipse.datatools.enablement.ibm.db2.zseries.dbdefinition@default:default,org.eclipse.jpt.ui@default:default,org.eclipse.wst.xml.xpath.ui@default:defa!
ult,org.eclipse.jst.standard.schemas@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.gef@default:default,org.eclipse.jsch.core@default:default,org.eclipse.datatools.enablement.ibm.db2.luw@default:default,org.eclipse.wst.server.http.core@default:default,org.eclipse.jpt.eclipselink.branding@default:default,org.eclipse.datatools.enablement.sybase.asa.schemaobjecteditor.examples@default:default,org.eclipse.update.core@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.datatools.enablement.sybase.asa@default:default,org.eclipse.platform.doc.isv@default:default,org.jboss.tools.hibernate.jpt.core@default:default,org.eclipse.wst.internet.monitor.core@default:default,com.ibm.icu@default:default,org.eclipse.jst.ws.axis2.core@default:default,org.eclipse.wst.server.ui.doc.user@default:default,org.eclipse.datatools.oda.cshelp@default:default,org.eclipse.jst.ws.axis2.creation.core@default:defaul!
t,org.eclipse.jst.j2ee.ejb.annotations.xdoclet@default:default!
,org.ecl
ipse.equinox.p2.core@default:default,org.eclipse.wst.ws.parser@default:default,org.jboss.ide.eclipse.archives.ui@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.security.macosx@default:false,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.wst.server.preview.adapter@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.datatools.enablement.oracle.dbdefinition@default:default,org.eclipse.help.ui@default:default,org.eclipse.jst.ws.creation.ui@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.compare.core@default:default,org.eclipse.wst.sse.ui@default:default,org.jboss.tools.seam.ui@default:default,org.jboss.tools.seam.text.ext@default:default,org.eclipse.datatools.enablement.ibm.informix.dbdefinition@default:default,org.eclipse.help@default:default,org.eclipse.jst.ws.consumption@default:default,org.jboss.tools.common.el.core@default:de!
fault,org.apache.commons.el@default:default,org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.datatools.connectivity.oda.profile@default:default,org.eclipse.jst.jsp.ui.infopop@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.command.env.ui@default:default,org.eclipse.jpt.db.ui@default:default,org.eclipse.datatools.sqltools.data.ui@default:default,org.eclipse.wst.common.ui@default:default,org.apache.commons.lang*2.1.0.v201005080500@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wst.common.snippets@default:default,org.jboss.tools.jsf@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.jboss.tools.gwt.core@default:default,org.jboss.tools.xulrunner.initializer@default:false,org.jboss.tools.common.model@default:default,org.jboss.tools.usage.test@default:default,org.jboss.tools.common@default:default,org.eclipse.jst.j2ee.core@default:default,org.jboss.tools.usage@default:default,org.jboss.tools.gwt.ui@default:default"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.app@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.runtime.compatibility.registry@default:false,org.hamcrest.core@default:default,org.eclipse.jface@default:default,org.eclipse.ui@default:default,org.eclipse.core.databinding@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.core.commands@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.common@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi,javax.servlet@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding.observable@default:default,org.junit4@default:default,org.eclipse.ui.workbench@!
default:default,org.eclipse.osgi.services@default:default,org.eclipse.swt@default:default,com.ibm.icu@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.help@default:default,org.eclipse.swt.cocoa.macosx.x86_64@default:false"/>
+<stringAttribute key="selected_workspace_plugins" value="org.jboss.tools.xulrunner.initializer@default:false,org.jboss.tools.usage.test@default:default,org.jboss.tools.usage@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
Modified: trunk/usage/tests/org.jboss.tools.usage.test/UsageTestSuite.launch
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/UsageTestSuite.launch 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/UsageTestSuite.launch 2010-09-09 18:00:10 UTC (rev 24848)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
<booleanAttribute key="append.args" value="true"/>
<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
@@ -12,6 +12,7 @@
<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.jboss.tools.gwt.core,org.jboss.tools.gwt.ui,org.jboss.tools.common.model,org.jboss.tools.common"/>
<booleanAttribute key="includeOptional" value="true"/>
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -21,14 +22,14 @@
<listEntry value="1"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.5.0 (MacOS X Default)"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.usage.test.UsageTestSuite"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.usage.test"/>
@@ -36,10 +37,11 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="com.jboss.jbds.product.product"/>
<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.ui.workbench.texteditor@default:default,com.springsource.javax.servlet.jsp@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.core.databinding@default:default,org.apache.lucene@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.ecf@default:default,org.eclipse.equinox.security.macosx@default:false,org.apache.lucene.analysis@default:default,org.eclipse.ui.ide@default:default,com.ibm.icu@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.junit4@default:default,org.eclipse.core.net@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.osgi@-1:true,org.eclipse.equinox.common@2:true,org.eclipse.core.databinding.property@default:default,or!
g.eclipse.swt@default:default,javax.transaction@default:false,org.eclipse.compare.core@default:default,org.eclipse.osgi.services@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.text@default:default,org.eclipse.core.variables@default:default,javax.servlet@default:default,org.eclipse.core.jobs@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.core.resources@default:default,org.eclipse.ui.views@default:default,org.eclipse.core.expressions@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.app@default:default,org.eclipse.core.resources.compatibility@default:false,org.eclipse.help.base@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.equinox.p2.metadata@default:default,org.apache.jasper@default:default,org.mortbay.jetty.util@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,o!
rg.eclipse.core.databinding.observable@default:default,org.ecl!
ipse.ecf
.provider.filetransfer@default:default,org.eclipse.swt.cocoa.macosx@default:false,org.apache.commons.el@default:default,org.eclipse.ant.core@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,com.springsource.org.apache.commons.logging@default:default,org.jboss.tools.xulrunner.initializer@default:false,com.springsource.javax.el@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.equinox.security@default:default,org.mortbay.jetty.server@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.equinox.p2.engine@default:default,org.eclipse.jface.text@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.help.ui@default:default,org.eclipse.equinox.http.jetty@d!
efault:default,org.eclipse.ui.forms@default:default,org.hamcrest.core@default:default,org.eclipse.core.runtime@default:true,org.apache.ant@default:default,com.springsource.javax.servlet@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.ui@default:default,org.eclipse.core.commands@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.jface@default:default,org.eclipse.help@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.ui.intro@default:default,com.jboss.jbds.product@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.jboss.tools.usage.test@default:default,org.jboss.tools.usage@default:default"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.app@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.runtime.compatibility.registry@default:false,org.hamcrest.core@default:default,org.eclipse.jface@default:default,org.eclipse.ui@default:default,org.eclipse.core.databinding@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.core.commands@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.common@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi,javax.servlet@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding.observable@default:default,org.junit4@default:default,org.eclipse.ui.workbench@!
default:default,org.eclipse.osgi.services@default:default,org.eclipse.swt@default:default,com.ibm.icu@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.help@default:default,org.eclipse.swt.cocoa.macosx.x86_64@default:false"/>
+<stringAttribute key="selected_workspace_plugins" value="org.jboss.tools.xulrunner.initializer@default:false,org.jboss.tools.usage.test@default:default,org.jboss.tools.usage@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfig" value="true"/>
<booleanAttribute key="useDefaultConfigArea" value="false"/>
<booleanAttribute key="useProduct" value="false"/>
Deleted: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmenTest.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmenTest.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmenTest.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.usage.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.Platform;
-import org.jboss.tools.usage.reporting.EclipseEnvironment;
-import org.jboss.tools.usage.reporting.JBossBundleGroups;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-/**
- * @author Andre Dietisheim
- */
-public class EclipseEnvironmenTest {
-
- @Test
- public void testMacOs() {
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(Platform.OS_MACOSX);
- String userAgent = eclipseEnvironment.getUserAgent();
- assertApplicationNameAndVersion("com.jboss.jbds.product", "3.0.1", userAgent);
- assertOs("Macintosh", "Intel Mac OS X 10.5", userAgent);
- assertLanguage("en-US", userAgent);
- }
-
- @Test
- public void testLinux() {
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(Platform.OS_LINUX);
- String userAgent = eclipseEnvironment.getUserAgent();
- assertApplicationNameAndVersion("com.jboss.jbds.product", "3.0.1", userAgent);
- assertOs("X11", "Linux i686", userAgent);
- assertLanguage("en-US", userAgent);
- }
-
- @Test
- public void testWindows() {
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(Platform.OS_WIN32);
- String userAgent = eclipseEnvironment.getUserAgent();
- assertApplicationNameAndVersion("com.jboss.jbds.product", "3.0.1", userAgent);
- assertOs("Windows", "Windows NT 6.1", userAgent);
- assertLanguage("en-US", userAgent);
- }
-
- @Test
- public void testKeyword() {
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake() {
- @Override
- protected Bundle[] getBundles() {
- return new Bundle[] {
- new BundleSymbolicNameFake("org.jboss.tools.seam.ui"),
- new BundleSymbolicNameFake("org.jboss.tools.seam.core"),
- new BundleSymbolicNameFake("org.jboss.tools.gwt.ui"),
- new BundleSymbolicNameFake("org.jboss.tools.gwt.core"),
- new BundleSymbolicNameFake("org.jboss.tools.smooks.core"),
- new BundleSymbolicNameFake("org.eclipse.core.runtime"),
- };
- }
- };
- String keyword = eclipseEnvironment.getKeyword();
-
- Matcher matcher = Pattern.compile("(([A-Z]+)-){3}").matcher(keyword);
- assertTrue(matcher.matches());
- assertTrue(keyword.indexOf(JBossBundleGroups.BundleGroup.GWT.name()) >= 0);
- assertTrue(keyword.indexOf(JBossBundleGroups.BundleGroup.SEAM.name()) >= 0);
- assertTrue(keyword.indexOf(JBossBundleGroups.BundleGroup.SMOOKS.name()) >= 0);
- }
-
- private void assertApplicationNameAndVersion(String applicationName, String applicationVersion, String userAgent) {
- Matcher matcher = Pattern.compile("([a-zA-Z\\.]+)/([0-9\\.]+).+").matcher(userAgent);
- assertTrue(matcher.matches());
- assertEquals(2, matcher.groupCount());
- assertEquals(applicationName, matcher.group(1));
- assertEquals(applicationVersion, matcher.group(2));
- }
-
- private void assertOs(String platform, String os, String userAgent) {
- Matcher matcher = Pattern.compile(".+ \\((.+); U; (.+); .+\\)").matcher(userAgent);
- assertTrue(matcher.matches());
- assertEquals(2, matcher.groupCount());
- assertEquals(platform, matcher.group(1));
- assertEquals(os, matcher.group(2));
- }
-
- private void assertLanguage(String language, String userAgent) {
- Matcher matcher = Pattern.compile(".+ \\(.+; U; .+ .+; (.+)\\)").matcher(userAgent);
- assertTrue(matcher.matches());
- assertEquals(1, matcher.groupCount());
- assertEquals(language, matcher.group(1));
- }
-
- private class BundleSymbolicNameFake implements Bundle {
-
- private String symbolicName;
-
- public BundleSymbolicNameFake(String symbolicName) {
- this.symbolicName = symbolicName;
- }
-
- public Enumeration<?> findEntries(String path, String filePattern, boolean recurse) {
- throw new UnsupportedOperationException();
- }
-
- public BundleContext getBundleContext() {
- throw new UnsupportedOperationException();
- }
-
- public long getBundleId() {
- throw new UnsupportedOperationException();
- }
-
- public URL getEntry(String path) {
- throw new UnsupportedOperationException();
- }
-
- public Enumeration<?> getEntryPaths(String path) {
- throw new UnsupportedOperationException();
- }
-
- public Dictionary<?, ?> getHeaders() {
- throw new UnsupportedOperationException();
- }
-
- public Dictionary<?, ?> getHeaders(String locale) {
- throw new UnsupportedOperationException();
- }
-
- public long getLastModified() {
- throw new UnsupportedOperationException();
- }
-
- public String getLocation() {
- throw new UnsupportedOperationException();
- }
-
- public ServiceReference[] getRegisteredServices() {
- throw new UnsupportedOperationException();
- }
-
- public URL getResource(String name) {
- throw new UnsupportedOperationException();
- }
-
- public Enumeration<?> getResources(String name) throws IOException {
- throw new UnsupportedOperationException();
- }
-
- public ServiceReference[] getServicesInUse() {
- throw new UnsupportedOperationException();
- }
-
- public Map<?, ?> getSignerCertificates(int signersType) {
- throw new UnsupportedOperationException();
- }
-
- public int getState() {
- throw new UnsupportedOperationException();
- }
-
- public String getSymbolicName() {
- return this.symbolicName;
- }
-
- public Version getVersion() {
- throw new UnsupportedOperationException();
-
- }
-
- public boolean hasPermission(Object permission) {
- throw new UnsupportedOperationException();
-
- }
-
- public Class<?> loadClass(String name) throws ClassNotFoundException {
- throw new UnsupportedOperationException();
- }
-
- public void start() throws BundleException {
- throw new UnsupportedOperationException();
-
- }
-
- public void start(int options) throws BundleException {
- throw new UnsupportedOperationException();
- }
-
- public void stop() throws BundleException {
- throw new UnsupportedOperationException();
- }
-
- public void stop(int options) throws BundleException {
- throw new UnsupportedOperationException();
- }
-
- public void uninstall() throws BundleException {
- throw new UnsupportedOperationException();
- }
-
- public void update() throws BundleException {
- throw new UnsupportedOperationException();
- }
-
- public void update(InputStream input) throws BundleException {
- throw new UnsupportedOperationException();
- }
- }
-
- @Test
- public void testVisitsOnFirstVisit() {
- EclipsePreferencesFake preferences = new EclipsePreferencesFake();
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
- String firstVisit = eclipseEnvironment.getFirstVisit();
- assertEquals(1, eclipseEnvironment.getVisitCount());
- assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
- assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
- assertEquals(firstVisit, eclipseEnvironment.getCurrentVisit());
- }
-
- @Test
- public void testVisitsOnSecondVisit() throws InterruptedException {
- EclipsePreferencesFake preferences = new EclipsePreferencesFake();
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
- String firstVisit = eclipseEnvironment.getFirstVisit();
- Thread.sleep(10);
- eclipseEnvironment.visit();
-
- assertEquals(2, eclipseEnvironment.getVisitCount());
- assertEquals(firstVisit, eclipseEnvironment.getFirstVisit());
- assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
- assertTrue(!firstVisit.equals(eclipseEnvironment.getCurrentVisit()));
- }
-
- @Test
- public void testVisitsOnThirdVisit() throws InterruptedException {
- EclipsePreferencesFake preferences = new EclipsePreferencesFake();
- EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
- String firstVisit = eclipseEnvironment.getFirstVisit();
- Thread.sleep(10);
- eclipseEnvironment.visit();
-
- String currentVisit = eclipseEnvironment.getCurrentVisit();
- Thread.sleep(10);
- eclipseEnvironment.visit();
-
- assertEquals(3, eclipseEnvironment.getVisitCount());
- assertEquals(currentVisit, eclipseEnvironment.getLastVisit());
- assertTrue(!firstVisit.equals(eclipseEnvironment.getCurrentVisit()));
- }
-}
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmentFake.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -10,8 +10,8 @@
******************************************************************************/
package org.jboss.tools.usage.test;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.jboss.tools.usage.googleanalytics.IUserAgent;
import org.jboss.tools.usage.reporting.EclipseEnvironment;
/**
@@ -22,48 +22,39 @@
public static final String GANALYTICS_ACCOUNTNAME = "UA-17645367-1";
public static final String HOSTNAME = "jboss.org";
public static final String REFERRAL = "0";
- public static final String LOCALE_US = "en_US";
public static final String JAVA_VERSION = "1.6.0_20";
- private String locale;
- private String os;
private String javaVersion;
public EclipseEnvironmentFake() {
- this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, Platform.OS_LINUX, LOCALE_US, JAVA_VERSION);
+ this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, JAVA_VERSION, new EclipsePreferencesFake());
}
- public EclipseEnvironmentFake(String platform) {
- this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, platform, LOCALE_US, JAVA_VERSION);
- }
-
public EclipseEnvironmentFake(IEclipsePreferences preferences) {
- this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, Platform.OS_LINUX, LOCALE_US, JAVA_VERSION);
+ this(GANALYTICS_ACCOUNTNAME, HOSTNAME, REFERRAL, JAVA_VERSION, preferences);
}
- public EclipseEnvironmentFake(String accountName, String hostName, String referral, String os, String locale) {
- this(accountName, hostName, referral, os, locale, JAVA_VERSION);
+ public EclipseEnvironmentFake(String accountName, String hostName, String referral) {
+ this(accountName, hostName, referral, JAVA_VERSION, new EclipsePreferencesFake());
}
- public EclipseEnvironmentFake(String accountName, String hostName, String referral, String os, String locale,
- String javaVersion, IEclipsePreferences preferences) {
+ public EclipseEnvironmentFake(String accountName, String hostName, String referral, String javaVersion,
+ IEclipsePreferences preferences) {
super(accountName, hostName, referral, preferences);
- this.os = os;
this.javaVersion = javaVersion;
- this.locale = locale;
}
- public EclipseEnvironmentFake(String accountName, String hostName, String referral, String os, String javaVersion,
- String locale) {
- this(accountName, hostName, referral, os, locale, javaVersion, new EclipsePreferencesFake());
- }
-
@Override
protected void initScreenSettings() {
// do not access swt/display
}
@Override
+ protected IUserAgent createEclipseUserAgent() {
+ return new EclipseUserAgentFake();
+ }
+
+ @Override
public String getScreenResolution() {
return 1920 + SCREERESOLUTION_DELIMITER + 1080;
}
@@ -73,27 +64,7 @@
return 24 + SCREENCOLORDEPTH_POSTFIX;
}
- @Override
- protected String getApplicationName() {
- return "com.jboss.jbds.product";
- }
-
- @Override
- protected String getNL() {
- return locale;
- }
-
- @Override
- protected String getOS() {
- return os;
- }
-
- @Override
- protected String getApplicationVersion() {
- return "3.0.1";
- }
-
- protected String getJavaVersion() {
+ public String getFlashVersion() {
return javaVersion;
}
}
Added: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java (rev 0)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -0,0 +1,57 @@
+package org.jboss.tools.usage.test;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.usage.reporting.EclipseUserAgent;
+
+public class EclipseUserAgentFake extends EclipseUserAgent {
+
+ private static final String APPLICATION_NAME = "com.jboss.jbds.product";
+ private static final String APPLICATION_VERSION = "3.0.1";
+ public static final String LOCALE_US = "en_US";
+
+ private String applicationName;
+ private String applicationVersion;
+ private String nl;
+ private String os;
+
+ public EclipseUserAgentFake() {
+ this(APPLICATION_NAME, APPLICATION_VERSION, LOCALE_US, Platform.OS_LINUX);
+ }
+
+ public EclipseUserAgentFake(String nl) {
+ this(APPLICATION_NAME, APPLICATION_VERSION, nl, Platform.OS_LINUX);
+ }
+
+ public EclipseUserAgentFake(String nl, String os) {
+ this(APPLICATION_NAME, APPLICATION_VERSION, nl, os);
+ }
+
+ public EclipseUserAgentFake(String applicationName, String applicationVersion, String nl, String os) {
+ Assert.isTrue(nl != null && nl.indexOf(JAVA_LOCALE_DELIMITER) >= 0, "nl parameter must for a java locale string <xx_XX>");
+ this.applicationName = applicationName;
+ this.applicationVersion = applicationVersion;
+ this.nl = nl;
+ this.os = os;
+ }
+
+ @Override
+ protected String getNL() {
+ return nl;
+ }
+
+ @Override
+ protected String getApplicationName() {
+ return applicationName;
+ }
+
+ @Override
+ protected String getOS() {
+ return os;
+ }
+
+ @Override
+ protected String getApplicationVersion() {
+ return applicationVersion;
+ }
+}
\ No newline at end of file
Property changes on: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentFake.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java (from rev 24835, trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseEnvironmenTest.java)
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java (rev 0)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -0,0 +1,276 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.usage.reporting.EclipseEnvironment;
+import org.jboss.tools.usage.reporting.JBossBundleGroups;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.Version;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class EclipseUserAgentTest {
+
+ @Test
+ public void testLanguage() {
+ String userAgent = new EclipseUserAgentFake(EclipseUserAgentFake.LOCALE_US).toString();
+ assertLanguage("en-US", userAgent);
+ }
+
+ @Test
+ public void testApplicationNameAndVersion() {
+ String applicationName = "com.jboss.jbds.product";
+ String applicationVersion = "3.0.1";
+ String userAgent = new EclipseUserAgentFake().toString();
+ assertApplicationNameAndVersion(applicationName, applicationVersion, userAgent);
+ }
+
+ @Test
+ public void testMacOs() {
+ String userAgent = new EclipseUserAgentFake(EclipseUserAgentFake.LOCALE_US, Platform.OS_MACOSX).toString();
+ assertOs("Macintosh", "Intel Mac OS X 10.5", userAgent);
+ }
+
+ @Test
+ public void testLinux() {
+ String userAgent = new EclipseUserAgentFake(EclipseUserAgentFake.LOCALE_US, Platform.OS_LINUX).toString();
+ assertOs("X11", "Linux i686", userAgent);
+ }
+
+ @Test
+ public void testWindows() {
+ String userAgent = new EclipseUserAgentFake(EclipseUserAgentFake.LOCALE_US, Platform.OS_WIN32).toString();
+ assertOs("Windows", "Windows NT 6.1", userAgent);
+ }
+
+ @Test
+ public void testKeyword() {
+ EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake() {
+ @Override
+ protected Bundle[] getBundles() {
+ return new Bundle[] {
+ new BundleSymbolicNameFake("org.jboss.tools.seam.ui"),
+ new BundleSymbolicNameFake("org.jboss.tools.seam.core"),
+ new BundleSymbolicNameFake("org.jboss.tools.gwt.ui"),
+ new BundleSymbolicNameFake("org.jboss.tools.gwt.core"),
+ new BundleSymbolicNameFake("org.jboss.tools.smooks.core"),
+ new BundleSymbolicNameFake("org.eclipse.core.runtime"),
+ };
+ }
+ };
+ String keyword = eclipseEnvironment.getKeyword();
+
+ Matcher matcher = Pattern.compile("(([A-Z]+)-){3}").matcher(keyword);
+ assertTrue(matcher.matches());
+ assertTrue(keyword.indexOf(JBossBundleGroups.BundleGroup.GWT.name()) >= 0);
+ assertTrue(keyword.indexOf(JBossBundleGroups.BundleGroup.SEAM.name()) >= 0);
+ assertTrue(keyword.indexOf(JBossBundleGroups.BundleGroup.SMOOKS.name()) >= 0);
+ }
+
+ private void assertApplicationNameAndVersion(String applicationName, String applicationVersion, String userAgent) {
+ Matcher matcher = Pattern.compile("([a-zA-Z\\.]+)/([0-9\\.]+).+").matcher(userAgent);
+ assertTrue(matcher.matches());
+ assertEquals(2, matcher.groupCount());
+ assertEquals(applicationName, matcher.group(1));
+ assertEquals(applicationVersion, matcher.group(2));
+ }
+
+ private void assertOs(String platform, String os, String userAgent) {
+ Matcher matcher = Pattern.compile(".+ \\((.+); U; (.+); .+\\)").matcher(userAgent);
+ assertTrue(matcher.matches());
+ assertEquals(2, matcher.groupCount());
+ assertEquals(platform, matcher.group(1));
+ assertEquals(os, matcher.group(2));
+ }
+
+ private void assertLanguage(String language, String userAgent) {
+ Matcher matcher = Pattern.compile(".+ \\(.+; U; .+ .+; (.+)\\)").matcher(userAgent);
+ assertTrue(matcher.matches());
+ assertEquals(1, matcher.groupCount());
+ assertEquals(language, matcher.group(1));
+ }
+
+ private class BundleSymbolicNameFake implements Bundle {
+
+ private String symbolicName;
+
+ public BundleSymbolicNameFake(String symbolicName) {
+ this.symbolicName = symbolicName;
+ }
+
+ public Enumeration<?> findEntries(String path, String filePattern, boolean recurse) {
+ throw new UnsupportedOperationException();
+ }
+
+ public BundleContext getBundleContext() {
+ throw new UnsupportedOperationException();
+ }
+
+ public long getBundleId() {
+ throw new UnsupportedOperationException();
+ }
+
+ public URL getEntry(String path) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Enumeration<?> getEntryPaths(String path) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Dictionary<?, ?> getHeaders() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Dictionary<?, ?> getHeaders(String locale) {
+ throw new UnsupportedOperationException();
+ }
+
+ public long getLastModified() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getLocation() {
+ throw new UnsupportedOperationException();
+ }
+
+ public ServiceReference[] getRegisteredServices() {
+ throw new UnsupportedOperationException();
+ }
+
+ public URL getResource(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Enumeration<?> getResources(String name) throws IOException {
+ throw new UnsupportedOperationException();
+ }
+
+ public ServiceReference[] getServicesInUse() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Map<?, ?> getSignerCertificates(int signersType) {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getState() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getSymbolicName() {
+ return this.symbolicName;
+ }
+
+ public Version getVersion() {
+ throw new UnsupportedOperationException();
+
+ }
+
+ public boolean hasPermission(Object permission) {
+ throw new UnsupportedOperationException();
+
+ }
+
+ public Class<?> loadClass(String name) throws ClassNotFoundException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void start() throws BundleException {
+ throw new UnsupportedOperationException();
+
+ }
+
+ public void start(int options) throws BundleException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void stop() throws BundleException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void stop(int options) throws BundleException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void uninstall() throws BundleException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void update() throws BundleException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void update(InputStream input) throws BundleException {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Test
+ public void testVisitsOnFirstVisit() {
+ EclipsePreferencesFake preferences = new EclipsePreferencesFake();
+ EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
+ String firstVisit = eclipseEnvironment.getFirstVisit();
+ assertEquals(1, eclipseEnvironment.getVisitCount());
+ assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
+ assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
+ assertEquals(firstVisit, eclipseEnvironment.getCurrentVisit());
+ }
+
+ @Test
+ public void testVisitsOnSecondVisit() throws InterruptedException {
+ EclipsePreferencesFake preferences = new EclipsePreferencesFake();
+ EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
+ String firstVisit = eclipseEnvironment.getFirstVisit();
+ Thread.sleep(10);
+ eclipseEnvironment.visit();
+
+ assertEquals(2, eclipseEnvironment.getVisitCount());
+ assertEquals(firstVisit, eclipseEnvironment.getFirstVisit());
+ assertEquals(firstVisit, eclipseEnvironment.getLastVisit());
+ assertTrue(!firstVisit.equals(eclipseEnvironment.getCurrentVisit()));
+ }
+
+ @Test
+ public void testVisitsOnThirdVisit() throws InterruptedException {
+ EclipsePreferencesFake preferences = new EclipsePreferencesFake();
+ EclipseEnvironment eclipseEnvironment = new EclipseEnvironmentFake(preferences);
+ String firstVisit = eclipseEnvironment.getFirstVisit();
+ Thread.sleep(10);
+ eclipseEnvironment.visit();
+
+ String currentVisit = eclipseEnvironment.getCurrentVisit();
+ Thread.sleep(10);
+ eclipseEnvironment.visit();
+
+ assertEquals(3, eclipseEnvironment.getVisitCount());
+ assertEquals(currentVisit, eclipseEnvironment.getLastVisit());
+ assertTrue(!firstVisit.equals(eclipseEnvironment.getCurrentVisit()));
+ }
+}
Property changes on: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/EclipseUserAgentTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsFocusPoint.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsFocusPoint.java (rev 0)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsFocusPoint.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.usage.test;
+
+import org.jboss.tools.usage.FocusPoint;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class JBossToolsFocusPoint extends FocusPoint {
+
+ public JBossToolsFocusPoint(String childFocusPoint) {
+ super("tools");
+ setChild(new FocusPoint("usage")
+ .setChild(new FocusPoint(childFocusPoint)));
+ }
+
+}
Property changes on: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsFocusPoint.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/JBossToolsUsageIntegrationTest.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -31,17 +31,15 @@
*/
public class JBossToolsUsageIntegrationTest {
- private IGoogleAnalyticsParameters eclipseEnvironment;
-
@Test
public void sameUserIdOnSametEclipseInstance() throws Exception {
- UrlRevealingTracker tracker = getTracker(eclipseEnvironment);
+ UrlRevealingTracker tracker = getTracker(EclipseEnvironmentFakeSingleton.INSTANCE);
FocusPoint focusPoint = createFocusPoint("testSameUserIdOnSametEclipseInstance" + System.currentTimeMillis());
tracker.trackSynchronously(focusPoint);
String userId = getUserId(tracker.getTrackingUrl());
assertTrue(userId != null);
- tracker = getTracker(eclipseEnvironment );
+ tracker = getTracker(EclipseEnvironmentFakeSingleton.INSTANCE);
tracker.trackSynchronously(focusPoint);
String newUserId = getUserId(tracker.getTrackingUrl());
@@ -52,7 +50,7 @@
@Test
public void differentUserIdOnDifferentEclipseInstance() throws Exception {
String focusPointName = "testDifferentUserIdOnDifferentEclipseInstance"
- + System.currentTimeMillis();
+ + System.currentTimeMillis();
UrlRevealingTracker tracker = getTracker(new EclipseEnvironmentFake());
tracker.trackSynchronously(createFocusPoint(focusPointName));
String userId = getUserId(tracker.getTrackingUrl());
Modified: trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java 2010-09-09 16:56:11 UTC (rev 24847)
+++ trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java 2010-09-09 18:00:10 UTC (rev 24848)
@@ -18,7 +18,7 @@
FocusPointTest.class,
GoogleAnalyticsUrlStrategyTest.class,
JBossToolsUsageIntegrationTest.class,
- EclipseEnvironmenTest.class,
+ EclipseUserAgentTest.class,
GlobalUsageReportingSettingsTest.class})
/**
15 years, 7 months
JBoss Tools SVN: r24847 - in trunk/smooks/plugins: org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template and 9 other directories.
by jbosstools-commits@lists.jboss.org
Author: tfennelly
Date: 2010-09-09 12:56:11 -0400 (Thu, 09 Sep 2010)
New Revision: 24847
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/freemarker/
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/freemarker/FreeMarkerTemplateBuilder.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.templating/META-INF/MANIFEST.MF
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/csv/CSVFreeMarkerTemplateBuilder.java
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/util/FreeMarkerUtil.java
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilder.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateNodeGraphicalModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerXMLNodeGraphicalModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java
Log:
https://jira.jboss.org/browse/JBIDE-6994
Create DOM NodeModel template
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/META-INF/MANIFEST.MF
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/META-INF/MANIFEST.MF 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/META-INF/MANIFEST.MF 2010-09-09 16:56:11 UTC (rev 24847)
@@ -41,6 +41,7 @@
org.jboss.tools.smooks.templating.template,
org.jboss.tools.smooks.templating.template.csv,
org.jboss.tools.smooks.templating.template.exception,
+ org.jboss.tools.smooks.templating.template.freemarker,
org.jboss.tools.smooks.templating.template.util,
org.jboss.tools.smooks.templating.template.xml
Bundle-Activator: org.jboss.tools.smooks.templating.SmooksTemplatingActivator
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -435,7 +435,7 @@
}
public static void writeListStart(StringWriter writer, String srcPath, String collectionItemName) {
- writer.write("<smk:list smk:srcPath=\"" + srcPath + "\" smk:collectionItemName=\"" + collectionItemName + "\" xmlns:smk=\"" + ModelBuilder.NAMESPACE + "\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ writer.write("<smk:list smk:srcPath='" + srcPath + "' smk:collectionItemName=\"" + collectionItemName + "\" xmlns:smk=\"" + ModelBuilder.NAMESPACE + "\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
public static void writeListEnd(StringWriter writer) {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/csv/CSVFreeMarkerTemplateBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/csv/CSVFreeMarkerTemplateBuilder.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/csv/CSVFreeMarkerTemplateBuilder.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -31,6 +31,7 @@
import org.jboss.tools.smooks.templating.template.*;
import org.jboss.tools.smooks.templating.template.exception.TemplateBuilderException;
import org.jboss.tools.smooks.templating.template.exception.UnmappedCollectionNodeException;
+import org.jboss.tools.smooks.templating.template.freemarker.FreeMarkerTemplateBuilder;
import org.jboss.tools.smooks.templating.template.util.FreeMarkerUtil;
import org.milyn.xml.DomUtils;
@@ -45,7 +46,7 @@
*
* @author <a href="mailto:tom.fennelly@jboss.com">tom.fennelly(a)jboss.com</a>
*/
-public class CSVFreeMarkerTemplateBuilder extends TemplateBuilder {
+public class CSVFreeMarkerTemplateBuilder extends FreeMarkerTemplateBuilder {
private char separatorChar;
private char quoteChar;
@@ -196,7 +197,7 @@
template.append('\n');
}
- template.append("<#list " + collectionMapping.getSrcPath() + " as " + collectionMapping.getCollectionItemName() + ">\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ template.append("<#list " + FreeMarkerUtil.toPath(collectionMapping.getSrcPath(), isNodeModelSource()) + " as " + collectionMapping.getCollectionItemName() + ">\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
int fieldIndex = 0;
for(int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
@@ -209,7 +210,7 @@
if(fieldMapping != null) {
template.append(quoteChar);
- template.append(FreeMarkerUtil.toFreeMarkerVariable((ValueMapping) fieldMapping)); //$NON-NLS-1$
+ template.append(FreeMarkerUtil.toFreeMarkerVariable((ValueMapping) fieldMapping, isNodeModelSource())); //$NON-NLS-1$
template.append(quoteChar);
}
Added: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/freemarker/FreeMarkerTemplateBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/freemarker/FreeMarkerTemplateBuilder.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/freemarker/FreeMarkerTemplateBuilder.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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.smooks.templating.template.freemarker;
+
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
+import org.jboss.tools.smooks.templating.model.ModelBuilderException;
+import org.jboss.tools.smooks.templating.template.TemplateBuilder;
+
+/**
+ * Abstract FreeMarker template builder.
+ * @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly(a)gmail.com</a>
+ */
+public abstract class FreeMarkerTemplateBuilder extends TemplateBuilder {
+
+ private boolean nodeModelSource = false;
+
+ public FreeMarkerTemplateBuilder(ModelBuilder modelBuilder) throws ModelBuilderException {
+ super(modelBuilder);
+ }
+
+ public boolean isNodeModelSource() {
+ return nodeModelSource;
+ }
+
+ public void setNodeModelSource(boolean nodeModelSource) {
+ this.nodeModelSource = nodeModelSource;
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/freemarker/FreeMarkerTemplateBuilder.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/util/FreeMarkerUtil.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/util/FreeMarkerUtil.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/util/FreeMarkerUtil.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -71,44 +71,71 @@
return (variable.startsWith("${") && variable.endsWith("}")); //$NON-NLS-1$ //$NON-NLS-2$
}
- public static String toFreeMarkerVariable(ValueMapping mapping) {
- StringBuilder builder = new StringBuilder();
- Properties encodeProperties = mapping.getEncodeProperties();
- String rawFormatting;
-
- if(encodeProperties == null) {
- encodeProperties = new Properties();
- }
-
- builder.append("${" + mapping.getSrcPath() + "!?"); //$NON-NLS-1$ //$NON-NLS-2$
-
- rawFormatting = encodeProperties.getProperty(ValueMapping.RAW_FORMATING_KEY);
- if(rawFormatting != null) {
- builder.append(rawFormatting);
- builder.append("}"); //$NON-NLS-1$
+ public static String toFreeMarkerVariable(ValueMapping mapping, boolean isNodeModelSource) {
+ if(isNodeModelSource) {
+ return "${" + FreeMarkerUtil.toPath(mapping.getSrcPath(), true) + "}";
} else {
- Class<?> valueType = mapping.getValueType();
- if(valueType != null) {
-
- if(valueType == java.util.Date.class) {
- String format = encodeProperties.getProperty(DateDecoder.FORMAT);
- if(format != null) {
- builder.append("string('" + format + "')}"); //$NON-NLS-1$ //$NON-NLS-2$
+ StringBuilder builder = new StringBuilder();
+ Properties encodeProperties = mapping.getEncodeProperties();
+ String rawFormatting;
+
+ if(encodeProperties == null) {
+ encodeProperties = new Properties();
+ }
+
+ builder.append("${" + mapping.getSrcPath() + "!?"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ rawFormatting = encodeProperties.getProperty(ValueMapping.RAW_FORMATING_KEY);
+ if(rawFormatting != null) {
+ builder.append(rawFormatting);
+ builder.append("}"); //$NON-NLS-1$
+ } else {
+ Class<?> valueType = mapping.getValueType();
+ if(valueType != null) {
+
+ if(valueType == java.util.Date.class) {
+ String format = encodeProperties.getProperty(DateDecoder.FORMAT);
+ if(format != null) {
+ builder.append("string('" + format + "')}"); //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ builder.append("string.medium}"); //$NON-NLS-1$
+ }
+ } else if(Number.class.isAssignableFrom(valueType)) {
+ builder.append("c}"); //$NON-NLS-1$
+ } else if(valueType == Double.TYPE || valueType == Float.TYPE || valueType == Integer.TYPE || valueType == Long.TYPE || valueType == Short.TYPE) {
+ builder.append("c}"); //$NON-NLS-1$
} else {
- builder.append("string.medium}"); //$NON-NLS-1$
+ builder.append("string}"); //$NON-NLS-1$
}
- } else if(Number.class.isAssignableFrom(valueType)) {
- builder.append("c}"); //$NON-NLS-1$
- } else if(valueType == Double.TYPE || valueType == Float.TYPE || valueType == Integer.TYPE || valueType == Long.TYPE || valueType == Short.TYPE) {
- builder.append("c}"); //$NON-NLS-1$
} else {
builder.append("string}"); //$NON-NLS-1$
}
- } else {
- builder.append("string}"); //$NON-NLS-1$
}
+
+ return builder.toString();
}
-
- return builder.toString();
}
+
+ public static String toPath(String srcPath, boolean nodeModelSource) {
+ if(nodeModelSource) {
+ StringBuilder builder = new StringBuilder();
+ String[] tokens = srcPath.split("\\.");
+
+ builder.append(".vars[\"").append(tokens[0]).append("\"]");
+ if(tokens.length > 1) {
+ builder.append("[\"");
+ for(int i = 1; i < tokens.length; i++) {
+ if(i > 1) {
+ builder.append("/");
+ }
+ builder.append(tokens[i]);
+ }
+ builder.append("\"]");
+ }
+
+ return builder.toString();
+ } else {
+ return srcPath;
+ }
+ }
}
\ No newline at end of file
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilder.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilder.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -39,8 +39,8 @@
import org.jboss.tools.smooks.templating.model.ModelBuilder.ElementType;
import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
import org.jboss.tools.smooks.templating.template.*;
-import org.jboss.tools.smooks.templating.template.exception.InvalidMappingException;
import org.jboss.tools.smooks.templating.template.exception.TemplateBuilderException;
+import org.jboss.tools.smooks.templating.template.freemarker.FreeMarkerTemplateBuilder;
import org.jboss.tools.smooks.templating.template.util.FreeMarkerUtil;
import org.milyn.xml.DomUtils;
import org.milyn.xml.XmlUtil;
@@ -54,7 +54,7 @@
*
* @author <a href="mailto:tom.fennelly@jboss.com">tom.fennelly(a)jboss.com</a>
*/
-public class XMLFreeMarkerTemplateBuilder extends TemplateBuilder {
+public class XMLFreeMarkerTemplateBuilder extends FreeMarkerTemplateBuilder {
private boolean omitXMLDeclaration = false;
@@ -138,7 +138,7 @@
if(mapping instanceof CollectionMapping) {
collectionMapping = (CollectionMapping) mapping;
TemplateBuilder.writeIndent(indent, templateWriter);
- templateWriter.write("<#list " + collectionMapping.getSrcPath() + " as " + collectionMapping.getCollectionItemName() + ">\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ templateWriter.write("<#list " + FreeMarkerUtil.toPath(collectionMapping.getSrcPath(), isNodeModelSource()) + " as " + collectionMapping.getCollectionItemName() + ">\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
TemplateBuilder.writeIndent(indent, templateWriter);
@@ -175,7 +175,7 @@
Mapping mapping = getMapping(attribute);
if(mapping != null) {
- writeAttribute(attribute.getNodeName(), FreeMarkerUtil.toFreeMarkerVariable((ValueMapping)mapping), templateWriter); //$NON-NLS-1$
+ writeAttribute(attribute.getNodeName(), FreeMarkerUtil.toFreeMarkerVariable((ValueMapping)mapping, isNodeModelSource()), templateWriter); //$NON-NLS-1$
} else if(ModelBuilder.isRequired(attribute)) {
writeAttribute(attribute.getNodeName(), attribute.getValue(), templateWriter);
}
@@ -216,7 +216,7 @@
if(ModelBuilder.getElementType(element) == ElementType.simple) {
templateWriter.write(">"); //$NON-NLS-1$
if(mapping != null) {
- templateWriter.write(FreeMarkerUtil.toFreeMarkerVariable((ValueMapping)mapping));
+ templateWriter.write(FreeMarkerUtil.toFreeMarkerVariable((ValueMapping)mapping, isNodeModelSource()));
} else {
templateWriter.write(ModelBuilder.REQUIRED);
}
@@ -342,7 +342,7 @@
}
String[] tokens = description.split(" +?"); //$NON-NLS-1$
- TemplateBuilder.writeListStart(templateRewriteBuffer, tokens[1], tokens[3]);
+ TemplateBuilder.writeListStart(templateRewriteBuffer, FreeMarkerUtil.toPath(tokens[1], isNodeModelSource()), tokens[3]);
Enumeration<TemplateElement> children = element.children();
while(children != null && children.hasMoreElements()) {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -18,10 +18,14 @@
import java.util.List;
import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
+import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
+import org.jboss.tools.smooks.gef.common.RootModel;
import org.jboss.tools.smooks.gef.tree.model.IConnectableNode;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
import org.jboss.tools.smooks.graphical.editors.model.IValidatableModel;
+import org.w3c.dom.Node;
/**
* @author Dart
@@ -89,6 +93,19 @@
this.parent = parent;
}
+ public AbstractSmooksGraphicalModel getModelRootNode() {
+
+ AbstractSmooksGraphicalModel modelRootParent = parent;
+ while(true) {
+ if(modelRootParent.getParent() == null || modelRootParent.getParent() instanceof RootModel) {
+ break;
+ }
+ modelRootParent = modelRootParent.getParent();
+ }
+
+ return modelRootParent;
+ }
+
//
// protected AbstractSmooksGraphicalModel createChildModel(Object model,
// ITreeContentProvider contentProvider,
@@ -115,6 +132,16 @@
this.severity = severity;
support.firePropertyChange(PRO_SEVERITY_CHANGED, old, this.severity);
}
+
+ public Node getNode() {
+ if (data instanceof TagObject) {
+ return ((TagObject) data).getReferenceElement();
+ }
+ if (data instanceof TagPropertyObject) {
+ return ((TagPropertyObject) data).getReferenceAttibute();
+ }
+ return null;
+ }
public List<AbstractSmooksGraphicalModel> getChildren() {
if (children == null) {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -10,8 +10,15 @@
import org.eclipse.core.runtime.Assert;
import org.jboss.tools.smooks.configuration.editors.IFieldMarker;
+import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
import org.jboss.tools.smooks.graphical.editors.model.IValidatableModel;
+import org.jboss.tools.smooks.templating.template.CollectionMapping;
+import org.milyn.xml.DomUtils;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
* @author DartPeng
@@ -136,7 +143,62 @@
}
this.severity = severity;
support.firePropertyChange(AbstractSmooksGraphicalModel.PRO_SEVERITY_CHANGED, old, this.severity);
+ }
+
+ public String getTargetConnectionObjectRef() {
+ TreeNodeModel sourceNodeModel = (TreeNodeModel) sourceNode;
+ TreeNodeModel targetNodeModel = (TreeNodeModel) targetNode;
+ Node sourceDOMNode = sourceNodeModel.getNode();
+
+ // This will only work for sources that are modeled hierarchically with TagObjects etc i.e. not Java
+ if(sourceDOMNode == null) {
+ throw new IllegalStateException("Invalid call to getTargetConnectionObjectRef() for non AbstractXMLObject connection source."); //$NON-NLS-1$
+ }
+
+ StringBuilder builder = new StringBuilder();
+
+ // We first need to determine whether or not there's a parent Collection connection
+ // on target side of the mapping...
+ TreeNodeConnection parentConnection = targetNodeModel.getParentCollectionConnection();
+ if(parentConnection != null) {
+ // If there's a parent Collection connection on the target side of the mapping,
+ // we need to locate the other side of that connection on the source model
+ // and then create an objectRef string based on the nodes between the source side of the parent
+ // connection and the source side of the connection associated with this node connection.
+ CollectionMapping collectionMapping = (CollectionMapping) parentConnection.getData();
+ Node sourceCollectionDomNode = ((TreeNodeModel)parentConnection.getSourceNode()).getNode();
+
+ // Work back to collection node...
+ Node currentNode = sourceDOMNode;
+ while(currentNode != null && currentNode != sourceCollectionDomNode) {
+ if(currentNode.getNodeType() != Node.ATTRIBUTE_NODE && currentNode.getNodeType() != Node.ELEMENT_NODE) {
+ currentNode = currentNode.getParentNode();
+ continue;
+ }
+
+ if(builder.length() > 0) {
+ builder.insert(0, '.');
+ }
+ if(currentNode.getNodeType() == Node.ATTRIBUTE_NODE) {
+ builder.insert(0, "@" + ((Attr)currentNode).getNodeName());
+ } else if(currentNode.getNodeType() == Node.ELEMENT_NODE) {
+ builder.insert(0, DomUtils.getName((Element)currentNode));
+ }
+ currentNode = currentNode.getParentNode();
+ }
+
+ if(currentNode == sourceCollectionDomNode) {
+ builder.insert(0, collectionMapping.getCollectionItemName() + ".");
+ }
+ } else {
+ // No parent connection... just use the connection source path...
+ builder.append(SmooksUIUtils.generateFullPath((IXMLStructuredObject) sourceNodeModel.getData(), "."));
+ }
+
+ if(builder.length() > 1 && builder.charAt(0) == '.') {
+ builder.deleteCharAt(0);
+ }
+
+ return builder.toString();
}
-
-
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -5,16 +5,25 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
+import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
+import org.jboss.tools.smooks.templating.template.CollectionMapping;
+import org.w3c.dom.Node;
public class TreeNodeModel extends AbstractSmooksGraphicalModel {
protected ITreeContentProvider contentProvider;
protected ILabelProvider labelProvider;
+
+ protected List<TreeNodeConnection> connections;
public TreeNodeModel(Object data, ITreeContentProvider contentProvider, ILabelProvider labelProvider) {
super(data);
@@ -131,7 +140,69 @@
public boolean canLinkWithTarget(Object model) {
return true;
}
+
+ public boolean isValidValueNode() {
+ Object unwrappedData = AdapterFactoryEditingDomain.unwrap(data);
+ if (unwrappedData instanceof TagPropertyObject) {
+ return true;
+ } else if(unwrappedData instanceof TagObject) {
+ TagObject tagObject = (TagObject) unwrappedData;
+ return tagObject.getChildren().isEmpty();
+ }
+
+ return false;
+ }
+
+ public boolean isValidCollectionNode() {
+ Object unwrappedData = AdapterFactoryEditingDomain.unwrap(data);
+
+ if(unwrappedData instanceof TagObject) {
+ TagObject tagObject = (TagObject) unwrappedData;
+ return !tagObject.getChildren().isEmpty();
+ }
+
+ return false;
+ }
+
+ public List<TreeNodeConnection> getConnections() {
+ if(connections == null) {
+ connections = new ArrayList<TreeNodeConnection>();
+ }
+ return connections;
+ }
+
+ public void setConnections(List<TreeNodeConnection> connections) {
+ this.connections = connections;
+ }
+
+ protected TreeNodeConnection getConnection() {
+ if(connections == null || connections.isEmpty()) {
+ return null;
+ } else if(connections.size() > 1) {
+ throw new IllegalStateException("Invalid call to getConnection() for node that has multiple connections. May be a source node? Use getConnections()."); //$NON-NLS-1$
+ }
+
+ return connections.get(0);
+ }
+
+ protected TreeNodeConnection getParentCollectionConnection() {
+ AbstractSmooksGraphicalModel parentObj = getParent();
+
+ if(parentObj == null || !(parentObj instanceof TreeNodeModel)) {
+ return null;
+ }
+
+ TreeNodeModel parentNode = (TreeNodeModel) parentObj;
+ TreeNodeConnection parentConnection = parentNode.getConnection();
+
+ if(parentConnection != null && parentConnection.getData() instanceof CollectionMapping) {
+ return parentConnection;
+ }
+
+ return parentNode.getParentCollectionConnection();
+ }
+
public void setText(String text) {
// if (text != null && !text.equals(this.text)) {
// String oldtext = this.text;
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -15,6 +15,7 @@
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
@@ -69,16 +70,29 @@
*/
@Override
public boolean canLinkWithTarget(Object model) {
- Object data = ((AbstractSmooksGraphicalModel) model).getData();
- data = AdapterFactoryEditingDomain.unwrap(data);
- if (data instanceof EObject) {
+ TreeNodeModel targetNode = (TreeNodeModel) model;
+
+ if(targetNode == this || targetNode.getModelRootNode() == getModelRootNode()) {
+ return false;
+ }
+
+ Object data = AdapterFactoryEditingDomain.unwrap(targetNode.getData());
+
+ if (data instanceof TagPropertyObject) {
+ // Only OK to link to an attribute from a valid Value node...
+ return isValidValueNode();
+ } else if(data instanceof TagObject) {
+ if(targetNode.isValidValueNode()) {
+ return isValidValueNode();
+ } else if(targetNode.isValidCollectionNode()) {
+ return isValidCollectionNode();
+ }
+ } else if (data instanceof EObject) {
if (SmooksUIUtils.getSelectorFeature((EObject) data) != null) {
return true;
}
}
- if (data instanceof TagPropertyObject) {
- return true;
- }
+
return false;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateNodeGraphicalModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateNodeGraphicalModel.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateNodeGraphicalModel.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -19,6 +19,7 @@
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.jboss.tools.smooks.SmooksModelUtils;
+import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject;
import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
@@ -26,16 +27,18 @@
import org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
import org.jboss.tools.smooks.graphical.editors.model.AbstractResourceConfigChildNodeGraphModel;
-import org.jboss.tools.smooks.graphical.editors.model.AbstractResourceConfigGraphModel;
+import org.jboss.tools.smooks.graphical.editors.model.InputDataTreeNodeModel;
import org.jboss.tools.smooks.graphical.editors.model.javamapping.JavaBeanGraphModel;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
import org.jboss.tools.smooks.model.freemarker.Template;
import org.jboss.tools.smooks.model.javabean12.BeanType;
import org.jboss.tools.smooks.model.javabean12.ValueType;
+import org.jboss.tools.smooks.templating.template.CollectionMapping;
import org.jboss.tools.smooks.templating.template.Mapping;
import org.jboss.tools.smooks.templating.template.ValueMapping;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
import org.jboss.tools.smooks.templating.template.exception.InvalidMappingException;
+import org.milyn.xml.DomUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -46,19 +49,22 @@
public class FreemarkerTemplateNodeGraphicalModel extends TreeNodeModel {
protected IEditingDomainProvider domainProvider = null;
- public FreemarkerTemplateNodeGraphicalModel(Object data, ITreeContentProvider contentProvider,
- ILabelProvider labelProvider, IEditingDomainProvider domainProvider) {
+ public FreemarkerTemplateNodeGraphicalModel(Object data,
+ ITreeContentProvider contentProvider, ILabelProvider labelProvider,
+ IEditingDomainProvider domainProvider) {
super(data, contentProvider, labelProvider);
this.domainProvider = domainProvider;
}
protected TemplateBuilder getTemplateBuilder() {
AbstractSmooksGraphicalModel parent = this;
- while (parent != null && !(parent instanceof FreemarkerTemplateGraphicalModel)) {
+ while (parent != null
+ && !(parent instanceof FreemarkerTemplateGraphicalModel)) {
parent = parent.getParent();
}
if (parent instanceof FreemarkerTemplateGraphicalModel) {
- return ((FreemarkerTemplateGraphicalModel) parent).getTemplateBuilder();
+ return ((FreemarkerTemplateGraphicalModel) parent)
+ .getTemplateBuilder();
}
return null;
}
@@ -84,7 +90,8 @@
TemplateBuilder builder = getTemplateBuilder();
Template template = null;
AbstractSmooksGraphicalModel templateGraph = this;
- while (templateGraph != null && !(templateGraph instanceof FreemarkerTemplateGraphicalModel)) {
+ while (templateGraph != null
+ && !(templateGraph instanceof FreemarkerTemplateGraphicalModel)) {
templateGraph = templateGraph.getParent();
}
Object data = templateGraph.getData();
@@ -100,7 +107,8 @@
} catch (Exception e) {
e.printStackTrace();
}
- SmooksModelUtils.setCDATAToSmooksType(domainProvider.getEditingDomain(), template, content);
+ SmooksModelUtils.setCDATAToSmooksType(
+ domainProvider.getEditingDomain(), template, content);
}
}
@@ -112,96 +120,158 @@
* (org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection)
*/
@Override
- public void addTargetConnection(TreeNodeConnection connection, AbstractSmooksGraphicalModel sourceNode) {
+ public void addTargetConnection(TreeNodeConnection connection, AbstractSmooksGraphicalModel source) {
+ if(!getConnections().isEmpty()) {
+ return;
+ }
+
TemplateBuilder builder = getTemplateBuilder();
Object obj = this.getData();
- Node node = null;
+ Node targetNode = null;
+ Node sourceNode = source.getNode();
+ TreeNodeModel mappingSourceNode = (TreeNodeModel) source;
+
if (obj instanceof TagObject) {
- node = ((TagObject) obj).getReferenceElement();
- }
+ targetNode = ((TagObject) obj).getReferenceElement();
+ }
if (obj instanceof TagPropertyObject) {
- node = ((TagPropertyObject) obj).getReferenceAttibute();
- }
- if (builder == null || node == null)
+ targetNode = ((TagPropertyObject) obj).getReferenceAttibute();
+ }
+ if (builder == null || targetNode == null) {
return;
+ }
if (connection.getData() != null) {
// ignore
}
+
try {
if (isCollectionConnection(connection)) {
- AbstractSmooksGraphicalModel beanGraph = connection.getSourceNode();
+ CollectionMapping mapping = null;
- Object jobj = (Object) beanGraph.getData();
- jobj = AdapterFactoryEditingDomain.unwrap(jobj);
-
- String collectionName = null;
- List<AbstractSmooksGraphicalModel> javabeanChildren = beanGraph.getChildrenWithoutDynamic();
- for (Iterator<?> iterator = javabeanChildren.iterator(); iterator.hasNext();) {
- AbstractSmooksGraphicalModel abstractSmooksGraphicalModel = (AbstractSmooksGraphicalModel) iterator
- .next();
- Object javabean = abstractSmooksGraphicalModel.getData();
- javabean = AdapterFactoryEditingDomain.unwrap(javabean);
- if (javabean instanceof org.jboss.tools.smooks.model.javabean12.WiringType) {
- collectionName = ((org.jboss.tools.smooks.model.javabean12.WiringType) javabean).getBeanIdRef();
+ // if it's a directly mapping
+ if (mappingSourceNode instanceof InputDataTreeNodeModel) {
+ if(sourceNode == null) {
+ return;
}
+
+ Object data = mappingSourceNode.getData();
+ String mappingString = connection.getTargetConnectionObjectRef();
+ String collectionItemName = normalizeFreemarkerVariable(DomUtils.getName((Element) sourceNode));
+ mapping = builder.addCollectionMapping(mappingString, (Element) targetNode, collectionItemName);
+ } else {
+ AbstractSmooksGraphicalModel beanGraph = connection.getSourceNode();
+
+ Object jobj = (Object) beanGraph.getData();
+ jobj = AdapterFactoryEditingDomain.unwrap(jobj);
+
+ String collectionName = null;
+ List<AbstractSmooksGraphicalModel> javabeanChildren = beanGraph.getChildrenWithoutDynamic();
+ for (AbstractSmooksGraphicalModel abstractSmooksGraphicalModel : javabeanChildren) {
+ Object javabean = abstractSmooksGraphicalModel.getData();
+
+ javabean = AdapterFactoryEditingDomain.unwrap(javabean);
+ if (javabean instanceof org.jboss.tools.smooks.model.javabean12.WiringType) {
+ collectionName = ((org.jboss.tools.smooks.model.javabean12.WiringType) javabean).getBeanIdRef();
+ }
+ }
+ BeanType javabeanModel = (BeanType) jobj;
+ mapping = builder.addCollectionMapping(javabeanModel.getBeanId(), (Element) targetNode, collectionName);
}
- BeanType javabeanModel = (BeanType) jobj;
- Mapping mapping = builder.addCollectionMapping(javabeanModel.getBeanId(), (Element) node,
- collectionName);
+
connection.setData(mapping);
}
if (isMappingValueConnection(connection)) {
- AbstractSmooksGraphicalModel mappingSourceNode = connection.getSourceNode();
- JavaBeanGraphModel collectionJavaBean = getCollectionRootBeanModel(mappingSourceNode);
String mappingString = null;
- if (collectionJavaBean == null) {
- // if there isn't collection bean , get the node's parent as
- // the top level bean
- AbstractSmooksGraphicalModel parentSourceNode = mappingSourceNode;
- while (parentSourceNode != null && !(parentSourceNode instanceof JavaBeanGraphModel)) {
- parentSourceNode = parentSourceNode.getParent();
+
+ // if it's a directly mapping
+ if (mappingSourceNode instanceof InputDataTreeNodeModel) {
+ Object data = mappingSourceNode.getData();
+ mappingString = connection.getTargetConnectionObjectRef();
+ } else {
+ JavaBeanGraphModel collectionJavaBean = getCollectionRootBeanModel(mappingSourceNode);
+
+ if (collectionJavaBean == null) {
+ // if there isn't collection bean , get the node's
+ // parent as
+ // the top level bean
+ AbstractSmooksGraphicalModel parentSourceNode = mappingSourceNode;
+
+ while (parentSourceNode != null && !(parentSourceNode instanceof JavaBeanGraphModel)) {
+ parentSourceNode = parentSourceNode.getParent();
+ }
+
+ collectionJavaBean = (JavaBeanGraphModel) parentSourceNode;
+ mappingString = FreemarkerCSVContentGenerator.generateFullJavaSourcePathString(mappingSourceNode, collectionJavaBean);
+ } else {
+ mappingString = FreemarkerCSVContentGenerator
+ .generateJavaSourcePathWithoutRootNode(
+ mappingSourceNode, collectionJavaBean);
}
- collectionJavaBean = (JavaBeanGraphModel) parentSourceNode;
- mappingString = FreemarkerCSVContentGenerator.generateFullJavaSourcePathString(mappingSourceNode,
- collectionJavaBean);
- } else {
- mappingString = FreemarkerCSVContentGenerator.generateJavaSourcePathWithoutRootNode(
- mappingSourceNode, collectionJavaBean);
}
-
- ValueMapping mapping = builder.addValueMapping(mappingString, node);
- if(sourceNode instanceof AbstractResourceConfigChildNodeGraphModel) {
- ((AbstractResourceConfigChildNodeGraphModel)sourceNode).addMappingTypeInfo(mapping);
+
+ ValueMapping mapping = builder.addValueMapping(mappingString, targetNode);
+ if (source instanceof AbstractResourceConfigChildNodeGraphModel) {
+ ((AbstractResourceConfigChildNodeGraphModel) source)
+ .addMappingTypeInfo(mapping);
}
-
+
connection.setData(mapping);
}
+
+ getConnections().add(connection);
+ mappingSourceNode.getConnections().add(connection);
+
changeFreemarkerContents();
- super.addTargetConnection(connection, sourceNode);
+ super.addTargetConnection(connection, source);
} catch (InvalidMappingException e) {
e.printStackTrace();
}
}
- protected JavaBeanGraphModel getCollectionRootBeanModel(AbstractSmooksGraphicalModel sourceNode) {
+ private String normalizeFreemarkerVariable(String variableName) {
+ StringBuilder builder = new StringBuilder();
+ int len = variableName.length();
+
+ for(int i = 0; i < len; i++) {
+ char theChar = variableName.charAt(i);
+
+ if(Character.isLetterOrDigit(theChar)) {
+ builder.append(theChar);
+ } else {
+ builder.append('_');
+ }
+ }
+
+ return builder.toString();
+ }
+
+ protected JavaBeanGraphModel getCollectionRootBeanModel(
+ AbstractSmooksGraphicalModel sourceNode) {
AbstractSmooksGraphicalModel parentNodeBean = sourceNode;
- while (parentNodeBean != null && !(parentNodeBean instanceof JavaBeanGraphModel)) {
+ while (parentNodeBean != null
+ && !(parentNodeBean instanceof JavaBeanGraphModel)) {
parentNodeBean = parentNodeBean.getParent();
}
- if (parentNodeBean != null && parentNodeBean instanceof JavaBeanGraphModel) {
+ if (parentNodeBean != null
+ && parentNodeBean instanceof JavaBeanGraphModel) {
// get the bean reference links
- List<TreeNodeConnection> connections = parentNodeBean.getTargetConnections();
- for (Iterator<?> iterator = connections.iterator(); iterator.hasNext();) {
- TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator.next();
+ List<TreeNodeConnection> connections = parentNodeBean
+ .getTargetConnections();
+ for (Iterator<?> iterator = connections.iterator(); iterator
+ .hasNext();) {
+ TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator
+ .next();
// check if the node is "collection bean" node , if is not ,
// check its parent node.
- AbstractSmooksGraphicalModel collectionJavaBean = treeNodeConnection.getSourceNode();
+ AbstractSmooksGraphicalModel collectionJavaBean = treeNodeConnection
+ .getSourceNode();
collectionJavaBean = collectionJavaBean.getParent();
if (collectionJavaBean instanceof JavaBeanGraphModel) {
Object data = collectionJavaBean.getData();
data = AdapterFactoryEditingDomain.unwrap(data);
if (data != null && data instanceof EObject) {
- if (SmooksUIUtils.isCollectionJavaGraphModel((EObject) data)) {
+ if (SmooksUIUtils
+ .isCollectionJavaGraphModel((EObject) data)) {
return (JavaBeanGraphModel) collectionJavaBean;
// check if it was linked with the "many" template
// node
@@ -239,16 +309,21 @@
}
protected boolean isCollectionConnection(TreeNodeConnection connection) {
- AbstractSmooksGraphicalModel sourceNode = connection.getSourceNode();
- AbstractSmooksGraphicalModel targetNode = connection.getTargetNode();
+ TreeNodeModel sourceNode = (TreeNodeModel) connection.getSourceNode();
+ TreeNodeModel targetNode = (TreeNodeModel) connection.getTargetNode();
Object targetData = targetNode.getData();
Object data = sourceNode.getData();
- if (data instanceof EObject && targetData instanceof IFreemarkerTemplateModel) {
- if (SmooksUIUtils.isCollectionJavaGraphModel((EObject) data)
- && ((IFreemarkerTemplateModel) targetData).isManyOccurs()) {
- return true;
- }
+
+ if(targetData instanceof IFreemarkerTemplateModel && !((IFreemarkerTemplateModel) targetData).isManyOccurs()) {
+ return false;
}
+
+ if (data instanceof EObject && SmooksUIUtils.isCollectionJavaGraphModel((EObject) data)) {
+ return true;
+ } else if(sourceNode.isValidCollectionNode() && targetNode.isValidCollectionNode()) {
+ return true;
+ }
+
return false;
}
@@ -270,12 +345,15 @@
*/
@Override
public void removeTargetConnection(TreeNodeConnection connection) {
+ ((TreeNodeModel)connection.getSourceNode()).getConnections().remove(connection);
+ getConnections().remove(connection);
+
try {
TemplateBuilder builder = getTemplateBuilder();
Object mapping = connection.getData();
if (builder == null || mapping == null)
return;
- if (mapping instanceof ValueMapping) {
+ if (mapping instanceof Mapping) {
builder.removeMapping((Mapping) mapping);
changeFreemarkerContents();
}
@@ -294,9 +372,10 @@
* org.eclipse.jface.viewers.ILabelProvider)
*/
@Override
- protected TreeNodeModel createChildModel(Object model, ITreeContentProvider contentProvider,
- ILabelProvider labelProvider) {
- return new FreemarkerTemplateNodeGraphicalModel(model, contentProvider, labelProvider, this.domainProvider);
+ protected TreeNodeModel createChildModel(Object model,
+ ITreeContentProvider contentProvider, ILabelProvider labelProvider) {
+ return new FreemarkerTemplateNodeGraphicalModel(model, contentProvider,
+ labelProvider, this.domainProvider);
}
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerXMLNodeGraphicalModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerXMLNodeGraphicalModel.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerXMLNodeGraphicalModel.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -10,13 +10,10 @@
******************************************************************************/
package org.jboss.tools.smooks.graphical.editors.model.freemarker;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.domain.IEditingDomainProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection;
-import org.jboss.tools.smooks.model.javabean12.BeanType;
/**
* @author Dart
@@ -35,25 +32,6 @@
*
* @seeorg.jboss.tools.smooks.graphical.editors.model.freemarker.
* FreemarkerTemplateNodeGraphicalModel
- * #isCollectionConnection(org.jboss.tools
- * .smooks.gef.tree.model.TreeNodeConnection)
- */
- @Override
- protected boolean isCollectionConnection(TreeNodeConnection connection) {
- AbstractSmooksGraphicalModel sourceGraph = connection.getSourceNode();
- Object data = sourceGraph.getData();
- data = AdapterFactoryEditingDomain.unwrap(data);
- if (data instanceof BeanType) {
-
- }
- return super.isCollectionConnection(connection);
- }
-
- /*
- * (non-Javadoc)
- *
- * @seeorg.jboss.tools.smooks.graphical.editors.model.freemarker.
- * FreemarkerTemplateNodeGraphicalModel
* #isMappingValueConnection(org.jboss.tools
* .smooks.gef.tree.model.TreeNodeConnection)
*/
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -27,6 +27,7 @@
import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
import org.jboss.tools.smooks.editor.ISmooksModelProvider;
import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
+import org.jboss.tools.smooks.graphical.editors.TaskTypeManager;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.CSVNodeModel;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.FreemarkerCSVNodeGraphicalModel;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.FreemarkerModelAnalyzer;
@@ -42,6 +43,7 @@
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
import org.jboss.tools.smooks.templating.template.csv.CSVFreeMarkerTemplateBuilder;
import org.jboss.tools.smooks.templating.template.exception.TemplateBuilderException;
+import org.jboss.tools.smooks.templating.template.freemarker.FreeMarkerTemplateBuilder;
import org.jboss.tools.smooks.templating.template.xml.XMLFreeMarkerTemplateBuilder;
import org.w3c.dom.Document;
@@ -51,7 +53,7 @@
*/
public class FreemarkerTemplateContentGraphModelProviderImpl implements IFreemarkerTemplateContentGraphModelProvider {
- private TemplateBuilder templateBuilder = null;
+ private FreeMarkerTemplateBuilder templateBuilder = null;
/*
* (non-Javadoc)
@@ -164,6 +166,12 @@
templateBuilder = new XMLFreeMarkerTemplateBuilder(builder);
}
}
+ String templateProvider = SmooksModelUtils.getParamValue(freemarker.getParam(), SmooksModelUtils.TEMPLATE_DATA_PROVIDER_PARAM_NAME);
+ if(templateProvider != null) {
+ templateBuilder.setNodeModelSource(templateProvider.trim().equals(TaskTypeManager.TASK_ID_INPUT));
+ } else {
+ templateBuilder.setNodeModelSource(false);
+ }
}
return templateBuilder;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java 2010-09-09 16:14:06 UTC (rev 24846)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java 2010-09-09 16:56:11 UTC (rev 24847)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.smooks.graphical.editors.template;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -22,12 +23,15 @@
import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
import org.jboss.tools.smooks.graphical.editors.ConnectionModelFactory;
import org.jboss.tools.smooks.graphical.editors.GraphicalModelFactory;
+import org.jboss.tools.smooks.graphical.editors.SmooksGraphicalEditorPaletteRootCreator.SmooksModelCreationFactory;
import org.jboss.tools.smooks.graphical.editors.SmooksGraphicalEditorPart;
+import org.jboss.tools.smooks.graphical.editors.TaskTypeManager;
import org.jboss.tools.smooks.graphical.editors.autolayout.IAutoLayout;
import org.jboss.tools.smooks.graphical.editors.editparts.freemarker.FreemarkerAutoLayout;
import org.jboss.tools.smooks.graphical.editors.model.IValidatableModel;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.FreemarkerTemplateGraphicalModel;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.IFreemarkerTemplateModel;
+import org.jboss.tools.smooks.graphical.editors.process.TaskType;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
@@ -214,4 +218,20 @@
public String getID() {
return ID;
}
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.graphical.editors.SmooksGraphicalEditorPart#createInputDataGraphModel()
+ */
+ @Override
+ protected List<AbstractSmooksGraphicalModel> createInputDataGraphModel() {
+ TaskType task = getTaskType();
+ Freemarker taskConfig = (Freemarker) task.getTaskResources().get(0);
+ String templateDataProvider = SmooksModelUtils.getParamValue(taskConfig.getParam(), SmooksModelUtils.TEMPLATE_DATA_PROVIDER_PARAM_NAME);
+
+ if(templateDataProvider != null && templateDataProvider.trim().equals(TaskTypeManager.TASK_ID_INPUT)) {
+ return super.createInputDataGraphModel();
+ } else {
+ return Collections.EMPTY_LIST;
+ }
+ }
}
15 years, 7 months
JBoss Tools SVN: r24846 - trunk/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2010-09-09 12:14:06 -0400 (Thu, 09 Sep 2010)
New Revision: 24846
Modified:
trunk/build/aggregate/site/index-template.html
trunk/build/aggregate/site/index.html
Log:
tweak index.html for agg update site
Modified: trunk/build/aggregate/site/index-template.html
===================================================================
--- trunk/build/aggregate/site/index-template.html 2010-09-09 16:13:45 UTC (rev 24845)
+++ trunk/build/aggregate/site/index-template.html 2010-09-09 16:14:06 UTC (rev 24846)
@@ -36,7 +36,7 @@
<tr class="dark-row" style="height: 90px">
<td class="bodyText">
<p class="bodyText"><b class="bodyText" style="color: red;">NOTE:</b> Some
- features (such as BIRT and Maven) require additional third-party
+ features (such as BIRT, Maven, or GWT) require additional third-party
prerequisites not available from Eclipse.org or JBoss.org. These can
be installed from the following update sites, which may already be
listed - but not enabled - in your Eclipse's list of Available
Modified: trunk/build/aggregate/site/index.html
===================================================================
--- trunk/build/aggregate/site/index.html 2010-09-09 16:13:45 UTC (rev 24845)
+++ trunk/build/aggregate/site/index.html 2010-09-09 16:14:06 UTC (rev 24846)
@@ -36,7 +36,7 @@
<tr class="dark-row" style="height: 90px">
<td class="bodyText">
<p class="bodyText"><b class="bodyText" style="color: red;">NOTE:</b> Some
- features (such as BIRT and Maven) require additional third-party
+ features (such as BIRT, Maven, or GWT) require additional third-party
prerequisites not available from Eclipse.org or JBoss.org. These can
be installed from the following update sites, which may already be
listed - but not enabled - in your Eclipse's list of Available
15 years, 7 months
JBoss Tools SVN: r24845 - in trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi: internal/core/el and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-09-09 12:13:45 -0400 (Thu, 09 Sep 2010)
New Revision: 24845
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/internal/core/el/CdiElResolver.java
Log:
https://jira.jboss.org/browse/JBIDE-2704
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 2010-09-09 15:41:24 UTC (rev 24844)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2010-09-09 16:13:45 UTC (rev 24845)
@@ -755,11 +755,14 @@
return false;
}
- private static CDICoreNature cdiNature;
-
+ /**
+ * Build a CDI model for the project if it hasn't built yet and show a Progress dialog.
+ *
+ * @param project
+ * @return the CDI nature for the project
+ */
public static CDICoreNature getCDINatureWithProgress(final IProject project){
- cdiNature = null;
- cdiNature = CDICorePlugin.getCDI(project, false);
+ final CDICoreNature cdiNature = CDICorePlugin.getCDI(project, false);
if(cdiNature != null && !cdiNature.isStorageResolved()){
try{
PlatformUI.getWorkbench().getProgressService().busyCursorWhile(new IRunnableWithProgress(){
@@ -770,7 +773,6 @@
cdiNature.resolve();
monitor.worked(7);
}
-
});
}catch(InterruptedException ie){
CDICorePlugin.getDefault().logError(ie);
@@ -778,7 +780,7 @@
CDICorePlugin.getDefault().logError(ite);
}
}
-
+
return cdiNature;
}
@@ -792,7 +794,6 @@
return result;
}
-
/**
* Collect all the interceptor binding declarations from the bean class or method including all the inherited bindings.
* @param binded bean class or method
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java 2010-09-09 15:41:24 UTC (rev 24844)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java 2010-09-09 16:13:45 UTC (rev 24845)
@@ -18,7 +18,9 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IMember;
import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.cdi.core.CDICoreNature;
import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IBean;
import org.jboss.tools.cdi.core.IBeanManager;
import org.jboss.tools.cdi.core.IBeanMember;
@@ -90,20 +92,29 @@
Set<IBean> resolvedBeans = null;
if (varName != null) {
- IBeanManager manager = CDICorePlugin.getCDI(project, false).getDelegate();
- if (manager != null) {
- if(onlyEqualNames) {
- resolvedBeans = manager.getBeans(varName, true);
- beans.addAll(resolvedBeans);
- } else {
- resolvedBeans = manager.getNamedBeans(true);
- for (IBean bean : resolvedBeans) {
- if(bean.getName().startsWith(varName)) {
- beans.add(bean);
+ CDICoreNature nature = CDIUtil.getCDINatureWithProgress(project);
+ if(nature!=null) {
+ IBeanManager manager = nature.getDelegate();
+ if (manager != null) {
+ if(onlyEqualNames) {
+ resolvedBeans = manager.getBeans(varName, true);
+ if(resolvedBeans.isEmpty()) {
+ resolvedBeans = manager.getBeans(varName, false);
}
+ beans.addAll(resolvedBeans);
+ } else {
+ resolvedBeans = manager.getNamedBeans(true);
+ if(resolvedBeans.isEmpty()) {
+ resolvedBeans = manager.getBeans(varName, false);
+ }
+ for (IBean bean : resolvedBeans) {
+ if(bean.getName().startsWith(varName)) {
+ beans.add(bean);
+ }
+ }
+ resolvedBeans.clear();
+ resolvedBeans.addAll(beans);
}
- resolvedBeans.clear();
- resolvedBeans.addAll(beans);
}
}
}
15 years, 7 months
JBoss Tools SVN: r24844 - trunk/cdi/plugins/org.jboss.tools.cdi.core/META-INF.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-09-09 11:41:24 -0400 (Thu, 09 Sep 2010)
New Revision: 24844
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/META-INF/MANIFEST.MF
Log:
https://jira.jboss.org/browse/JBIDE-2704
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/META-INF/MANIFEST.MF 2010-09-09 15:41:07 UTC (rev 24843)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/META-INF/MANIFEST.MF 2010-09-09 15:41:24 UTC (rev 24844)
@@ -20,7 +20,8 @@
org.eclipse.ltk.core.refactoring,
org.eclipse.jface.text,
org.eclipse.equinox.preferences,
- org.eclipse.wst.sse.core
+ org.eclipse.wst.sse.core,
+ org.eclipse.jdt.ui
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: JBoss by Red Hat
15 years, 7 months
JBoss Tools SVN: r24843 - trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/ca.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-09-09 11:41:07 -0400 (Thu, 09 Sep 2010)
New Revision: 24843
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/ca/BeansXmlProcessor.java
Log:
https://jira.jboss.org/browse/JBIDE-2704
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/ca/BeansXmlProcessor.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/ca/BeansXmlProcessor.java 2010-09-09 15:33:24 UTC (rev 24842)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/ca/BeansXmlProcessor.java 2010-09-09 15:41:07 UTC (rev 24843)
@@ -16,6 +16,9 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.swt.graphics.Image;
import org.jboss.tools.cdi.core.CDICoreNature;
import org.jboss.tools.cdi.core.CDICorePlugin;
import org.jboss.tools.cdi.core.IBean;
@@ -24,7 +27,6 @@
import org.jboss.tools.cdi.core.IDecorator;
import org.jboss.tools.cdi.core.IInterceptor;
import org.jboss.tools.cdi.core.IStereotype;
-import org.jboss.tools.cdi.internal.core.el.CdiElResolver;
import org.jboss.tools.common.text.TextProposal;
import org.jboss.tools.jst.web.kb.KbQuery;
@@ -35,6 +37,9 @@
private static final BeansXmlProcessor INSTANCE = new BeansXmlProcessor();
+ public static final Image CLASS_PROPOSAL_IMAGE = JavaPluginImages.DESC_OBJS_CLASS.createImage();
+ public static final Image ANNOTATION_PROPOSAL_IMAGE = JavaPluginImages.DESC_OBJS_ANNOTATION.createImage();
+
/**
* @return instance of PageProcessor
*/
@@ -144,11 +149,21 @@
String fullTypeName = type.getFullyQualifiedName();
if(fullTypeName.startsWith(value)) {
TextProposal proposal = new TextProposal();
- proposal.setLabel(fullTypeName);
+ proposal.setContextInfo(fullTypeName);
+ proposal.setLabel(type.getElementName() + " - " + type.getPackageFragment().getElementName());
+// proposal.setLabel(fullTypeName);
proposal.setReplacementString(fullTypeName);
proposal.setPosition(fullTypeName.length());
- proposal.setImage(CdiElResolver.CDI_EL_PROPOSAL_IMAGE);
-
+// proposal.setImage(CdiElResolver.CDI_EL_PROPOSAL_IMAGE);
+ try {
+ if(type.isClass()) {
+ proposal.setImage(CLASS_PROPOSAL_IMAGE);
+ } else {
+ proposal.setImage(ANNOTATION_PROPOSAL_IMAGE);
+ }
+ } catch (JavaModelException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
proposals.add(proposal);
}
}
15 years, 7 months