Skip to content

[5.0] Delete demo plugin #2845

@jgerman-bot

Description

@jgerman-bot

New language relevant PR in upstream repo: joomla/joomla-cms#40147 Here are the upstream changes:

Click to expand the diff!
diff --git a/administrator/components/com_admin/script.php b/administrator/components/com_admin/script.php
index b10c24775b739..4958a2109643c 100644
--- a/administrator/components/com_admin/script.php
+++ b/administrator/components/com_admin/script.php
@@ -229,6 +229,7 @@ protected function uninstallExtensions()
              * 'pre_function' => Name of an optional migration function to be called before
              *                   uninstalling, `null` if not used.
              */
+             ['type' => 'plugin', 'element' => 'demotasks', 'folder' => 'task', 'client_id' => 0, 'pre_function' => null],
         ];
 
         $db = Factory::getDbo();
diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql
new file mode 100644
index 0000000000000..4f6aa1f79b567
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql
@@ -0,0 +1 @@
+DELETE FROM `#__scheduler_tasks` WHERE `type` = 'demoTask_r1.sleep';
diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql
new file mode 100644
index 0000000000000..c3bb4daede595
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql
@@ -0,0 +1 @@
+DELETE FROM "#__scheduler_tasks" WHERE "type" = 'demoTask_r1.sleep';
diff --git a/administrator/language/en-GB/plg_task_demotasks.ini b/administrator/language/en-GB/plg_task_demotasks.ini
deleted file mode 100644
index b2d276c78a974..0000000000000
--- a/administrator/language/en-GB/plg_task_demotasks.ini
+++ /dev/null
@@ -1,19 +0,0 @@
-; Joomla! Project
-; (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
-; License GNU General Public License version 2 or later; see LICENSE.txt
-; Note : All ini files need to be saved as UTF-8
-
-PLG_TASK_DEMO_TASKS="Task - Demo Tasks!"
-PLG_TASK_DEMO_TASKS_SLEEP_TIMEOUT_LABEL="Sleep Timeout (seconds)"
-PLG_TASK_DEMO_TASKS_STRESS_MEMORY_DESC="What happens to a task when the PHP memory limit is exhausted?"
-PLG_TASK_DEMO_TASKS_STRESS_MEMORY_OVERRIDE_DESC="What happens to a task when the system memory is exhausted?"
-PLG_TASK_DEMO_TASKS_STRESS_MEMORY_OVERRIDE_TITLE="Stress Memory, Override Limit"
-PLG_TASK_DEMO_TASKS_STRESS_MEMORY_TITLE="Stress Memory"
-PLG_TASK_DEMO_TASKS_RESUMABLE_TITLE="Resumable Task"
-PLG_TASK_DEMO_TASKS_RESUMABLE_DESC="A simple task to demonstrate resumable task behaviour."
-PLG_TASK_DEMO_TASKS_RESUMABLE_STEPS_LABEL="Total number of steps"
-PLG_TASK_DEMO_TASKS_RESUMABLE_TIMEOUT_LABEL="Delay per step (seconds)"
-PLG_TASK_DEMO_TASKS_TASK_SLEEP_DESC="Sleep, do nothing for x seconds."
-PLG_TASK_DEMO_TASKS_TASK_SLEEP_ROUTINE_END_LOG_MESSAGE="TestTask1 return code is: %1$d. Processing Time: %2$.2f seconds"
-PLG_TASK_DEMO_TASKS_TASK_SLEEP_TITLE="Demo Task - Sleep"
-PLG_TASK_DEMO_TASKS_XML_DESCRIPTION="This is a demo plugin for the development of Joomla! Scheduled Tasks."
diff --git a/administrator/language/en-GB/plg_task_demotasks.sys.ini b/administrator/language/en-GB/plg_task_demotasks.sys.ini
deleted file mode 100644
index 6e691072a04ba..0000000000000
--- a/administrator/language/en-GB/plg_task_demotasks.sys.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-; Joomla! Project
-; (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
-; License GNU General Public License version 2 or later; see LICENSE.txt
-; Note : All ini files need to be saved as UTF-8
-
-PLG_TASK_DEMO_TASKS="Task - Demo Tasks!"
-PLG_TASK_DEMO_TASKS_XML_DESCRIPTION="This is a demo plugin for the development of Joomla! Scheduled Tasks."
diff --git a/installation/sql/mysql/base.sql b/installation/sql/mysql/base.sql
index d181db1fbcfe4..fb0e213ec8e83 100644
--- a/installation/sql/mysql/base.sql
+++ b/installation/sql/mysql/base.sql
@@ -357,7 +357,6 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`,
 (0, 'plg_system_updatenotification', 'plugin', 'updatenotification', 'system', 0, 1, 1, 0, 1, '', '', '', 23, 0),
 (0, 'plg_system_webauthn', 'plugin', 'webauthn', 'system', 0, 1, 1, 0, 1, '', '{}', '', 24, 0),
 (0, 'plg_task_checkfiles', 'plugin', 'checkfiles', 'task', 0, 1, 1, 0, 1, '', '{}', '', 1, 0),
-(0, 'plg_task_demotasks', 'plugin', 'demotasks', 'task', 0, 1, 1, 0, 1, '', '{}', '', 2, 0),
 (0, 'plg_task_requests', 'plugin', 'requests', 'task', 0, 1, 1, 0, 1, '', '{}', '', 3, 0),
 (0, 'plg_task_sitestatus', 'plugin', 'sitestatus', 'task', 0, 1, 1, 0, 1, '', '{}', '', 4, 0),
 (0, 'plg_multifactorauth_totp', 'plugin', 'totp', 'multifactorauth', 0, 1, 1, 0, 1, '', '', '', 1, 0),
diff --git a/installation/sql/postgresql/base.sql b/installation/sql/postgresql/base.sql
index 9bf300f290b23..4938db2808431 100644
--- a/installation/sql/postgresql/base.sql
+++ b/installation/sql/postgresql/base.sql
@@ -363,7 +363,6 @@ INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder",
 (0, 'plg_system_updatenotification', 'plugin', 'updatenotification', 'system', 0, 1, 1, 0, 1, '', '', '', 23, 0),
 (0, 'plg_system_webauthn', 'plugin', 'webauthn', 'system', 0, 1, 1, 0, 1, '', '{}', '', 24, 0),
 (0, 'plg_task_checkfiles', 'plugin', 'checkfiles', 'task', 0, 1, 1, 0, 1, '', '{}', '', 1, 0),
-(0, 'plg_task_demotasks', 'plugin', 'demotasks', 'task', 0, 1, 1, 0, 1, '', '{}', '', 2, 0),
 (0, 'plg_task_requests', 'plugin', 'requests', 'task', 0, 1, 1, 0, 1, '', '{}', '', 3, 0),
 (0, 'plg_task_sitestatus', 'plugin', 'sitestatus', 'task', 0, 1, 1, 0, 1, '', '{}', '', 4, 0),
 (0, 'plg_multifactorauth_totp', 'plugin', 'totp', 'multifactorauth', 0, 1, 1, 0, 1, '', '', '', 1, 0),
diff --git a/libraries/src/Extension/ExtensionHelper.php b/libraries/src/Extension/ExtensionHelper.php
index 9677624181e2c..fd0ae4d019bc2 100644
--- a/libraries/src/Extension/ExtensionHelper.php
+++ b/libraries/src/Extension/ExtensionHelper.php
@@ -309,7 +309,6 @@ class ExtensionHelper
 
         // Core plugin extensions - task scheduler
         ['plugin', 'checkfiles', 'task', 0],
-        ['plugin', 'demotasks', 'task', 0],
         ['plugin', 'requests', 'task', 0],
         ['plugin', 'sitestatus', 'task', 0],
 
diff --git a/plugins/task/demotasks/demotasks.xml b/plugins/task/demotasks/demotasks.xml
deleted file mode 100644
index 2ea1425e3bc9e..0000000000000
--- a/plugins/task/demotasks/demotasks.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<extension type="plugin" group="task" method="upgrade">
-	<name>plg_task_demo_tasks</name>
-	<author>Joomla! Project</author>
-	<creationDate>2021-07</creationDate>
-	<copyright>(C) 2021 Open Source Matters, Inc.</copyright>
-	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
-	<authorEmail>admin@joomla.org</authorEmail>
-	<authorUrl>www.joomla.org</authorUrl>
-	<version>4.1</version>
-	<description>PLG_TASK_DEMO_TASKS_XML_DESCRIPTION</description>
-	<namespace path="src">Joomla\Plugin\Task\DemoTasks</namespace>
-	<files>
-		<folder plugin="demotasks">services</folder>
-		<folder>src</folder>
-		<folder>forms</folder>
-	</files>
-	<languages>
-		<language tag="en-GB">language/en-GB/plg_task_demotasks.ini</language>
-		<language tag="en-GB">language/en-GB/plg_task_demotasks.sys.ini</language>
-	</languages>
-</extension>
diff --git a/plugins/task/demotasks/forms/testTaskForm.xml b/plugins/task/demotasks/forms/testTaskForm.xml
deleted file mode 100644
index bddef6c79395f..0000000000000
--- a/plugins/task/demotasks/forms/testTaskForm.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form>
-	<fields name="params">
-		<fieldset name="task_params">
-			<field
-				name="timeout"
-				type="number"
-				label="PLG_TASK_DEMO_TASKS_SLEEP_TIMEOUT_LABEL"
-				default="1"
-				required="true"
-				min="1"
-				step="1"
-				validate="number"
-				filter="int"
-			/>
-		</fieldset>
-	</fields>
-</form>
diff --git a/plugins/task/demotasks/services/provider.php b/plugins/task/demotasks/services/provider.php
deleted file mode 100644
index 42c908c9835c3..0000000000000
--- a/plugins/task/demotasks/services/provider.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @package     Joomla.Plugin
- * @subpackage  Task.DemoTasks
- *
- * @copyright   (C) 2022 Open Source Matters, Inc. <https://www.joomla.org>
- * @license     GNU General Public License version 2 or later; see LICENSE.txt
- */
-
-defined('_JEXEC') or die;
-
-use Joomla\CMS\Extension\PluginInterface;
-use Joomla\CMS\Factory;
-use Joomla\CMS\Plugin\PluginHelper;
-use Joomla\DI\Container;
-use Joomla\DI\ServiceProviderInterface;
-use Joomla\Event\DispatcherInterface;
-use Joomla\Plugin\Task\DemoTasks\Extension\DemoTasks;
-
-return new class () implements ServiceProviderInterface {
-    /**
-     * Registers the service provider with a DI container.
-     *
-     * @param   Container  $container  The DI container.
-     *
-     * @return  void
-     *
-     * @since   4.2.0
-     */
-    public function register(Container $container)
-    {
-        $container->set(
-            PluginInterface::class,
-            function (Container $container) {
-                $dispatcher = $container->get(DispatcherInterface::class);
-
-                $plugin = new DemoTasks(
-                    $dispatcher,
-                    (array) PluginHelper::getPlugin('task', 'demotasks')
-                );
-                $plugin->setApplication(Factory::getApplication());
-
-                return $plugin;
-            }
-        );
-    }
-};
diff --git a/plugins/task/demotasks/src/Extension/DemoTasks.php b/plugins/task/demotasks/src/Extension/DemoTasks.php
deleted file mode 100644
index 8a1f6d557b432..0000000000000
--- a/plugins/task/demotasks/src/Extension/DemoTasks.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-
-/**
- * @package     Joomla.Plugins
- * @subpackage  Task.DemoTasks
- *
- * @copyright   (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
- * @license     GNU General Public License version 2 or later; see LICENSE.txt
- */
-
-namespace Joomla\Plugin\Task\DemoTasks\Extension;
-
-use Joomla\CMS\Plugin\CMSPlugin;
-use Joomla\Component\Scheduler\Administrator\Event\ExecuteTaskEvent;
-use Joomla\Component\Scheduler\Administrator\Task\Status;
-use Joomla\Component\Scheduler\Administrator\Task\Task;
-use Joomla\Component\Scheduler\Administrator\Traits\TaskPluginTrait;
-use Joomla\Event\SubscriberInterface;
-
-// phpcs:disable PSR1.Files.SideEffects
-\defined('_JEXEC') or die;
-// phpcs:enable PSR1.Files.SideEffects
-
-/**
- * A demo task plugin. Offers 3 task routines and demonstrates the use of {@see TaskPluginTrait},
- * {@see ExecuteTaskEvent}.
- *
- * @since 4.1.0
- */
-final class DemoTasks extends CMSPlugin implements SubscriberInterface
-{
-    use TaskPluginTrait;
-
-    /**
-     * @var string[]
-     * @since 4.1.0
-     */
-    private const TASKS_MAP = [
-        'demoTask_r1.sleep' => [
-            'langConstPrefix' => 'PLG_TASK_DEMO_TASKS_TASK_SLEEP',
-            'method'          => 'sleep',
-            'form'            => 'testTaskForm',
-        ],
-        'demoTask_r2.memoryStressTest' => [
-            'langConstPrefix' => 'PLG_TASK_DEMO_TASKS_STRESS_MEMORY',
-            'method'          => 'stressMemory',
-        ],
-        'demoTask_r3.memoryStressTestOverride' => [
-            'langConstPrefix' => 'PLG_TASK_DEMO_TASKS_STRESS_MEMORY_OVERRIDE',
-            'method'          => 'stressMemoryRemoveLimit',
-        ],
-        'demoTask_r4.resumable' => [
-            'langConstPrefix' => 'PLG_TASK_DEMO_TASKS_RESUMABLE',
-            'method'          => 'resumable',
-            'form'            => 'testTaskForm',
-        ],
-    ];
-
-    /**
-     * @var boolean
-     * @since 4.1.0
-     */
-    protected $autoloadLanguage = true;
-
-    /**
-     * @inheritDoc
-     *
-     * @return string[]
-     *
-     * @since 4.1.0
-     */
-    public static function getSubscribedEvents(): array
-    {
-        return [
-            'onTaskOptionsList'    => 'advertiseRoutines',
-            'onExecuteTask'        => 'standardRoutineHandler',
-            'onContentPrepareForm' => 'enhanceTaskItemForm',
-        ];
-    }
-
-    /**
-     * Sample resumable task.
-     *
-     * Whether the task will resume is random. There's a 40% chance of finishing every time it runs.
-     *
-     * You can use this as a template to create long running tasks which can detect an impending
-     * timeout condition, return Status::WILL_RESUME and resume execution next time they are called.
-     *
-     * @param   ExecuteTaskEvent  $event  The event we are handling
-     *
-     * @return  integer
-     *
-     * @since   4.1.0
-     * @throws  \Exception
-     */
-    private function resumable(ExecuteTaskEvent $event): int
-    {
-        /** @var Task $task */
-        $task    = $event->getArgument('subject');
-        $timeout = (int) $event->getArgument('params')->timeout ?? 1;
-
-        $lastStatus = $task->get('last_exit_code', Status::OK);
-
-        // This is how you detect if you are resuming a task or starting it afresh
-        if ($lastStatus === Status::WILL_RESUME) {
-            $this->logTask(sprintf('Resuming task %d', $task->get('id')));
-        } else {
-            $this->logTask(sprintf('Starting new task %d', $task->get('id')));
-        }
-
-        // Sample task body; we are simply sleeping for some time.
-        $this->logTask(sprintf('Starting %ds timeout', $timeout));
-        sleep($timeout);
-        $this->logTask(sprintf('%ds timeout over!', $timeout));
-
-        // Should I resume the task in the next step (randomly decided)?
-        $willResume = random_int(0, 5) < 4;
-
-        // Log our intention to resume or not and return the appropriate exit code.
-        if ($willResume) {
-            $this->logTask(sprintf('Task %d will resume', $task->get('id')));
-        } else {
-            $this->logTask(sprintf('Task %d is now complete', $task->get('id')));
-        }
-
-        return $willResume ? Status::WILL_RESUME : Status::OK;
-    }
-
-    /**
-     * @param   ExecuteTaskEvent  $event  The `onExecuteTask` event.
-     *
-     * @return integer  The routine exit code.
-     *
-     * @since  4.1.0
-     * @throws \Exception
-     */
-    private function sleep(ExecuteTaskEvent $event): int
-    {
-        $timeout = (int) $event->getArgument('params')->timeout ?? 1;
-
-        $this->logTask(sprintf('Starting %d timeout', $timeout));
-        sleep($timeout);
-        $this->logTask(sprintf('%d timeout over!', $timeout));
-
-        return Status::OK;
-    }
-
-    /**
-     * Standard routine method for the memory test routine.
-     *
-     * @param   ExecuteTaskEvent  $event  The `onExecuteTask` event.
-     *
-     * @return integer  The routine exit code.
-     *
-     * @since  4.1.0
-     * @throws \Exception
-     */
-    private function stressMemory(ExecuteTaskEvent $event): int
-    {
-        $mLimit = $this->getMemoryLimit();
-        $this->logTask(sprintf('Memory Limit: %d KB', $mLimit));
-
-        $iMem = $cMem = memory_get_usage();
-        $i    = 0;
-
-        while ($cMem + ($cMem - $iMem) / ++$i <= $mLimit) {
-            $this->logTask(sprintf('Current memory usage: %d KB', $cMem));
-            ${"array" . $i} = array_fill(0, 100000, 1);
-        }
-
-        return Status::OK;
-    }
-
-    /**
-     * Standard routine method for the memory test routine, also attempts to override the memory limit set by the PHP
-     * INI.
-     *
-     * @param   ExecuteTaskEvent  $event  The `onExecuteTask` event.
-     *
-     * @return integer  The routine exit code.
-     *
-     * @since  4.1.0
-     * @throws \Exception
-     */
-    private function stressMemoryRemoveLimit(ExecuteTaskEvent $event): int
-    {
-        $success = false;
-
-        if (function_exists('ini_set')) {
-            $success = ini_set('memory_limit', -1) !== false;
-        }
-
-        $this->logTask('Memory limit override ' . $success ? 'successful' : 'failed');
-
-        return $this->stressMemory($event);
-    }
-
-    /**
-     * Processes the PHP ini memory_limit setting, returning the memory limit in KB
-     *
-     * @return float
-     *
-     * @since 4.1.0
-     */
-    private function getMemoryLimit(): float
-    {
-        $memoryLimit = ini_get('memory_limit');
-
-        if (preg_match('/^(\d+)(.)$/', $memoryLimit, $matches)) {
-            if ($matches[2] == 'M') {
-                // * nnnM -> nnn MB
-                $memoryLimit = $matches[1] * 1024 * 1024;
-            } else {
-                if ($matches[2] == 'K') {
-                    // * nnnK -> nnn KB
-                    $memoryLimit = $matches[1] * 1024;
-                }
-            }
-        }
-
-        return (float) $memoryLimit;
-    }
-}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions