Soap method signature compatibility between php 7.4 and 8.1 - soap

We have a custom class that extends the default Soap client class, we override the method __call, the problem is that this method declaration has changed between php7.4 and 8.1 how do I make them compatible with both versions of php
I get the following warning
Warning: Declaration of Bk\Soap\Client\SoapClientWSSEC::__call(string $name, array $args): Buckaroo\Magento2\Soap\Client\mixed should be compatible with SoapClient::__call($function_name, $arguments)

Related

Why did Grails 4.0.10 run-app behavior change overnight?

I am suddenly getting a conflict between a class in a Grails plugin and the same class in a Grails plugin.
Grails Notification plugin has a skeleton User class defined in order to provide
for stand-alone plugin testing. The User class is defined with the same package as
the real User class in the main app. The plugin User class is NOT published with
the plugin - it is excluded from the jar. In any case, the app class should predominate,
and there is no runtime warning about duplicate classes. The plugin User class is there in
the plugin sources jar, however. This has always worked fine - until now.
So, not only am I mystified, I'm also worried because we also include a number of duplicatively
defined utility classes that are also excluded from the plugin jars - will those also be a problem?
Important: this problem was not there yesterday! Overnight corporate security applied some
updates and forced a restart on our computers, so Intellij in particular had to be reopened.
A colleague can duplicate this same new behavior on his machine, so it's not a local cache
problem on my computer - pointing to a common code or build problem?
We are running run-app via the Intellij IDE, but invoking run-app from a cmdline exhibits the same problem.
// This Grails debug console code
import com.penbaymedia.jdeis5.notification.service.EmailService // just to check existence
def svc = ctx.getBean('emailService') // in Grails Notification plugin
def user = User.findByUsername('jphiloon') // User defined in main app and in plugin
svc.getEmail(user)
/* Responds with this result:
groovy.lang.MissingMethodException: No signature of method: com.penbaymedia.jdeis5.notification.service.EmailService.getEmail() is applicable for argument types: (com.penbaymedia.jdeis5.domainobject.User) values: [com.penbaymedia.jdeis5.domainobject.User : 5265]
Possible solutions: getEmail(com.penbaymedia.jdeis5.domainobject.User), getClass(), sendMail(groovy.lang.Closure)
The following classes appear as argument class and as parameter class, but are defined by different class loader:
com.penbaymedia.jdeis5.domainobject.User (defined by 'org.springframework.boot.devtools.restart.classloader.RestartClassLoader#1378323c' and 'sun.misc.Launcher$AppClassLoader#18b4aac2')
If one of the method suggestions matches the method you wanted to call,
then check your class loader setup.
*/
/* The error shown in the application run-app console is a bit different, but unproxying the User object does not help:
2022-03-02 11:20:00,270 ERROR com.penbaymedia.jdeis5.job.AssignmentNotificationIntervalJob - No signature of method: com.penbaymedia.jdeis5.notification.service.EmailService.getEmail() is applicable for argument types: (com.penbaymedia.jdeis5.domainobject.User$HibernateProxy$hgS4G0mO) values: [<com.penbaymedia.jdeis5.domainobject.User$HibernateProxy$hgS4G0mO#9c96547>]
Possible solutions: getEmail(com.penbaymedia.jdeis5.domainobject.User), getClass(), sendMail(groovy.lang.Closure)
*/

ESType error when ModelDrivenControllerBase is using to call MDrivenEcoSpaceAndModelForNetStandard

a code MyController:ModelDrivenControllerBase<EcoProject1EcoSpace> in the mvc or webapi netcore project shows a error "the type 'MDrivenTemplateProj.EcoProject1EcoSpace' cannot be used as type parameter 'ESType' in the generic type or method 'ModelDrivenControllerBase<ESType>'. There is no implicit reference conversion from 'MDrivenTemplateProj.EcoProject1EcoSpace' to 'Eco.Handles.DefaultEcospace" + annoying request to add ref to the 'MDriven.Handles.netStandard, version=7.0.0.0, culture=neutral, publickeytoken=null'. (always version 7.0.0.0!)
Could you please advise how to avoid such kind of errors?
I'm trying to develop the webapi netcore 3.1 app that has ref to MDrivenEcoSpaceAndModelForNetStandard project using the NetFramework 4.x. experience.
Seems that is it wrong way for the netcore project.
Thank you!
Brand new MDriven packages on nuget targeting .netStandard2.1 and .net5 available now.
They have correct build version numbers, and are more granular in packages than the old Eco package.
https://wiki.mdriven.net/index.php/MVC
https://www.nuget.org/packages?q=MDriven*
Old style still valid:
ref to the MDrivenEcoSpaceAndModelForNetStandard project in your netcore webapi
leave ControllerBase as a base class for your MVC controller
create and activate new ecospace in the constructor of your controller
_es = new MDrivenTemplateProj.EcoProject1EcoSpace();_es.Active = true;
you can call CreateFromViewModel method if you want to use VMs, ex.
var vmc = Eco.ViewModel.Runtime.ViewModelHelper.CreateFromViewModel("SampleViewModel", this._es, null, false);
Manual fixes that are still required in MDrivenEcoSpaceAndModelForNetStandard project:
EcoProject1EcoSpace.Designer.cs - this.persistenceMapperSharer1.MapperProviderTypeName auto generated value is incorrect
EcoProject1PMP.Designer.cs - this.EcoSpaceTypeName auto generated value is incorrect
be ready that your build in VS EcoProject modeller will not be able to start persistence after the fixes above. It will show you "No suitable constructor found" message

The method `add_template_helper` does not seem to work in Rails 6.1

After updating my project to Rails 6.1 I get this error:
NoMethodError:
undefined method `add_template_helper' for ApplicationMailer:Class
In the documentation does not seem to be deprecated.
So, apparently, this method was deleted without deprecation warning in this commit:
https://github.com/rails/rails/commit/cb3b37b37975ceb1d38bec9f02305ff5c14ba8e9
So, the fix for this issue is to replace:
class MyMailer < ApplicationMailer
add_template_helper MyHelper
With:
class MyMailer < ApplicationMailer
helper MyHelper

Can't locate object method "ssl_opts" via package "LWP::UserAgent"

All related modules are installed and also checked dependencies ..already installed everything even though given below error :
Can't locate object method "ssl_opts" via package "LWP::UserAgent" on centos 6
Can anyone help me?
Looks like the ssl_opts method was added in libwww version 6.00. And the Centos 6 package is called perl-libwww-perl-5.833. So, the version of LWP::UserAgent that you have is too old to include that method.

EclipseEnvironmentInfo class is unavailable in osgi bundle 3.10 onwards

I'm using the EclipseEnvironmentInfo.getDefault().getCommandLineArgs() to get the command line arguements passed.
In the latest osgi from version 3.10 onwards this class and method is unavailable.
Can someone tell me what is the equivalent to this in the latest osgi jar?
It's EquinoxConfiguration, however that is an internal class so I wouldn't recommend using it.
Platform.getCommandLineArgs() is a public method.
Alternatively you can get the EnvironmentInfo implementation from the OSGi service (code taken from org.eclipse.equinox.internal.app.Activator):
BundleContext bc = ...;
ServiceReference infoRef = bc.getServiceReference(EnvironmentInfo.class.getName());
EnvironmentInfo envInfo = (EnvironmentInfo) bc.getService(infoRef);
bc.ungetService(infoRef);