frascati issueshttps://gitlab.ow2.org/frascati/frascati/-/issues2018-02-06T10:32:12Zhttps://gitlab.ow2.org/frascati/frascati/-/issues/57FraSCAti can't mock a specific WSDL (because no JAXWS annotations support)2018-02-06T10:32:12ZJeremie GuillemotteFraSCAti can't mock a specific WSDL (because no JAXWS annotations support)( this issue has been originally reported in the easysoa project at https://github.com/easysoa/esper-frascati-poc/issues/4 )
It seems that FraSCAti does not use CXF JAXWS frontend when exposing a JAXWS annotated java service implementat...( this issue has been originally reported in the easysoa project at https://github.com/easysoa/esper-frascati-poc/issues/4 )
It seems that FraSCAti does not use CXF JAXWS frontend when exposing a JAXWS annotated java service implementation. We want to make a mockup of an internet exposed service (http://www.webservicex.net/globalweather.asmx?WSDL) with FraSCAti. To do this mockup, we have generated the server classes from the original service with Eclipse web service tool (right-click on WSDL > SOA > Generate server with CXF) and then making a composite file with a binding-ws tag to start the server.
Works well but the mock generated service signature is not the same that the original service signature.
Why ? Because FraSCAti doesn't use the JAX-WS annotations present in the classes so there are two main problems :
- FraSCAti use the interface name for the service name. It is a problem because the generated interface has not necessary the same name than the service. A solution to get around the problem is to rename the interface.
In our example : The generated interface is named GlobalWeatherSoap and the service name must be GlobalWeather. In FraSCAti, we have to use in the composite the interface GlobalWeatherSoap so the service name will be GlobalWeatherSoap.
- FraSCAti use for the port name the service name with the prefix 'Port'. It is the main problem because there is no way to change this name ...
In ou example : The service implementation class is GlobalWeatherSoapImpl1 with a portname tag = GlobalWeatherSoap, In FraSCAti, the port name will be GloblaWeatherSoapPort.
When the mocked web service is deployed directly on a CXF platform, there is no problem, the signature is fully compatible with the original web service.
Solution is to add a JAX-WS annotation support in FraSCAti for WS server.
1.5https://gitlab.ow2.org/frascati/frascati/-/issues/60Deploy <binding.http> within the context of a Servlet.2018-02-06T10:32:12ZPhilippe MerleDeploy <binding.http> within the context of a Servlet.When a FraSCAtiServlet instance runs then deploy <binding.http> with a relative uri (i.e., starting with '/') on this servlet. Then the FraSCAtiServlet will dispatch requests to services bound by <binding.http uri="/..."/>.
When a FraSCAtiServlet instance runs then deploy <binding.http> with a relative uri (i.e., starting with '/') on this servlet. Then the FraSCAtiServlet will dispatch requests to services bound by <binding.http uri="/..."/>.
1.5https://gitlab.ow2.org/frascati/frascati/-/issues/61Plugin frascati-component-factory-julia does not work with FraSCAti compiler ...2018-02-06T10:32:12ZRomain RouvoyPlugin frascati-component-factory-julia does not work with FraSCAti compiler MOJOWhen using dependency org.ow2.frascati:frascati-component-factory-julia and OW2 FraSCAti compiler MOJO the following exception is thrown:
> [...]
> Caused by: org.ow2.frascati.component.factory.api.FactoryException: Cannot create the OW...When using dependency org.ow2.frascati:frascati-component-factory-julia and OW2 FraSCAti compiler MOJO the following exception is thrown:
> [...]
> Caused by: org.ow2.frascati.component.factory.api.FactoryException: Cannot create the OW2 Fractal Julia Membranes bootstrap component
> at org.ow2.frascati.component.factory.impl.ComponentFactoryImpl.initialization(ComponentFactoryImpl.java:149)
> ... 57 more
> Caused by: org.objectweb.fractal.api.factory.InstantiationException: Cannot find or instantiate the 'org.objectweb.fractal.julia.loader.DynamicLoader' class specified in the julia.loader [system] property
> at org.objectweb.fractal.julia.Julia.newFcInstance(Julia.java:169)
> at org.objectweb.fractal.julia.Julia.newFcInstance(Julia.java:146)
> at org.objectweb.fractal.util.Fractal.getBootstrapComponent(Fractal.java:110)
> at org.ow2.frascati.component.factory.impl.ComponentFactoryImpl.initialization(ComponentFactoryImpl.java:146)
> ... 57 more
1.5https://gitlab.ow2.org/frascati/frascati/-/issues/63Add modularity to the remote introspection module2018-02-06T10:32:14ZChristophe DemareyAdd modularity to the remote introspection moduleAdd modularity to the remote introspection module.
I we don't want to use the reconfiguration service, we don't need the FScript dependency.
The idea is top split this module in two parts :
- the first part providing remote introspectio...Add modularity to the remote introspection module.
I we don't want to use the reconfiguration service, we don't need the FScript dependency.
The idea is top split this module in two parts :
- the first part providing remote introspection (with Fractal API) and deployment
- the second part providing remote reconfiguration with FScript.1.5https://gitlab.ow2.org/frascati/frascati/-/issues/64To support 64bit platform by using jline-0.9.92.jar2018-02-06T10:32:15ZLEE Ka Chun AnthonyTo support 64bit platform by using jline-0.9.92.jarjline-0.9.91.jar causes startup crash
exception:
jline_.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
have to be replaced by jline-0.9.92.jarjline-0.9.91.jar causes startup crash
exception:
jline_.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
have to be replaced by jline-0.9.92.jar1.5https://gitlab.ow2.org/frascati/frascati/-/issues/67Move to Apache CXF 2.4.22018-02-06T10:32:15ZPhilippe MerleMove to Apache CXF 2.4.21.5https://gitlab.ow2.org/frascati/frascati/-/issues/70Problem to close a Jetty HTTP component2018-02-06T10:32:15ZJeremie GuillemotteProblem to close a Jetty HTTP componentContext :
In HttpDIscoveryProxy, using 2 test classes : one for the discovery mode and on for the validated mode. Each class work only with mocks. Several composite files are used, one for the main proxy and 3 others for the mocks.
The ...Context :
In HttpDIscoveryProxy, using 2 test classes : one for the discovery mode and on for the validated mode. Each class work only with mocks. Several composite files are used, one for the main proxy and 3 others for the mocks.
The conposite files are loaded with FraSCAti.processComposite() method and unloaded with FraSCAti.close() method.
The used composite works with HTTP binding and WS binding.
The tests works very well separatelly in Eclipse.
Problem :
when a maven build is launched, the 2 tests are executed one after the other. The first test works well but the second hang on an HTTP service. It seems that a composite file cannot be successfully loaded in the second test. Jetty process stay with a 'STARTING' status during the start of the HTTP component.
How to reproduce :
See the special test class FraSCAtiBindingHttpCloseBugTest.java. Open ithe HttpDiscoveryProxy project in Eclipse and run this class a JUnit test.
Origin of the problem :
In the class org.ow2.frascati.servlet.manager.JettyServletManager, in the method unregisterServlet(final String uri), there is still a TODO tag : jettyServer.removeServant(URL url). It seems that the portion of code we try to use is not yet implemented.
This issue is also reported on EasySOA project at https://github.com/easysoa/easysoa-model-demo/issues/371.5https://gitlab.ow2.org/frascati/frascati/-/issues/72modifying component property through SCAPropertyController interface2013-03-14T16:56:05ZRussel nzekwamodifying component property through SCAPropertyController interfaceWhen you promote a component property to the composite level, and try to modify the later (component property) through SCAPropertyController of the composite, it doesn't affect the property of the internal component, which keeps the orig...When you promote a component property to the composite level, and try to modify the later (component property) through SCAPropertyController of the composite, it doesn't affect the property of the internal component, which keeps the original value.1.5https://gitlab.ow2.org/frascati/frascati/-/issues/78Library conflicts2012-01-26T14:24:09ZGwenael CattezLibrary conflictsFixing Jgroups library conflict in JMS module seems to have a side effect on BPEL module, affect build of frascati because BPEL example fails.Fixing Jgroups library conflict in JMS module seems to have a side effect on BPEL module, affect build of frascati because BPEL example fails.1.5https://gitlab.ow2.org/frascati/frascati/-/issues/81FrasSCAti Archetype2012-02-01T15:11:12ZAntonio De Almeida Souza NetoFrasSCAti ArchetypeCreate a FraSCAti Archetype to guide FraSCAti users to start new SCA applications. The feature must create and configure the application structure, containing a POM ready to use, a composite, a readme and an initial code and test.Create a FraSCAti Archetype to guide FraSCAti users to start new SCA applications. The feature must create and configure the application structure, containing a POM ready to use, a composite, a readme and an initial code and test.1.5https://gitlab.ow2.org/frascati/frascati/-/issues/83Don't use Thread.currentThread().getContextClassLoader() to load membrane pro...2018-02-06T10:32:16ZPhilippe MerleDon't use Thread.currentThread().getContextClassLoader() to load membrane provider classes.Don't use the current thread context class loader to load membrane provider classes.
File to modify: http://websvn.ow2.org/filedetails.php?repname=frascati&path=%2Ftrunk%2Ffrascati%2Fmodules%2Ffrascati-component-factory%2Fsrc%2Fmain%2Fja...Don't use the current thread context class loader to load membrane provider classes.
File to modify: http://websvn.ow2.org/filedetails.php?repname=frascati&path=%2Ftrunk%2Ffrascati%2Fmodules%2Ffrascati-component-factory%2Fsrc%2Fmain%2Fjava%2Forg%2Fow2%2Ffrascati%2Fcomponent%2Ffactory%2Fimpl%2FMembraneProviderImpl.java
1.5https://gitlab.ow2.org/frascati/frascati/-/issues/89Better app compilation error handling2018-02-06T10:32:19ZMarc DutooBetter app compilation error handling* display application source compilation error (ex. "publc" instead of "public") message to the user, so he knows what the problem is about
* if a class is already defined (ex. because of a previous failed compilation), subsequent appli...* display application source compilation error (ex. "publc" instead of "public") message to the user, so he knows what the problem is about
* if a class is already defined (ex. because of a previous failed compilation), subsequent application source compilations fail => create a new sub classloader for each compilation to do it in, rather than reusing the same one
* if in an app there is a null binding.w, NullPointer ex in ComplexProcessor line 58 and before that IOException in velocity => add guard checks in templates
* when deploying, fails if app/lib does not exist => check if it exists and create it if not1.5https://gitlab.ow2.org/frascati/frascati/-/issues/91Improve startup doc (README)2018-02-06T10:32:18ZMarc DutooImprove startup doc (README)* add to README :
- to create & fill database in command line :
$> mysql -u root -p
$mysql> create database easysoasimplified
$> mysql -u root -p < *.sql
- to debug : export MAVEN_OPTS="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_soc...* add to README :
- to create & fill database in command line :
$> mysql -u root -p
$mysql> create database easysoasimplified
$> mysql -u root -p < *.sql
- to debug : export MAVEN_OPTS="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 $MAVEN_OPTS"
- how to package & deploy in production / standalone / without maven
- The Frascati studio service is deployed at http://localhost:8095/easySoa/
* add to README FAQ :
- to avoid error "java.lang.OutOfMemoryError: PermGen space" : export MAVEN_OPTS="-XX:MaxPermSize=128m $MAVEN_OPTS" (happens ex. when proxying http://www.w3schools.com/webservices/tempconvert.asmx?WSDL )1.5https://gitlab.ow2.org/frascati/frascati/-/issues/92Null user home directory (workspace)2013-03-26T09:03:56ZMarc DutooNull user home directory (workspace)We've succeeded in creating a user account without home directory. Later this brings up file URLs containing ".../null/...", and possibly other errors.
Solution :
* if empty (after space trimming), set it to the user login by default
* ...We've succeeded in creating a user account without home directory. Later this brings up file URLs containing ".../null/...", and possibly other errors.
Solution :
* if empty (after space trimming), set it to the user login by default
* if any error while creating it, display this error to the user
* in addition, better : fill it by default to the user name in the UI1.5https://gitlab.ow2.org/frascati/frascati/-/issues/94Database configuration problem on Windows2013-03-26T17:43:52ZMarc DutooDatabase configuration problem on WindowsOn Windows (Vista), connecting to database fails whatever Hibernate persistence properties have been set in the pom.xml
Workaround : directly set them in src/main/resources/META-INF/persistence.xml
Solution : who looks up the Hibernate ...On Windows (Vista), connecting to database fails whatever Hibernate persistence properties have been set in the pom.xml
Workaround : directly set them in src/main/resources/META-INF/persistence.xml
Solution : who looks up the Hibernate properties in the pom and sets them on Hibernate ??1.5https://gitlab.ow2.org/frascati/frascati/-/issues/96Transaction problems on Windows2018-02-06T10:32:18ZMarc DutooTransaction problems on WindowsCreating a user account fails with a NullPointer exc in UsersImpl.createWorkspace() on line 165, because preferences.getWorkspacePath() returns null
Cause : it triggers Preferences initialization which calls PreferencesManager.verifyPre...Creating a user account fails with a NullPointer exc in UsersImpl.createWorkspace() on line 165, because preferences.getWorkspacePath() returns null
Cause : it triggers Preferences initialization which calls PreferencesManager.verifyPreference() which tries to start & commit a NEW transaction to persist the user workspace preference while there is already a current transaction
Short term solution : init Preferences before starting the first tx, ex. by adding
preferences.getWorkspacePath();
before
entityManager.getTransaction().begin();
in UsersImpl.createAccount()
Longer term solutions : evaluate interest of alternatives :
* by using the pattern "session in view" i.e. one tx per user web action, by putting an Intent over the main servlet which begins & commits tx HOWEVER COSTLY
* checking first if a tx exists by writing a
TransactionHelper {
doInTransaction {
if !tx.exists() begin();
internalDoInTransaction();
if !tx.exists() commit();
}
}
and using it by implementing internalDoInTransaction() everywhere a tx is committed now
* adding transaction boundary control by annotating classes & methods, using Spring's or without. HOWEVER this would be a major addition to FraSCAti as an app development platform...1.5https://gitlab.ow2.org/frascati/frascati/-/issues/98Basic template : creation when WS binding fails2013-03-25T12:12:38ZMarc DutooBasic template : creation when WS binding failsCreating a new application using Basic template and WS binding fails (brings to an empty application page with an empty Alert box).
Cause : BindingProcessor.createBinding() compares the template-provided option value "WebService" with t...Creating a new application using Basic template and WS binding fails (brings to an empty application page with an empty Alert box).
Cause : BindingProcessor.createBinding() compares the template-provided option value "WebService" with the (WebService)BindingProcessor label "Web Service".
Solution : remove the space in one or add it in the other. Which is the logical default ? (ex. according to BindingProcessor.getBindingView(), the label should be the binding element id, but what kind of element id is it ?)1.5https://gitlab.ow2.org/frascati/frascati/-/issues/99Application creation failure make subsequent creation fails2013-03-25T12:15:43ZMarc DutooApplication creation failure make subsequent creation failsThis is a very annoying bug because it makes testing / using FraSCAti Studio heavy and cumbersome (have to restart it all every error).
When an application creation fails (ex. because compilation error "publc" instead of "public"), some...This is a very annoying bug because it makes testing / using FraSCAti Studio heavy and cumbersome (have to restart it all every error).
When an application creation fails (ex. because compilation error "publc" instead of "public"), some things are rollbacked :
* application persistence is rollbacked
* application root directory is deleted (including source dirs) in ServiceManagerImpl.createApplication()
but others are not :
* source dirs are not removed from membraneGeneration (where they have been added by addJavaSource() in ServiceManagerImpl.createApplication())
As a consequence, subsequent application creations, or any FraSCAti compilation for that matter, fail because it can't find those deleted directories, with cryptic errors such as :
Creation error
No such file or directory <.,C:\Users\user\Documents\frascati-studio\user\Fibo2\src\main\java>
that appear within TemplateActionBasicService.doActionAfterCreation() / JavaCodeTransformer.transform() / JuliacComponent.compileJavaSource() / Juliac's SourceFile.addAllJavaFiles().
Solution : remove those also from Juliac membraneGeneration, or don't delete those dirs and the application itself.
Further, check for other such "bad state" problems.1.5https://gitlab.ow2.org/frascati/frascati/-/issues/100Unable to compile & deploy app with annotated JAXRS interface2013-03-26T09:05:35ZMarc DutooUnable to compile & deploy app with annotated JAXRS interfaceCompilation fails because it can't find the javax.ws.rs.* imports.
Cause : they are not in the compilation classpath in SCAJavaCompilerImpl.compileAll() which is only all jars that are in lib/
Short term solution :
Here is a hack in SC...Compilation fails because it can't find the javax.ws.rs.* imports.
Cause : they are not in the compilation classpath in SCAJavaCompilerImpl.compileAll() which is only all jars that are in lib/
Short term solution :
Here is a hack in SCAJavaCompilerImpl.compileAll() that adds all FStudio classpath jars to the compilation :
// .concat(System.getProperty("java.class.path")); NOT THE RIGHT VALUE when started from maven
for (java.net.URL fileUrl : ((java.net.URLClassLoader) SCAJavaCompilerImpl.class.getClassLoader()).getURLs()) { // TODO DANGEROUS, BETTER INCLUDING FOR DEPLOY
try {
libList = libList.concat(System.getProperty("path.separator"));
libList = libList.concat(new java.io.File(fileUrl.toURI()).getAbsolutePath());
} catch (java.net.URISyntaxException e) {
e.printStackTrace(); // TODO log "unable to add to classpath default classpath lib ..."
}
}
Better long term solution alternatives :
* provide only "interface" jars ex. jaxrs/ws (jsr311 jars)...
* provides all "default" FraSCAti deps that are in the classpath to the compilation
* try to take into account the fact that those jars have also to be on the Deploy platform side...1.5https://gitlab.ow2.org/frascati/frascati/-/issues/102Implementation.composite not working on FraSCAti studio2018-02-06T10:32:19ZJeremie GuillemotteImplementation.composite not working on FraSCAti studioThe tag implementation.composite is not working on FraSCAti studio.
- When an app containing an implementation.composite tag is loaded in the FraSCAti studio editor, an error is throwed an the screen remains blank (see logErrorEdit.log ...The tag implementation.composite is not working on FraSCAti studio.
- When an app containing an implementation.composite tag is loaded in the FraSCAti studio editor, an error is throwed an the screen remains blank (see logErrorEdit.log file). In the ComplexProcessor class, the method getMenuItem try to get a processor for a EObject of type SCAImplementation but there is no processor registred for this object type, so null is returned and an error is generated.
- When an app containing an implementation.composite tag is deployed locally, an error is throwed (see logErrorDeploy.log file).
The FraSCAti studio app is joined in DiscovProx.zip file.1.5