From ef8455f270d33d6ca1d2426e546b0e22e33256c0 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 19 Apr 2024 12:43:24 +0200 Subject: [PATCH] ExtensionSystem: Rename PluginSpecImpl to CppPluginSpec Since we now have multiple classes inheriting from PluginSpec it makes sense to rename PluginSpecImpl to the more accurate CppPluginSpec as it deals with compiled plugins only. Amends b39b1925189416585933c017e189d04d6e4c478d Change-Id: Icae9daed2be5a258a9918731a881c72cbe4f0fa4 Reviewed-by: Eike Ziller --- src/libs/extensionsystem/pluginmanager.cpp | 4 +- src/libs/extensionsystem/pluginspec.cpp | 66 +++++++++---------- src/libs/extensionsystem/pluginspec.h | 15 +++-- .../coreplugin/plugininstallwizard.cpp | 2 +- .../pluginspec/tst_pluginspec.cpp | 34 +++++----- 5 files changed, 61 insertions(+), 60 deletions(-) diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp index 60ef637e2f8..78bf778b31c 100644 --- a/src/libs/extensionsystem/pluginmanager.cpp +++ b/src/libs/extensionsystem/pluginmanager.cpp @@ -1790,7 +1790,7 @@ void PluginManagerPrivate::readPluginPaths() // from the file system for (const QString &pluginFile : pluginFiles(pluginPaths)) { - expected_str spec = readPluginSpec(pluginFile); + expected_str spec = readCppPluginSpec(pluginFile); if (!spec) { qCInfo(pluginLog).noquote() << QString("Ignoring plugin \"%1\" because: %2").arg(pluginFile).arg(spec.error()); @@ -1801,7 +1801,7 @@ void PluginManagerPrivate::readPluginPaths() // static for (const QStaticPlugin &plugin : QPluginLoader::staticPlugins()) { - expected_str spec = readPluginSpec(plugin); + expected_str spec = readCppPluginSpec(plugin); QTC_ASSERT_EXPECTED(spec, continue); newSpecs.append(*spec); } diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp index 3165fb7911b..3e777323280 100644 --- a/src/libs/extensionsystem/pluginspec.cpp +++ b/src/libs/extensionsystem/pluginspec.cpp @@ -200,7 +200,7 @@ public: QRegularExpression platformSpecification; QVector dependencies; - PluginSpecImpl::PluginArgumentDescriptions argumentDescriptions; + PluginSpec::PluginArgumentDescriptions argumentDescriptions; QString location; QString filePath; @@ -234,14 +234,14 @@ public: /*! \internal */ -PluginSpecImpl::PluginSpecImpl() +CppPluginSpec::CppPluginSpec() : d(new PluginSpecImplPrivate) {} /*! \internal */ -PluginSpecImpl::~PluginSpecImpl() = default; +CppPluginSpec::~CppPluginSpec() = default; /*! Returns the plugin name. This is valid after the PluginSpec::Read state is @@ -578,7 +578,7 @@ bool PluginSpec::provides(const QString &pluginName, const QString &pluginVersio already been successfully loaded. That is, the PluginSpec::Loaded state is reached. */ -IPlugin *PluginSpecImpl::plugin() const +IPlugin *CppPluginSpec::plugin() const { return d->plugin; } @@ -692,9 +692,9 @@ namespace { \internal Returns false if the file does not represent a Qt Creator plugin. */ -expected_str readPluginSpec(const QString &fileName) +expected_str readCppPluginSpec(const QString &fileName) { - auto spec = new PluginSpecImpl; + auto spec = new CppPluginSpec; QFileInfo fileInfo(fileName); spec->setLocation(fileInfo.absolutePath()); @@ -715,9 +715,9 @@ expected_str readPluginSpec(const QString &fileName) return spec; } -expected_str readPluginSpec(const QStaticPlugin &plugin) +expected_str readCppPluginSpec(const QStaticPlugin &plugin) { - auto spec = new PluginSpecImpl; + auto spec = new CppPluginSpec; qCDebug(pluginLog) << "\nReading meta data of static plugin"; spec->d->staticPlugin = plugin; @@ -771,7 +771,7 @@ Utils::expected_str PluginSpec::reportError(const QString &error) /*! \internal */ -expected_str PluginSpecImpl::readMetaData(const QJsonObject &pluginMetaData) +expected_str CppPluginSpec::readMetaData(const QJsonObject &pluginMetaData) { qCDebug(pluginLog).noquote() << "MetaData:" << QJsonDocument(pluginMetaData).toJson(); QJsonValue value; @@ -1011,7 +1011,7 @@ Utils::expected_str PluginSpecPrivate::readMetaData(const QJsonObject &dat } } - state = PluginSpecImpl::Read; + state = PluginSpec::Read; return {}; } @@ -1061,11 +1061,11 @@ bool PluginSpec::resolveDependencies(const QVector &specs) { if (hasError()) return false; - if (state() > PluginSpecImpl::Resolved) + if (state() > PluginSpec::Resolved) return true; // We are resolved already. - if (state() == PluginSpecImpl::Resolved) - setState(PluginSpecImpl::Read); // Go back, so we just re-resolve the dependencies. - if (state() != PluginSpecImpl::Read) { + if (state() == PluginSpec::Resolved) + setState(PluginSpec::Read); // Go back, so we just re-resolve the dependencies. + if (state() != PluginSpec::Read) { setError(::ExtensionSystem::Tr::tr("Resolving dependencies failed because state != Read")); return false; } @@ -1094,7 +1094,7 @@ bool PluginSpec::resolveDependencies(const QVector &specs) d->dependencySpecs = resolvedDependencies; - d->state = PluginSpecImpl::Resolved; + d->state = PluginSpec::Resolved; return true; } @@ -1130,13 +1130,13 @@ void PluginSpec::setError(const QString &errorString) /*! \internal */ -bool PluginSpecImpl::loadLibrary() +bool CppPluginSpec::loadLibrary() { if (hasError()) return false; - if (state() != PluginSpecImpl::Resolved) { - if (state() == PluginSpecImpl::Loaded) + if (state() != PluginSpec::Resolved) { + if (state() == PluginSpec::Loaded) return true; setError(::ExtensionSystem::Tr::tr("Loading the library failed because state != Resolved")); return false; @@ -1154,7 +1154,7 @@ bool PluginSpecImpl::loadLibrary() d->loader->unload(); return false; } - setState(PluginSpecImpl::Loaded); + setState(PluginSpec::Loaded); d->plugin = pluginObject; return true; } @@ -1162,13 +1162,13 @@ bool PluginSpecImpl::loadLibrary() /*! \internal */ -bool PluginSpecImpl::initializePlugin() +bool CppPluginSpec::initializePlugin() { if (hasError()) return false; - if (state() != PluginSpecImpl::Loaded) { - if (state() == PluginSpecImpl::Initialized) + if (state() != PluginSpec::Loaded) { + if (state() == PluginSpec::Initialized) return true; setError( ::ExtensionSystem::Tr::tr("Initializing the plugin failed because state != Loaded")); @@ -1184,20 +1184,20 @@ bool PluginSpecImpl::initializePlugin() setError(::ExtensionSystem::Tr::tr("Plugin initialization failed: %1").arg(err)); return false; } - setState(PluginSpecImpl::Initialized); + setState(PluginSpec::Initialized); return true; } /*! \internal */ -bool PluginSpecImpl::initializeExtensions() +bool CppPluginSpec::initializeExtensions() { if (hasError()) return false; - if (state() != PluginSpecImpl::Initialized) { - if (state() == PluginSpecImpl::Running) + if (state() != PluginSpec::Initialized) { + if (state() == PluginSpec::Running) return true; setError(::ExtensionSystem::Tr::tr( "Cannot perform extensionsInitialized because state != Initialized")); @@ -1209,19 +1209,19 @@ bool PluginSpecImpl::initializeExtensions() return false; } d->plugin->extensionsInitialized(); - setState(PluginSpecImpl::Running); + setState(PluginSpec::Running); return true; } /*! \internal */ -bool PluginSpecImpl::delayedInitialize() +bool CppPluginSpec::delayedInitialize() { if (hasError()) return true; - if (state() != PluginSpecImpl::Running) + if (state() != PluginSpec::Running) return false; if (!d->plugin) { setError(::ExtensionSystem::Tr::tr( @@ -1235,21 +1235,21 @@ bool PluginSpecImpl::delayedInitialize() /*! \internal */ -IPlugin::ShutdownFlag PluginSpecImpl::stop() +IPlugin::ShutdownFlag CppPluginSpec::stop() { if (hasError()) return IPlugin::ShutdownFlag::SynchronousShutdown; if (!d->plugin) return IPlugin::SynchronousShutdown; - setState(PluginSpecImpl::Stopped); + setState(PluginSpec::Stopped); return d->plugin->aboutToShutdown(); } /*! \internal */ -void PluginSpecImpl::kill() +void CppPluginSpec::kill() { if (hasError()) return; @@ -1258,6 +1258,6 @@ void PluginSpecImpl::kill() return; delete d->plugin; d->plugin = nullptr; - setState(PluginSpecImpl::Deleted); + setState(PluginSpec::Deleted); } } // namespace ExtensionSystem diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h index 58a5ea12a3c..becb70f5799 100644 --- a/src/libs/extensionsystem/pluginspec.h +++ b/src/libs/extensionsystem/pluginspec.h @@ -169,18 +169,19 @@ private: std::unique_ptr d; }; -EXTENSIONSYSTEM_EXPORT Utils::expected_str readPluginSpec(const QString &filePath); -EXTENSIONSYSTEM_EXPORT Utils::expected_str readPluginSpec(const QStaticPlugin &plugin); +EXTENSIONSYSTEM_EXPORT Utils::expected_str readCppPluginSpec(const QString &filePath); +EXTENSIONSYSTEM_EXPORT Utils::expected_str readCppPluginSpec( + const QStaticPlugin &plugin); -class EXTENSIONSYSTEM_TEST_EXPORT PluginSpecImpl : public PluginSpec +class EXTENSIONSYSTEM_TEST_EXPORT CppPluginSpec : public PluginSpec { - friend EXTENSIONSYSTEM_EXPORT Utils::expected_str readPluginSpec( + friend EXTENSIONSYSTEM_EXPORT Utils::expected_str readCppPluginSpec( const QString &filePath); - friend EXTENSIONSYSTEM_EXPORT Utils::expected_str readPluginSpec( + friend EXTENSIONSYSTEM_EXPORT Utils::expected_str readCppPluginSpec( const QStaticPlugin &plugin); public: - ~PluginSpecImpl() override; + ~CppPluginSpec() override; // linked plugin instance, valid after 'Loaded' state is reached IPlugin *plugin() const override; @@ -195,7 +196,7 @@ public: Utils::expected_str readMetaData(const QJsonObject &pluginMetaData) override; protected: - PluginSpecImpl(); + CppPluginSpec(); private: std::unique_ptr d; diff --git a/src/plugins/coreplugin/plugininstallwizard.cpp b/src/plugins/coreplugin/plugininstallwizard.cpp index cb89748a1af..7e63e1d5084 100644 --- a/src/plugins/coreplugin/plugininstallwizard.cpp +++ b/src/plugins/coreplugin/plugininstallwizard.cpp @@ -154,7 +154,7 @@ void checkContents(QPromise &promise, const FilePath &tempDir) if (promise.isCanceled()) return; it.next(); - expected_str spec = readPluginSpec(it.filePath()); + expected_str spec = readCppPluginSpec(it.filePath()); if (spec) { // Is a Qt Creator plugin. Let's see if we find a Core dependency and check the // version diff --git a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp index b82b12401a3..39c043ff43a 100644 --- a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp +++ b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp @@ -84,7 +84,7 @@ void tst_PluginSpec::cleanupTestCase() void tst_PluginSpec::read() { - PluginSpecImpl spec; + CppPluginSpec spec; QCOMPARE(spec.state(), PluginSpec::Invalid); QVERIFY(spec.readMetaData(metaData("testspecs/spec1.json"))); QVERIFY(!spec.hasError()); @@ -122,7 +122,7 @@ void tst_PluginSpec::read() void tst_PluginSpec::readError() { - PluginSpecImpl spec; + CppPluginSpec spec; QCOMPARE(spec.state(), PluginSpec::Invalid); QVERIFY(!spec.readMetaData(metaData("non-existing-file.json"))); QCOMPARE(spec.state(), PluginSpec::Invalid); @@ -185,7 +185,7 @@ void tst_PluginSpec::versionCompare() void tst_PluginSpec::provides() { - PluginSpecImpl spec; + CppPluginSpec spec; QVERIFY(spec.readMetaData(metaData("testspecs/simplespec.json"))); QVERIFY(!spec.provides("SomeOtherPlugin", "2.2.3_9")); @@ -211,7 +211,7 @@ void tst_PluginSpec::provides() void tst_PluginSpec::experimental() { - PluginSpecImpl spec; + CppPluginSpec spec; QVERIFY(spec.readMetaData(metaData("testspecs/simplespec_experimental.json"))); QCOMPARE(spec.isExperimental(), true); @@ -220,11 +220,11 @@ void tst_PluginSpec::experimental() void tst_PluginSpec::locationAndPath() { - Utils::expected_str ps = readPluginSpec( + Utils::expected_str ps = readCppPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); - PluginSpecImpl *spec = static_cast(ps.value()); + CppPluginSpec *spec = static_cast(ps.value()); QCOMPARE(spec->location(), QString(QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin"))); QCOMPARE(spec->filePath(), QString(QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") @@ -234,27 +234,27 @@ void tst_PluginSpec::locationAndPath() void tst_PluginSpec::resolveDependencies() { QVector specs; - PluginSpec *spec1 = new PluginSpecImpl(); + PluginSpec *spec1 = new CppPluginSpec(); specs.append(spec1); spec1->readMetaData(metaData("testdependencies/spec1.json")); spec1->setState(PluginSpec::Read); // fake read state for plugin resolving - PluginSpec *spec2 = new PluginSpecImpl(); + PluginSpec *spec2 = new CppPluginSpec(); specs.append(spec2); spec2->readMetaData(metaData("testdependencies/spec2.json")); spec2->setState(PluginSpec::Read); // fake read state for plugin resolving - PluginSpec *spec3 = new PluginSpecImpl(); + PluginSpec *spec3 = new CppPluginSpec(); specs.append(spec3); spec3->readMetaData(metaData("testdependencies/spec3.json")); spec3->setState(PluginSpec::Read); // fake read state for plugin resolving - PluginSpec *spec4 = new PluginSpecImpl(); + PluginSpec *spec4 = new CppPluginSpec(); specs.append(spec4); spec4->readMetaData(metaData("testdependencies/spec4.json")); spec4->setState(PluginSpec::Read); // fake read state for plugin resolving - PluginSpec *spec5 = new PluginSpecImpl(); + PluginSpec *spec5 = new CppPluginSpec(); specs.append(spec5); spec5->readMetaData(metaData("testdependencies/spec5.json")); spec5->setState(PluginSpec::Read); // fake read state for plugin resolving @@ -271,12 +271,12 @@ void tst_PluginSpec::resolveDependencies() void tst_PluginSpec::loadLibrary() { - Utils::expected_str ps = readPluginSpec( + Utils::expected_str ps = readCppPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); - PluginSpecImpl *spec = static_cast(ps.value()); + CppPluginSpec *spec = static_cast(ps.value()); QVERIFY(spec->resolveDependencies(QVector())); QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString())); @@ -291,11 +291,11 @@ void tst_PluginSpec::loadLibrary() void tst_PluginSpec::initializePlugin() { - Utils::expected_str ps = readPluginSpec( + Utils::expected_str ps = readCppPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); - PluginSpecImpl *spec = static_cast(ps.value()); + CppPluginSpec *spec = static_cast(ps.value()); QVERIFY(spec->resolveDependencies(QVector())); QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString())); bool isInitialized; @@ -316,11 +316,11 @@ void tst_PluginSpec::initializePlugin() void tst_PluginSpec::initializeExtensions() { - Utils::expected_str ps = readPluginSpec( + Utils::expected_str ps = readCppPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); - PluginSpecImpl *spec = static_cast(ps.value()); + CppPluginSpec *spec = static_cast(ps.value()); QVERIFY(spec->resolveDependencies(QVector())); QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString())); bool isExtensionsInitialized;