forked from qt-creator/qt-creator
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 b39b192518
Change-Id: Icae9daed2be5a258a9918731a881c72cbe4f0fa4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -1790,7 +1790,7 @@ void PluginManagerPrivate::readPluginPaths()
|
||||
|
||||
// from the file system
|
||||
for (const QString &pluginFile : pluginFiles(pluginPaths)) {
|
||||
expected_str<PluginSpec *> spec = readPluginSpec(pluginFile);
|
||||
expected_str<PluginSpec *> 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<PluginSpec *> spec = readPluginSpec(plugin);
|
||||
expected_str<PluginSpec *> spec = readCppPluginSpec(plugin);
|
||||
QTC_ASSERT_EXPECTED(spec, continue);
|
||||
newSpecs.append(*spec);
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ public:
|
||||
QRegularExpression platformSpecification;
|
||||
QVector<ExtensionSystem::PluginDependency> 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<PluginSpec *> readPluginSpec(const QString &fileName)
|
||||
expected_str<PluginSpec *> 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<PluginSpec *> readPluginSpec(const QString &fileName)
|
||||
return spec;
|
||||
}
|
||||
|
||||
expected_str<PluginSpec *> readPluginSpec(const QStaticPlugin &plugin)
|
||||
expected_str<PluginSpec *> 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<void> PluginSpec::reportError(const QString &error)
|
||||
/*!
|
||||
\internal
|
||||
*/
|
||||
expected_str<void> PluginSpecImpl::readMetaData(const QJsonObject &pluginMetaData)
|
||||
expected_str<void> CppPluginSpec::readMetaData(const QJsonObject &pluginMetaData)
|
||||
{
|
||||
qCDebug(pluginLog).noquote() << "MetaData:" << QJsonDocument(pluginMetaData).toJson();
|
||||
QJsonValue value;
|
||||
@@ -1011,7 +1011,7 @@ Utils::expected_str<void> PluginSpecPrivate::readMetaData(const QJsonObject &dat
|
||||
}
|
||||
}
|
||||
|
||||
state = PluginSpecImpl::Read;
|
||||
state = PluginSpec::Read;
|
||||
|
||||
return {};
|
||||
}
|
||||
@@ -1061,11 +1061,11 @@ bool PluginSpec::resolveDependencies(const QVector<PluginSpec *> &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<PluginSpec *> &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
|
||||
|
||||
@@ -169,18 +169,19 @@ private:
|
||||
std::unique_ptr<Internal::PluginSpecPrivate> d;
|
||||
};
|
||||
|
||||
EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec(const QString &filePath);
|
||||
EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec(const QStaticPlugin &plugin);
|
||||
EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readCppPluginSpec(const QString &filePath);
|
||||
EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readCppPluginSpec(
|
||||
const QStaticPlugin &plugin);
|
||||
|
||||
class EXTENSIONSYSTEM_TEST_EXPORT PluginSpecImpl : public PluginSpec
|
||||
class EXTENSIONSYSTEM_TEST_EXPORT CppPluginSpec : public PluginSpec
|
||||
{
|
||||
friend EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec(
|
||||
friend EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readCppPluginSpec(
|
||||
const QString &filePath);
|
||||
friend EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec(
|
||||
friend EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> 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<void> readMetaData(const QJsonObject &pluginMetaData) override;
|
||||
|
||||
protected:
|
||||
PluginSpecImpl();
|
||||
CppPluginSpec();
|
||||
|
||||
private:
|
||||
std::unique_ptr<Internal::PluginSpecImplPrivate> d;
|
||||
|
||||
@@ -154,7 +154,7 @@ void checkContents(QPromise<ArchiveIssue> &promise, const FilePath &tempDir)
|
||||
if (promise.isCanceled())
|
||||
return;
|
||||
it.next();
|
||||
expected_str<PluginSpec *> spec = readPluginSpec(it.filePath());
|
||||
expected_str<PluginSpec *> spec = readCppPluginSpec(it.filePath());
|
||||
if (spec) {
|
||||
// Is a Qt Creator plugin. Let's see if we find a Core dependency and check the
|
||||
// version
|
||||
|
||||
@@ -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<PluginSpec *> ps = readPluginSpec(
|
||||
Utils::expected_str<PluginSpec *> ps = readCppPluginSpec(
|
||||
QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/")
|
||||
+ libraryName(QLatin1String("test")));
|
||||
QVERIFY(ps);
|
||||
PluginSpecImpl *spec = static_cast<PluginSpecImpl *>(ps.value());
|
||||
CppPluginSpec *spec = static_cast<CppPluginSpec *>(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<PluginSpec *> 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<PluginSpec *> ps = readPluginSpec(
|
||||
Utils::expected_str<PluginSpec *> ps = readCppPluginSpec(
|
||||
QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/")
|
||||
+ libraryName(QLatin1String("test")));
|
||||
|
||||
QVERIFY(ps);
|
||||
PluginSpecImpl *spec = static_cast<PluginSpecImpl *>(ps.value());
|
||||
CppPluginSpec *spec = static_cast<CppPluginSpec *>(ps.value());
|
||||
|
||||
QVERIFY(spec->resolveDependencies(QVector<PluginSpec *>()));
|
||||
QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString()));
|
||||
@@ -291,11 +291,11 @@ void tst_PluginSpec::loadLibrary()
|
||||
|
||||
void tst_PluginSpec::initializePlugin()
|
||||
{
|
||||
Utils::expected_str<PluginSpec *> ps = readPluginSpec(
|
||||
Utils::expected_str<PluginSpec *> ps = readCppPluginSpec(
|
||||
QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/")
|
||||
+ libraryName(QLatin1String("test")));
|
||||
QVERIFY(ps);
|
||||
PluginSpecImpl *spec = static_cast<PluginSpecImpl *>(ps.value());
|
||||
CppPluginSpec *spec = static_cast<CppPluginSpec *>(ps.value());
|
||||
QVERIFY(spec->resolveDependencies(QVector<PluginSpec *>()));
|
||||
QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString()));
|
||||
bool isInitialized;
|
||||
@@ -316,11 +316,11 @@ void tst_PluginSpec::initializePlugin()
|
||||
|
||||
void tst_PluginSpec::initializeExtensions()
|
||||
{
|
||||
Utils::expected_str<PluginSpec *> ps = readPluginSpec(
|
||||
Utils::expected_str<PluginSpec *> ps = readCppPluginSpec(
|
||||
QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/")
|
||||
+ libraryName(QLatin1String("test")));
|
||||
QVERIFY(ps);
|
||||
PluginSpecImpl *spec = static_cast<PluginSpecImpl *>(ps.value());
|
||||
CppPluginSpec *spec = static_cast<CppPluginSpec *>(ps.value());
|
||||
QVERIFY(spec->resolveDependencies(QVector<PluginSpec *>()));
|
||||
QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString()));
|
||||
bool isExtensionsInitialized;
|
||||
|
||||
Reference in New Issue
Block a user