Skip to content

Fix incorrect info in meta.json#270

Open
ochnios wants to merge 1 commit intowso2-extensions:masterfrom
ochnios:fix/meta-for-v6.0.0
Open

Fix incorrect info in meta.json#270
ochnios wants to merge 1 commit intowso2-extensions:masterfrom
ochnios:fix/meta-for-v6.0.0

Conversation

@ochnios
Copy link

@ochnios ochnios commented Nov 17, 2025

Purpose

The current meta.json states that esb-connector-file v6.0.0 is compatible with Micro Integrator (MI) 4.5.0 and 4.4.0. This is not accurate due to an underlying commons-vfs2 library incompatibility.

  • MI 4.5.0 (which uses wso2-synapse:4.0.0-wso2v268) provides commons-vfs:2.2.0-wso2v22.
  • The esb-connector-file v6.0.0 requires a newer version (2.10.0-wso2v4) of the commons-vfs2 library.

Attempting to deploy esb-connector-file v6.0.0 on MI 4.5.0 results in a runtime exception, as the older VFS library provided by MI is loaded and is not compatible with the connector's requirements.

Since repository issues are disabled, this PR is being used to highlight this incompatibility and correct the meta.json.

Goals

The goal of this PR is to update the connector's compatibility information in meta.json

This change removes the inaccurate claim that connector v6.0.0 is compatible with MI 4.5.0 and 4.4.0, which will prevent other users from encountering this deployment failure.

Approach

This PR directly modifies meta.json to remove the incorrect compatibility entry for MI 4.5.0 and MI 4.4.0

Suggested solution:
For a permanent fix, you could consider one of two options:

  1. Clearly document the correct minimum MI version that provides the required commons-vfs2 library.
  2. If MI 4.5.0 support is desired, downgrade the commons-vfs2 dependency within the connector to be compatible with the 2.2.0-wso2v22 version provided by MI.

Attachments

Exception log

[2025-11-17 12:53:16,065] ERROR {org.apache.synapse.config.xml.ClassMediatorFactory} [] - Error in instantiating class : org.wso2.carbon.connector.operations.CheckFileExist java.lang.NoClassDefFoundError: org/wso2/org/apache/commons/vfs2/FileSystemException
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3551)
	at java.base/java.lang.Class.getConstructor0(Class.java:3756)
	at java.base/java.lang.Class.newInstance(Class.java:708)
	at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:121)
	at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:108)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:285)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:198)
	at org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:53)
	at org.apache.synapse.config.xml.TemplateMediatorFactory.createSpecificMediator(TemplateMediatorFactory.java:72)
	at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:108)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:285)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:198)
	at org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:202)
	at org.apache.synapse.libraries.model.LibraryArtifact.loadComponentsInto(LibraryArtifact.java:102)
	at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:158)
	at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:143)
	at org.apache.synapse.libraries.util.LibDeployerUtils.loadLibArtifacts(LibDeployerUtils.java:404)
	at org.apache.synapse.deployers.LibraryArtifactDeployer.completeDeployment(LibraryArtifactDeployer.java:149)
	at org.apache.synapse.deployers.LibraryArtifactDeployer.deploy(LibraryArtifactDeployer.java:89)
	at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:146)
	at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:809)
	at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:171)
	at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:384)
	at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:251)
	at org.apache.synapse.Axis2SynapseController.deployMediatorExtensions(Axis2SynapseController.java:755)
	at org.apache.synapse.Axis2SynapseController.createSynapseEnvironment(Axis2SynapseController.java:401)
	at org.apache.synapse.ServerManager.start(ServerManager.java:199)
	at org.wso2.micro.integrator.initializer.ServiceBusInitializer.initESB(ServiceBusInitializer.java:387)
	at org.wso2.micro.integrator.initializer.ServiceBusInitializer.activate(ServiceBusInitializer.java:157)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
	at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
	at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
	at org.wso2.micro.integrator.ntask.core.internal.TasksDSComponent.activate(TasksDSComponent.java:142)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
	at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
	at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
	at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816)
	at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783)
	at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
	at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: java.lang.ClassNotFoundException: org.wso2.org.apache.commons.vfs2.FileSystemException
	at org.apache.axis2.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:279)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
	... 63 more

[2025-11-17 12:53:16,066] ERROR {org.apache.synapse.deployers.LibraryArtifactDeployer} [] - Deployment of the Synapse Artifact from file : MI_HOME\repository\deployment\server\synapse-libs\file-connector-6.0.0.zip : Failed! org.apache.synapse.deployers.SynapseArtifactDeploymentException: Template configuration : null cannot be builtfor Synapse Library artifact : checkExist
	at org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:207)
	at org.apache.synapse.libraries.model.LibraryArtifact.loadComponentsInto(LibraryArtifact.java:102)
	at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:158)
	at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:143)
	at org.apache.synapse.libraries.util.LibDeployerUtils.loadLibArtifacts(LibDeployerUtils.java:404)
	at org.apache.synapse.deployers.LibraryArtifactDeployer.completeDeployment(LibraryArtifactDeployer.java:149)
	at org.apache.synapse.deployers.LibraryArtifactDeployer.deploy(LibraryArtifactDeployer.java:89)
	at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:146)
	at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:809)
	at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:171)
	at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:384)
	at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:251)
	at org.apache.synapse.Axis2SynapseController.deployMediatorExtensions(Axis2SynapseController.java:755)
	at org.apache.synapse.Axis2SynapseController.createSynapseEnvironment(Axis2SynapseController.java:401)
	at org.apache.synapse.ServerManager.start(ServerManager.java:199)
	at org.wso2.micro.integrator.initializer.ServiceBusInitializer.initESB(ServiceBusInitializer.java:387)
	at org.wso2.micro.integrator.initializer.ServiceBusInitializer.activate(ServiceBusInitializer.java:157)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
	at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
	at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
	at org.wso2.micro.integrator.ntask.core.internal.TasksDSComponent.activate(TasksDSComponent.java:142)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
	at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
	at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
	at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
	at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
	at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816)
	at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783)
	at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
	at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: org.apache.synapse.SynapseException: Error in instantiating class : org.wso2.carbon.connector.operations.CheckFileExist
	at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:128)
	at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:108)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:285)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:198)
	at org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:53)
	at org.apache.synapse.config.xml.TemplateMediatorFactory.createSpecificMediator(TemplateMediatorFactory.java:72)
	at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:108)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:285)
	at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:198)
	at org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:202)
	... 49 more
Caused by: java.lang.NoClassDefFoundError: org/wso2/org/apache/commons/vfs2/FileSystemException
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3551)
	at java.base/java.lang.Class.getConstructor0(Class.java:3756)
	at java.base/java.lang.Class.newInstance(Class.java:708)
	at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:121)
	... 58 more
Caused by: java.lang.ClassNotFoundException: org.wso2.org.apache.commons.vfs2.FileSystemException
	at org.apache.axis2.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:279)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
	... 63 more

@CLAassistant
Copy link

CLAassistant commented Nov 17, 2025

CLA assistant check
All committers have signed the CLA.

@ochnios ochnios force-pushed the fix/meta-for-v6.0.0 branch from 1de1a61 to 8ed17b3 Compare November 17, 2025 13:10
@arunans23
Copy link
Contributor

arunans23 commented Nov 19, 2025

Are you using VSCode extension for development? If possible, please share the reproducing steps.

@ochnios
Copy link
Author

ochnios commented Nov 20, 2025

@arunans23 we use VS Code for some of our integrations but not for all ones. I tried to add the file connector using VS Code extension and run integration - it actually worked. However, I noticed that missing commons-vfs library has been attached to CAR file itself along with connector:
image

But it doesn't work when I use a standalone connector zip file downloaded from official Github release or WSO2 store and deploy in old school way to /repository/deployment/server/synapse-libs.

@ochnios
Copy link
Author

ochnios commented Nov 20, 2025

I think this may be related to this issue: wso2/product-micro-integrator#4498
because older commons-vfs2 version is already built-in in MI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants