You are viewing a plain text version of this content. The canonical link for it is here.
Posted to easyant-commits@incubator.apache.org by hi...@apache.org on 2011/02/17 20:23:04 UTC
svn commit: r1071768 [4/7] - in /incubator/easyant/easyant4e: ./ trunk/
trunk/org.apache.easyant/ trunk/org.apache.easyant/META-INF/
trunk/org.apache.easyant/lib/ trunk/org.apache.easyant4e.feature/
trunk/org.apache.easyant4e.releng/ trunk/org.apache.e...
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/icons/sa_onesample48.gif
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/icons/sa_onesample48.gif?rev=1071768&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/icons/sa_onesample48.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/icons/target.gif
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/icons/target.gif?rev=1071768&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/icons/target.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/lib/guice/aopalliance.jar
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/lib/guice/aopalliance.jar?rev=1071768&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/lib/guice/aopalliance.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/lib/guice/guice-2.0.jar
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/lib/guice/guice-2.0.jar?rev=1071768&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/lib/guice/guice-2.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.properties
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.properties?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.properties (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.properties Thu Feb 17 20:22:56 2011
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Easyant for Eclipse
+providerName = www.easyant.org
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.properties
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml Thu Feb 17 20:22:56 2011
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+ <extension
+ point="org.eclipse.core.resources.natures" id="EasyAntNature" name="EasyAntNature">
+ <runtime>
+ <run class="org.apache.easyant4e.natures.EasyAntNature" />
+ </runtime>
+ </extension>
+
+ <extension point="org.eclipse.core.resources.builders" id="EasyAntBuilder" name="EasyAntBuilder">
+ <builder>
+ <run class="org.apache.easyant4e.builders.EasyAntBuilder" />
+ </builder>
+ </extension>
+
+ <extension point="org.eclipse.ui.ide.projectNatureImages">
+ <image
+ id="org.apache.easyant4e.natures.EasyAntNatureImage"
+ natureId="org.apache.easyant4e.EasyAntNature"
+ icon="icons/EasyAntNature.gif">
+ </image>
+ </extension>
+
+ <extension point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ adaptable="true"
+ objectClass="org.eclipse.core.resources.IProject"
+ nameFilter="*"
+ id="org.apache.easyant4e.ui.popupMenus.contribution.IProject">
+ <menu id="org.apache.easyant4e.ui.menu" label="EasyAnt" path="additionsEasyAnt">
+ <groupMarker name="nature"/>
+ </menu>
+ <action
+ class="org.apache.easyant4e.natures.AddEasyAntNatureAction"
+ enablesFor="1"
+ id="org.apache.easyant4e.natures.AddEasyAntNatureAction"
+ icon = "icons/EasyAntNature.gif"
+ label="Convert Project to EasyAnt Project..."
+ menubarPath="org.apache.easyant4e.ui.menu/nature">
+ </action>
+ <action
+ class="org.apache.easyant4e.natures.RemoveEasyAntNatureAction"
+ enablesFor="1"
+ id="org.apache.easyant4e.natures.RemoveEasyAntNatureAction"
+ icon = "icons/EasyAntNature.gif"
+ label="Remove EasyAnt Nature..."
+ menubarPath="org.apache.easyant4e.ui.menu/nature">
+ </action>
+ </objectContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.importWizards">
+ <wizard
+ class="org.apache.easyant4e.wizards.EasyAntImportWizard"
+ id="org.apache.easyant4e.wizards.EasyAntImportWizard"
+ category="org.apache.easyant4e.wizards.category"
+ name="Existing EasyAnt Project"
+ icon="icons/EasyAntNature.gif">
+ <description>Import an existing EasyAnt Project</description>
+ </wizard>
+ <category
+ id="org.apache.easyant4e.wizards.category"
+ name="EasyAnt">
+ </category>
+ </extension>
+
+ <extension
+ point="org.apache.ivyde.eclipse.moduleDescriptorExtension">
+ <moduleDescriptor
+ modelContributorClass="org.apache.easyant4e.ivyde.extension.model.EasyAntModuleDescriptorExtension"></moduleDescriptor>
+ </extension>
+ <extension
+ point="org.apache.ivyde.eclipse.editorPage">
+ <editorPage
+ pageClass="org.apache.easyant4e.ivyde.extension.page.BuildPage">
+ </editorPage>
+ </extension>
+
+ <extension point="org.eclipse.ui.console.consoleFactories">
+ <consoleFactory
+ label="EasyAnt Console"
+ class="org.apache.easyant4e.console.EasyAntConsoleFactory"
+ icon="icons/full/obj16/ant_buildfile.gif">
+ </consoleFactory>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.startup">
+ <startup
+ class="org.apache.easyant4e.Startup"></startup>
+ </extension>
+ <!--
+ <extension
+ point="org.eclipse.ant.core.antTasks">
+ <antTask
+ class="org.apache.easyant.tasks.CoreRevisionCheckerTask"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.CoreRevisionCheckerTask">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.Import"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.Import">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.LoadModule"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.LoadModule">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.ParameterTask"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.ParameterTask">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.PathTask"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.PathTask">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.PropertyTask"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.PropertyTask">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.RepositoryReport"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.RepositoryReport">
+ </antTask>
+ <antTask
+ class="org.apache.easyant.tasks.SubModule"
+ library="lib/easyant-core.jar"
+ name="org.apache.easyant.tasks.SubModule">
+ </antTask>
+ </extension>
+ -->
+<!--
+ <extension
+ point="org.eclipse.ui.console.consolePageParticipants">
+ <consolePageParticipant
+ class="org.apache.easyant4e.console.EasyAntConsolePageParticipant"
+ id="org.apache.easyant4e.console.EasyAntConsolePageParticipant">
+ <enablement>
+ <instanceof
+ value="org.apache.easyant4e.console.EasyAntConsole">
+ </instanceof></enablement>
+ </consolePageParticipant>
+ </extension>
+-->
+
+ <!--
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.apache.easyant4e.ant.editor.AntEditor"
+ extensions="ant"
+ icon="icons/full/obj16/ant_buildfile.gif"
+ id="org.eclipse.ant.ui.internal.editor.AntEditor"
+ name="EasyAnt Editor">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.ant.core.antBuildFile"/>
+ </editor>
+ </extension>
+ -->
+
+</plugin>
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/plugin.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml Thu Feb 17 20:22:56 2011
@@ -0,0 +1,45 @@
+<!--
+ Copyright 2008-2009 the EasyAnt project
+
+ See the NOTICE file distributed with this work for additional information
+ regarding copyright ownership.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<ivysettings>
+ <settings defaultResolver="main"/>
+ <property name="easyant.repo.url" value="http://repository.easyant.org"/>
+ <!-- Directory use by ivy retreive in order to store modules (plugins and build types) -->
+ <property name="easyant.modules.dir" value="${user.home}/.easyant/modules"/>
+ <resolvers>
+ <filesystem name="local">
+ <ivy pattern="${easyant.modules.dir}/[organisation]/[module]/[revision]/[module].ivy" />
+ <artifact pattern="${easyant.modules.dir}/[organisation]/[module]/[revision]/[artifact](-[classifier]).[ext]"/>
+ </filesystem>
+ <!-- EasyAnt modules -->
+ <url name="easyant-modules">
+ <ivy pattern="${easyant.repo.url}/modules/[organisation]/[module]/[revision]/[module].ivy" />
+ <artifact pattern="${easyant.repo.url}/modules/[organisation]/[module]/[revision]/[artifact](-[classifier]).[ext]"/>
+ </url>
+ <!-- External required libraries -->
+ <url name="easyant-shared">
+ <ivy pattern="${easyant.repo.url}/shared/[organisation]/[module]/[revision]/[module].ivy" />
+ <artifact pattern="${easyant.repo.url}/shared/[organisation]/[module]/[revision]/[artifact](-[classifier]).[ext]"/>
+ </url>
+ <chain name="main" returnFirst="true">
+ <resolver ref="local"/>
+ <resolver ref="easyant-modules" />
+ <resolver ref="easyant-shared" />
+ </chain>
+ </resolvers>
+</ivysettings>
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings-remote.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml Thu Feb 17 20:22:56 2011
@@ -0,0 +1,40 @@
+<!--
+ Copyright 2008-2009 the EasyAnt project
+
+ See the NOTICE file distributed with this work for additional information
+ regarding copyright ownership.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<ivysettings>
+ <settings defaultResolver="main"/>
+ <caches useOrigin="true" defaultCacheDir="${user.home}/.easyant/easyant-cache" />
+ <!-- Directory use by ivy retreive in order to store modules (plugins and build types) -->
+ <property name="easyant.repo.dir" value="${user.home}/.easyant/easyant-repository"/>
+ <resolvers>
+ <!-- EasyAnt modules -->
+ <filesystem name="easyant-modules">
+ <ivy pattern="${easyant.repo.dir}/modules/[organisation]/[module]/[revision]/[module].ivy"/>
+ <artifact pattern="${easyant.repo.dir}/modules/[organisation]/[module]/[revision]/[artifact](-[classifier]).[ext]"/>
+ </filesystem>
+ <!-- External required libraries -->
+ <filesystem name="easyant-shared">
+ <ivy pattern="${easyant.repo.dir}/shared/[organisation]/[module]/[revision]/[module].ivy"/>
+ <artifact pattern="${easyant.repo.dir}/shared/[organisation]/[module]/[revision]/[artifact](-[classifier]).[ext]"/>
+ </filesystem>
+ <chain name="main" returnFirst="true">
+ <resolver ref="easyant-modules"/>
+ <resolver ref="easyant-shared"/>
+ </chain>
+ </resolvers>
+</ivysettings>
\ No newline at end of file
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/ivysettings.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e;
+
+import org.apache.easyant4e.modules.EasyAnt4EclipseModule;
+import org.apache.easyant4e.modules.EasyAntCoreModule;
+import org.apache.easyant4e.services.EasyantCoreService;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import com.google.inject.Inject;
+
+
+/**
+ * This class manage plugin life cycle
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class Activator extends AbstractUIPlugin {
+
+ private EasyAntPlugin easyAntPlugin;
+ private EasyAntCoreModule easyAntCoreModule;
+ private EasyAnt4EclipseModule easyAnt4EclipseModule;
+
+ private EasyantCoreService easyantCoreService;
+
+ @Inject
+ public void setEasyantCoreService(EasyantCoreService easyantCoreService) {
+ this.easyantCoreService = easyantCoreService;
+ }
+
+ public static final String PLUGIN_ID = "org.apache.easyant4e";
+
+ // The shared instance.
+ private static Activator plugin;
+
+
+ /**
+ * Create an activator and a EasyAntModule
+ *
+ */
+ public Activator() {
+ super();
+ if (plugin == null) {
+ plugin = this;
+ this.easyAntCoreModule = new EasyAntCoreModule();
+ this.easyAnt4EclipseModule = new EasyAnt4EclipseModule();
+ }
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ initializeEasyAntPlugin();
+ easyantCoreService.installPluginsRepository();
+ Activator.getDefault().getLog().log(
+ new Status(IStatus.INFO, Activator.PLUGIN_ID, 0, "EasyAnt For Eclipse started", null));
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ Activator.getDefault().getLog().log(
+ new Status(IStatus.INFO, Activator.PLUGIN_ID, 0, "EasyAnt For Eclipse shutdown", null));
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the plugin instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns the EasyAnt Plugin instance.
+ *
+ * @return the EasyAnt plugin instance
+ */
+ public static EasyAntPlugin getEasyAntPlugin() {
+ return getDefault().getEasyAntPluginInstance();
+ }
+
+ /**
+ * Returns the EasyAntPlugin instance.
+ */
+ private EasyAntPlugin getEasyAntPluginInstance() {
+ if (easyAntPlugin == null) {
+ initializeEasyAntPlugin();
+ }
+ return easyAntPlugin;
+ }
+
+ private void initializeEasyAntPlugin() {
+ if (easyAntPlugin == null) {
+ easyAntPlugin = new EasyAntPlugin(easyAntCoreModule, easyAnt4EclipseModule);
+ easyAntPlugin.injectMembers(this);
+ }
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Activator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public interface EasyAntConstants {
+
+
+ public static final String IVY_MODULE_TAG = "ivy-module";
+ public static final String IVY_INFO_TAG = "info";
+ //public static final String IVY_DESCRIPTION_TAG = "description";
+
+ public static final String EASYANT_TAG = "ea:build";
+ public static final String EASYANT_TYPE_ATTR = "type";
+
+ public static final String EASYANT_PROPERTY_TAG = "ea:property";
+ public static final String EASYANT_PROPERTY_NAME_ATTR = "name";
+ public static final String EASYANT_PROPERTY_VALUE_ATTR = "value";
+ public static final String EASYANT_PROPERTY_FILE_ATTR = "file";
+
+ public static final String EASYANT_PLUGIN_TAG = "ea:plugin";
+ public static final String EASYANT_PLUGIN_MODULE_ATTR = "module";
+ public static final String EASYANT_PLUGIN_AS_ATTR = "as";
+ public static final String EASYANT_PLUGIN_MODE_ATTR = "mode";
+ public static final String EASYANT_PLUGIN_MODE_INCLUDE = "include";
+ public static final String EASYANT_PLUGIN_MODE_IMPORT = "import";
+ public static final String EASYANT_PLUGIN_MANDATORY_ATTR = "mandatory";
+
+ public static final String EASYANT_BUILD_TYPES_ORG = "org.apache.easyant.buildtypes";
+ public static final String EASYANT_BUILD_PLUGINS_ORG = "org.apache.easyant.plugins";
+
+ public static final String PLUGINS_SETTINGS = "ivysettings.xml";
+
+ //Ant log level
+ public static final int ANT_LOGLEVEL_ERR = 0;
+ public static final int ANT_LOGLEVEL_WARN = 1;
+ public static final int ANT_LOGLEVEL_INFO = 2;
+ public static final int ANT_LOGLEVEL_VERBOSE = 3;
+ public static final int ANT_LOGLEVEL_DEBUG = 4;
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntConstants.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e;
+
+import org.apache.easyant4e.services.EasyantProjectService;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.PlatformUI;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class EasyAntPlugin {
+
+ private final Injector injector;
+
+ public EasyAntPlugin(Module... modules) {
+ injector = Guice.createInjector(modules);
+ injectMembers(this);
+ }
+
+ public void injectMembers(Object instance) {
+ injector.injectMembers(instance);
+ }
+
+ /**
+ * Return the {@link EasyantCoreService}.
+ */
+ /*public EasyantCoreService getEasyantCoreService() {
+ return getInstance(EasyantCoreService.class);
+ }*/
+
+ /**
+ * Return the {@link EasyantProjectService}.
+ */
+ /*
+ public EasyantProjectService getEasyantProjectService() {
+ return getInstance(EasyantProjectService.class);
+ }*/
+
+ public IProject getCurrentProject() {
+ try {
+ return getSelectedProject();
+ } catch (CoreException e) {
+ log(e);
+ }
+ return null;
+ }
+
+ // private IJavaProject getJavaProject() throws CoreException {
+ // IProject project = getSelectedProject();
+ // IJavaProject javaProject=null;
+ // if(project.hasNature(JavaCore.NATURE_ID)){
+ // javaProject = (IJavaProject)project.getNature(JavaCore.NATURE_ID);
+ // }
+ // return javaProject;
+ //}
+
+ private IProject getSelectedProject() throws CoreException {
+ IProject project = null;
+ Object selectedResource = getSelectedResource();
+ if (selectedResource instanceof IResource) {
+ IResource resource = (IResource) selectedResource;
+ project = resource.getProject();
+ } else if (selectedResource instanceof ClassPathContainer) {
+ // FIXME maybe use Adaptable and WorkbenchAdapter to resolve project
+ // container
+ project = ((ClassPathContainer) selectedResource).getJavaProject().getProject();
+ }
+ return project;
+ }
+
+ private Object getSelectedResource() {
+ IStructuredSelection selection = getStructuredSelection();
+ if (selection != null) {
+ Object element = selection.getFirstElement();
+ return element;
+ }
+ return null;
+ }
+
+ private IStructuredSelection getStructuredSelection() {
+ ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService()
+ .getSelection();
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection ss = (IStructuredSelection) selection;
+ return ss;
+ }
+ return null;
+ }
+
+ public void log(int severity, String message) {
+ log(severity, message, null);
+ }
+
+ public void log(int severity, String message, Throwable e) {
+ log(new Status(severity, Activator.PLUGIN_ID, 0, message, e));
+ }
+
+ public void log(CoreException e) {
+ log(e.getStatus().getSeverity(), "EasyAnt For Eclipse - Internal Error", e);
+ }
+
+ public void log(IStatus status) {
+ Activator.getDefault().getLog().log(status);
+ }
+
+ /**
+ * Return the workspace used by the workbench
+ *
+ * This method is internal to the workbench and must not be called by any
+ * plugins.
+ */
+ public IWorkspace getPluginWorkspace() {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ /**
+ * Get instances from the injector.
+ *
+ * @param type
+ * the type to get an instance of
+ * @return the instance
+ */
+ public <T> T getInstance(Class<T> type) {
+ return injector.getInstance(type);
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/EasyAntPlugin.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e;
+
+import org.eclipse.core.internal.registry.ExtensionRegistry;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.RegistryFactory;
+import org.eclipse.ui.IStartup;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+// http://wiki.eclipse.org/FAQ_How_do_I_make_my_plug-in_dynamic_aware%3F
+// http://wiki.eclipse.org/FAQ_How_do_I_make_my_plug-in_dynamic_enabled%3F
+public class Startup implements IStartup {
+
+ public void earlyStartup() {
+ //TODO add aspect to kill
+ //ExtensionRegistry -> private boolean checkReadWriteAccess(Object key, boolean persist) {
+
+// System.out.println("--- clean IvyDE extension");
+// IExtensionRegistry reg = RegistryFactory.getRegistry();
+// IExtension[] extensions = reg.getExtensions("org.apache.ivyde.eclipse");
+// for (IExtension extension : extensions) {
+// if ("org.eclipse.ui.popupMenus".equals(extension.getExtensionPointUniqueIdentifier())) {
+// System.out.println("--> remove "+extension);
+// try{
+// reg.removeExtension(extension, getUserToken());
+// }catch(Exception e){
+// e.printStackTrace();
+// }
+// System.out.println("--> extension removed!");
+// break;
+// }
+// }
+ }
+
+ /*
+ private Object getUserToken() {
+ IExtensionRegistry registry = RegistryFactory.getRegistry();
+ //return null; // require -Declipse.registry.nulltoken=true
+ return ((ExtensionRegistry) registry).getTemporaryUserToken();
+ }
+*/
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/Startup.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.ant.editor;
+
+/**
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+//@SuppressWarnings("restriction")
+public class EasyAntEditor /*extends org.eclipse.ant.internal.ui.editor.AntEditor*/ {
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ant/editor/EasyAntEditor.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.builders;
+
+import java.util.Map;
+
+import org.apache.easyant4e.Activator;
+import org.apache.easyant4e.EasyAntConstants;
+import org.apache.easyant4e.services.EasyantProjectService;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+
+import com.google.inject.Inject;
+
+//import com.google.inject.Inject;
+
+/**
+ * The EastAnt builder.
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class EasyAntBuilder extends IncrementalProjectBuilder {
+
+ private IProgressMonitor monitor;
+
+ private EasyantProjectService easyantProjectService;
+
+ public EasyAntBuilder(){
+ Activator.getEasyAntPlugin().injectMembers(this);
+ }
+
+ @Inject
+ public void setEasyantProjectService(EasyantProjectService easyantProjectService) {
+ this.easyantProjectService = easyantProjectService;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected IProject[] build(final int kind, final Map args, final IProgressMonitor monitor) throws CoreException {
+ this.monitor = monitor;
+ if (!getProject().exists()) {
+ return new IProject[] {};
+ } else {
+ try {
+ if (FULL_BUILD == kind) {
+ doBuild();
+ } else { // FIXME maybe check INCREMENTAL_BUILD or AUTO_BUILD
+ IResourceDelta delta = getDelta(getProject());
+ if (delta == null) {
+ doBuild();
+ } else {
+ doBuild(delta);
+ }
+ }
+ } catch (OperationCanceledException e) {
+ Activator.getEasyAntPlugin().log(IStatus.CANCEL, "EasyAnt build canceled", e);
+ }
+ return null;
+ }
+ }
+
+ protected void doBuild() throws CoreException {
+ IWorkspaceRunnable buildOperation = createBuildOperation();
+ buildOperation.run(monitor);
+ }
+
+ protected void doBuild(IResourceDelta delta) throws CoreException {
+ doBuild();
+ }
+
+ private IWorkspaceRunnable createBuildOperation(){
+ // TODO maybe use WorkspaceModifyOperation
+ return new IWorkspaceRunnable(){
+ public void run(IProgressMonitor monitor) throws CoreException {
+ // TODO call good target
+ easyantProjectService.runBuild(getProject(), "compile", EasyAntConstants.ANT_LOGLEVEL_WARN, monitor);
+ }
+ };
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/builders/EasyAntBuilder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.configurers;
+
+/**
+ * This interface must be implement to configure use in order to configure a basic eclipse project.
+ *
+ * In example : you muste add JavaNature, ScalaNature, GroovyNature or others
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public interface Configurer {
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/configurers/Configurer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.console;
+
+import org.eclipse.ui.console.IConsole;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public interface EasyAntConsole extends IConsole{
+
+ void show();
+ void close();
+ boolean isOpen();
+
+ void info(String msg);
+ void error(String msg);
+
+ /**
+ * Show the console.
+ *
+ * @param showNoMatterWhat
+ * ignore preferences if <code>true</code>
+ */
+ void show(boolean showNoMatterWhat);
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsole.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.console;
+
+import org.apache.easyant4e.Activator;
+import org.eclipse.ui.console.IConsoleFactory;
+
+import com.google.inject.Inject;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class EasyAntConsoleFactory implements IConsoleFactory {
+
+ private EasyAntConsole console;
+
+ public EasyAntConsoleFactory(){
+ Activator.getEasyAntPlugin().injectMembers(this);
+ }
+
+ @Inject
+ public void setConsole(EasyAntConsole console) {
+ this.console = console;
+ }
+
+ public void openConsole() {
+ if (console != null) {
+ console.show();
+ }
+ }
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.console;
+
+import org.apache.easyant4e.Activator;
+import org.apache.easyant4e.EasyAntPlugin;
+import org.apache.easyant4e.providers.ImageProvider;
+import org.apache.ivyde.eclipse.ui.console.IvyConsole;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsoleManager;
+
+import com.google.inject.Inject;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class EasyAntConsoleImpl extends IvyConsole implements EasyAntConsole {
+
+ private boolean isOpen=false;
+
+ public boolean isOpen() {
+ //TODO get the stat
+ return isOpen;
+ }
+
+ public void setOpen(boolean isOpen) {
+ this.isOpen = isOpen;
+ }
+
+ @Inject
+ public EasyAntConsoleImpl(ImageProvider imageProvider) {
+ super("EasyAnt", imageProvider.getConsoleImageDescriptor());
+ }
+
+ public void show() {
+ IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
+ IConsole[] existing = manager.getConsoles();
+ boolean exists = false;
+ for (int i = 0; i < existing.length; i++) {
+ if (this == existing[i]) {
+ exists = true;
+ }
+ }
+ if (!exists) {
+ manager.addConsoles(new IConsole[] { this });
+ }
+ manager.showConsoleView(this);
+ setOpen(true);
+
+ //show the Error log view
+ showErrorLogView();
+
+ }
+
+ private void showErrorLogView(){
+ if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
+ if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() != null) {
+ try {
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("org.eclipse.pde.runtime.LogView", null, IWorkbenchPage.VIEW_ACTIVATE);
+ } catch (PartInitException e) {
+ Activator.getEasyAntPlugin().log(IStatus.ERROR, "Cannot show the Error Log view.", e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void error(String msg) {
+ showErrorLogView();
+ super.error(msg);
+ }
+
+ public void close() {
+ IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
+ manager.removeConsoles(new IConsole[] { this });
+ //ConsolePlugin.getDefault().getConsoleManager().addConsoleListener(new MyLifecycle());
+ setOpen(false);
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsoleImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.console;
+
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsolePageParticipant;
+import org.eclipse.ui.part.IPageBookViewPage;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class EasyAntConsolePageParticipant implements IConsolePageParticipant {
+
+ //private CloseConsoleAction closeAction;
+
+ public void init(IPageBookViewPage page, IConsole console) {
+ // closeAction = new IvyConsoleRemoveAction(console);
+ // IToolBarManager manager =
+ // page.getSite().getActionBars().getToolBarManager();
+ // manager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, closeAction);
+ }
+
+ public void dispose() {
+ // closeAction = null;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Object getAdapter(Class adapter) {
+ return null;
+ }
+
+ public void activated() {
+ }
+
+ public void deactivated() {
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/console/EasyAntConsolePageParticipant.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.ivyde.extension;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import org.apache.easyant4e.Activator;
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * This class unpack the default EasyAnt repository in local file system.
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class RepositoryInstaller {
+ static final int BUFFER_SIZE = 102400;
+ static final String REPOSITORY_ARCHIVE_PATH = "repository.zip";
+ private URL interpreterZipUrl;
+
+ public void install(File installDir) {
+ this.interpreterZipUrl = Activator.getDefault().getBundle().getResource(REPOSITORY_ARCHIVE_PATH);
+ try {
+ unPackArchive(installDir);
+ } catch (IOException e) {
+ Activator.getEasyAntPlugin().log(IStatus.ERROR, "Cannot install EasyAnt repository", e);
+ }
+ }
+
+ private void unPackArchive(File installDir) throws IOException {
+ InputStream inputStream = this.interpreterZipUrl.openStream();
+ ZipInputStream zipFileStream = new ZipInputStream(inputStream);
+ ZipEntry zipEntry = zipFileStream.getNextEntry();
+ while (zipEntry != null) {
+ File destination = new File(installDir.getPath(), zipEntry.getName());
+ if (!zipEntry.isDirectory()) {
+ /*
+ * Copy files (and make sure parent directory exist)
+ */
+ File parentFile = destination.getParentFile();
+ boolean parentFileExist = isFileExists(parentFile);
+ if (!parentFileExist) {
+ parentFileExist = parentFile.mkdirs();
+ }
+ if (parentFileExist) {
+ OutputStream os = null;
+ try {
+ os = new FileOutputStream(destination);
+ byte[] buffer = new byte[BUFFER_SIZE];
+ while (true) {
+ int len = zipFileStream.read(buffer);
+ if (zipFileStream.available() == 0) {
+ break;
+ }
+ os.write(buffer, 0, len);
+ }
+ } finally {
+ if (null != os) {
+ os.close();
+ }
+ }
+ } else {
+ Activator.getEasyAntPlugin().log(IStatus.ERROR,
+ "Installing EasyAnt repository, but " + parentFile + " already exists!");
+ }
+ } else {
+ boolean created = destination.mkdirs();
+ if (!created) {
+ Activator.getEasyAntPlugin().log(IStatus.ERROR,
+ "Installing EasyAnt repository. Cannot create directory: " + destination);
+ }
+ }
+ zipFileStream.closeEntry();
+ zipEntry = zipFileStream.getNextEntry();
+ }
+ inputStream.close();
+ zipFileStream.close();
+ }
+
+ private boolean isFileExists(File file) {
+ return (null != file && file.exists());
+ }
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/RepositoryInstaller.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,330 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.ivyde.extension.model;
+
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_BUILD_PLUGINS_ORG;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_BUILD_TYPES_ORG;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_AS_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_MANDATORY_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_MODE_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_MODE_IMPORT;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_MODE_INCLUDE;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_MODULE_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PLUGIN_TAG;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PROPERTY_FILE_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PROPERTY_NAME_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PROPERTY_TAG;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_PROPERTY_VALUE_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_TAG;
+import static org.apache.easyant4e.EasyAntConstants.EASYANT_TYPE_ATTR;
+import static org.apache.easyant4e.EasyAntConstants.IVY_INFO_TAG;
+import static org.apache.easyant4e.EasyAntConstants.IVY_MODULE_TAG;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.easyant.core.descriptor.PropertyDescriptor;
+import org.apache.easyant4e.Activator;
+import org.apache.easyant4e.services.EasyantCoreService;
+import org.apache.ivyde.common.ivyfile.IvyModuleDescriptorModel;
+import org.apache.ivyde.common.model.IDocumentedValueProvider;
+import org.apache.ivyde.common.model.IvyFile;
+import org.apache.ivyde.common.model.IvyTag;
+import org.apache.ivyde.common.model.IvyTagAttribute;
+import org.apache.ivyde.eclipse.extension.ModuleDescriptorExtension;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+
+import com.google.inject.Inject;
+
+/**
+ * This class provide extension in order to add EasyAnt semantic information in
+ * Ivy module descriptor model.
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class EasyAntModuleDescriptorExtension implements ModuleDescriptorExtension {
+
+ private IvyModuleDescriptorModel model;
+ private IvyTag rootTag;
+ private EasyantCoreService easyantCoreService;
+
+ @Inject
+ public void setEasyantCoreService(EasyantCoreService easyantCoreService) {
+ this.easyantCoreService=easyantCoreService;
+ }
+
+ public EasyAntModuleDescriptorExtension() {
+ super();
+ Activator.getEasyAntPlugin().injectMembers(this);
+ }
+
+ public IvyModuleDescriptorModel contributeModel(IvyModuleDescriptorModel model) {
+ this.model = model;
+ this.rootTag = model.getRootIvyTag();
+ contributeEasyAntTag();
+ return model;
+ }
+
+ private IvyTag contributeEasyAntTag() {
+ IvyTag easyAntTag = createEasyAndTag();
+ return easyAntTag;
+ }
+
+ private IvyTag createEasyAndTag() {
+ IvyTag easyAntTag = new IvyTag(EASYANT_TAG, "Describes how to build this module with EasyAnt.");
+ easyAntTag.addAttribute(new IvyTagAttribute(EASYANT_TYPE_ATTR, "The name of the build type used to build this module.", true,
+ createBuildTypesValueProvider()));
+ model.addTag(easyAntTag);
+ getDescriptionTag().addChildIvyTag(easyAntTag);
+ easyAntTag = createEasyAndTagChilds(easyAntTag);
+ return easyAntTag;
+ }
+
+ private IvyTag createEasyAndTagChilds(IvyTag easyAntTag) {
+ createPropertyTag(rootTag, easyAntTag);
+ createPluginTag(rootTag, easyAntTag);
+ return easyAntTag;
+ }
+
+ private IvyTag getDescriptionTag() {
+ return model.getIvyTag(IVY_INFO_TAG, IVY_MODULE_TAG);
+ }
+
+ private IDocumentedValueProvider createBuildTypesValueProvider() {
+ final List<String> buildTypes = getBuildTypes();
+ IDocumentedValueProvider buildTypesValueProvider = new IDocumentedValueProvider() {
+ public String[] getValuesfor(IvyTagAttribute att, IvyFile ivyFile) {
+ return buildTypes.toArray(new String[buildTypes.size()]);
+ }
+ public String getDocForValue(String value, IvyFile ivyFile) {
+ String description = easyantCoreService.getBuildTypeDescription(value);
+ return description;
+ }
+ };
+ return buildTypesValueProvider;
+ }
+
+ private List<String> getBuildTypes() {
+ // load default build types
+ final ArrayList<String> buildTypes = new ArrayList<String>();
+ Job job = new Job("Easyant - Getting list of Build Types (" + EASYANT_BUILD_TYPES_ORG + ") " + "from repository ...") {
+ protected IStatus run(IProgressMonitor monitor) {
+ for (String module : easyantCoreService.getAllCoreBuildTypes()) {
+ String shortName = module.substring(module.indexOf("#")+1);
+ buildTypes.add(shortName);
+ buildTypes.add(module);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.setPriority(Job.LONG);
+ job.schedule();
+ return buildTypes;
+ }
+
+ private IvyTag createPropertyTag(IvyTag root, IvyTag parent) {
+ // Contribute <property name="" value=""> Tag
+ IvyTag propertyTag = new IvyTag(EASYANT_PROPERTY_TAG, "Define a property in order to configure the build type or plugins.");
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PROPERTY_NAME_ATTR, "The name of property. (associated with the 'value' tag)", false,
+ createPropertyNameValueProvider()));
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PROPERTY_VALUE_ATTR, "The value of property identified by the 'name' tag", false,
+ createPropertyValueProvider()));
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PROPERTY_FILE_ATTR, "Define a property file containing some properties 'name=value' pairs.", false));
+ model.addTag(propertyTag);
+ parent.addChildIvyTag(propertyTag);
+ return propertyTag;
+ }
+
+ private IvyTag createPluginTag(IvyTag root, IvyTag parent) {
+ // Contribute <plugin module="" as=""> Tag
+ IvyTag propertyTag = new IvyTag(EASYANT_PLUGIN_TAG, "Define a plugin used to contribute additionnal parts of the build process.");
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PLUGIN_MODULE_ATTR, "The name of the plugin.", true,
+ createPluginModuleValueProvider()));
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PLUGIN_AS_ATTR, "The name of the prefix used to call plugin's targets, i.e. for 'as=\"myplugin\"': myplugin:target1", true));
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PLUGIN_MODE_ATTR, "The kind of import.", true,
+ createPluginModeValueProvider()));
+ propertyTag.addAttribute(new IvyTagAttribute(EASYANT_PLUGIN_MANDATORY_ATTR, "The mandatory status", false,
+ createPluginMandatoryValueProvider()));
+ model.addTag(propertyTag);
+ parent.addChildIvyTag(propertyTag);
+ return propertyTag;
+ }
+
+ private IDocumentedValueProvider createPluginModuleValueProvider() {
+ final List<String> buildPlugins = getBuildPlugins();
+ IDocumentedValueProvider pluginModuleValueProvider = new IDocumentedValueProvider() {
+ public String[] getValuesfor(IvyTagAttribute att, IvyFile ivyFile) {
+ return buildPlugins.toArray(new String[buildPlugins.size()]);
+ }
+ public String getDocForValue(String value, IvyFile ivyFile) {
+ String description = easyantCoreService.getPluginDescription(value);
+ return description;
+ }
+ };
+ return pluginModuleValueProvider;
+ }
+
+ private List<String> getBuildPlugins() {
+ final ArrayList<String> buildPlugins = new ArrayList<String>();
+ // load default build plugins
+ Job job = new Job("Easyant - Getting list of Plugins (" + EASYANT_BUILD_PLUGINS_ORG + ") from repository ...") {
+ protected IStatus run(IProgressMonitor monitor) {
+ for (String module : easyantCoreService.getAllCorePlugins()) {
+ String shortName = module.substring(module.indexOf("#")+1);
+ buildPlugins.add(shortName);
+ buildPlugins.add(module);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.setPriority(Job.LONG);
+ job.schedule();
+ return buildPlugins;
+ }
+
+ private IDocumentedValueProvider createPluginModeValueProvider() {
+ IDocumentedValueProvider pluginModeValueProvider = new IDocumentedValueProvider() {
+ public String[] getValuesfor(IvyTagAttribute att, IvyFile ivyFile) {
+ return new String[] { EASYANT_PLUGIN_MODE_IMPORT, EASYANT_PLUGIN_MODE_INCLUDE };
+ }
+ public String getDocForValue(String value, IvyFile ivyFile) {
+ //TODO get documentation for import and include
+ return null;
+ }
+ };
+ return pluginModeValueProvider;
+ }
+
+ private IDocumentedValueProvider createPluginMandatoryValueProvider() {
+ IDocumentedValueProvider pluginMandatoryValueProvider = new IDocumentedValueProvider() {
+ public String[] getValuesfor(IvyTagAttribute att, IvyFile ivyFile) {
+ return new String[] { Boolean.TRUE.toString(), Boolean.FALSE.toString() };
+ }
+ public String getDocForValue(String value, IvyFile ivyFile) {
+ return null;
+ }
+ };
+ return pluginMandatoryValueProvider;
+ }
+
+ private IDocumentedValueProvider createPropertyValueProvider() {
+ IDocumentedValueProvider propertyValueValueProvider = new IDocumentedValueProvider() {
+
+ public String[] getValuesfor(IvyTagAttribute att, IvyFile ivyFile) {
+ PropertyDescriptor propertyDescriptor = getPropertyDescriptor(att, ivyFile);
+ if (propertyDescriptor != null) {
+ String value = propertyDescriptor.getDefaultValue();
+ if(value==null){
+ value = propertyDescriptor.getValue();
+ }
+ if(value!=null){
+ return new String[] { value };
+ }
+ return new String[] {};
+ }
+ return new String[] {};
+ }
+ public String getDocForValue(String value, IvyFile ivyFile) {
+ return null;
+ }
+ };
+ return propertyValueValueProvider;
+ }
+
+ private IDocumentedValueProvider createPropertyNameValueProvider() {
+ IDocumentedValueProvider propertyNameValueProvider = new IDocumentedValueProvider() {
+ public String[] getValuesfor(IvyTagAttribute att, IvyFile ivyFile) {
+ String buildType = getBuildType(ivyFile);
+ if (buildType != null) {
+ List<PropertyDescriptor> propertyDescriptors = easyantCoreService.getPropertiesForBuildType(buildType);
+ String[] names = new String[propertyDescriptors.size()];
+ int i = 0;
+ for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
+ names[i] = propertyDescriptor.getName();
+ i++;
+ }
+ return names;
+ }
+ return new String[] {};
+ }
+ public String getDocForValue(String value, IvyFile ivyFile) {
+ String buildType = getBuildType(ivyFile);
+ if(buildType!=null){
+ PropertyDescriptor propertyDescriptor = getPropertyDescriptor(buildType, value);
+ if(propertyDescriptor!=null){
+ return propertyDescriptor.getDescription();
+ }
+ }
+ return null;
+ }
+ };
+ return propertyNameValueProvider;
+ }
+
+ List<PropertyDescriptor> propertyDescriptorsCache;
+ private PropertyDescriptor getPropertyDescriptor(String buildType, String propertyName) {
+ if(propertyDescriptorsCache==null){
+ propertyDescriptorsCache= easyantCoreService.getPropertiesForBuildType(buildType);
+ }
+ for (PropertyDescriptor propertyDescriptor : propertyDescriptorsCache) {
+ if (propertyName.equals(propertyDescriptor.getName())) {
+ return propertyDescriptor;
+ }
+ }
+ return null;
+ }
+
+ private PropertyDescriptor getPropertyDescriptor(IvyTagAttribute att, IvyFile ivyFile) {
+ String buildType = getBuildType(ivyFile);
+ if (ivyFile.getAllAttsValues().containsKey(EASYANT_PROPERTY_NAME_ATTR)) {
+ String propertyNameValue = ivyFile.getAllAttsValues().get(EASYANT_PROPERTY_NAME_ATTR).toString();
+ if (buildType != null && propertyNameValue != null) {
+ List<PropertyDescriptor> propertyDescriptors = easyantCoreService.getPropertiesForBuildType(buildType);
+ for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
+ if (propertyNameValue.equals(propertyDescriptor.getName())) {
+ return propertyDescriptor;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ private String getBuildType(IvyFile ivyFile) {
+ if (EASYANT_TAG.equals(ivyFile.getParentTagName())) {
+ int[] indexes = ivyFile.getParentTagIndex();
+ if (indexes != null && indexes.length > 0) {
+ Map<String, String> allAttsValuesForEasyAntTag = ivyFile.getAllAttsValues(indexes[0] + 1);
+ String typeValue = allAttsValuesForEasyAntTag.get(EASYANT_TYPE_ATTR);
+ return typeValue;
+ }
+ }else if (IVY_INFO_TAG.equals(ivyFile.getParentTagName())) {
+ Map<String, String> allAttsValuesForEasyAntTag = ivyFile.getAllAttsValues(ivyFile.getOffset() + 1);
+ String typeValue = allAttsValuesForEasyAntTag.get(EASYANT_TYPE_ATTR);
+ return typeValue;
+ }
+ return null;
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/model/EasyAntModuleDescriptorExtension.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java
URL: http://svn.apache.org/viewvc/incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java?rev=1071768&view=auto
==============================================================================
--- incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java (added)
+++ incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java Thu Feb 17 20:22:56 2011
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2008-2009 the EasyAnt project
+ *
+ * See the NOTICE file distributed with this work for additional information
+ * regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.easyant4e.ivyde.extension.page;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.easyant.core.report.PhaseReport;
+import org.apache.easyant.core.report.TargetReport;
+import org.apache.easyant4e.services.EasyantProjectService;
+import org.apache.ivyde.eclipse.ui.core.IvyFileEditorInput;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+import com.google.inject.Inject;
+
+/**
+ *
+ * @author <a href="mailto:jerome@benois.fr">Jerome Benois</a>
+ */
+public class BuildLifeCycleContentProvider implements ITreeContentProvider {
+
+ private EasyantProjectService easyantProjectService;
+
+ public BuildLifeCycleContentProvider() {
+ }
+
+ @Inject
+ public void setEasyantProjectService(EasyantProjectService easyantProjectService) {
+ this.easyantProjectService = easyantProjectService;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ if (inputElement instanceof IvyFileEditorInput) {
+ IvyFileEditorInput ivyFileEditorInput = (IvyFileEditorInput) inputElement;
+ IFile ivyFile = ivyFileEditorInput.getFile();
+ List<PhaseReport> phaseReports = easyantProjectService.getPhases(ivyFile);
+ List<TargetReport> targetReports = easyantProjectService.getTargets(ivyFile);
+ ArrayList<Object> o = new ArrayList<Object>();
+ o.addAll(phaseReports);
+ o.addAll(targetReports);
+ Object[] input = o.toArray(new Object[o.size()]);
+ return input;
+ }
+ return new Object[0];
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement instanceof PhaseReport) {
+ PhaseReport phaseReport = (PhaseReport) parentElement;
+ //if (phaseReport.getName().equals("compile")) {
+ // System.out.println("coucou");
+ //}
+ List<TargetReport> targetReports = phaseReport.getTargetReports();
+ return targetReports.toArray(new TargetReport[targetReports.size()]);
+ }
+ return null;
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ if (element instanceof PhaseReport) {
+ PhaseReport phaseReport = (PhaseReport) element;
+ List<TargetReport> targetReports = phaseReport.getTargetReports();
+ return (targetReports != null && targetReports.size() > 0);
+ }
+ return false;
+ }
+
+}
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: incubator/easyant/easyant4e/trunk/org.apache.easyant4e/src/org/apache/easyant4e/ivyde/extension/page/BuildLifeCycleContentProvider.java
------------------------------------------------------------------------------
svn:mime-type = text/plain