frascati issueshttps://gitlab.ow2.org/frascati/frascati/-/issues2018-02-06T09:58:42Zhttps://gitlab.ow2.org/frascati/frascati/-/issues/84implementation-bpel and implementation-xquery incompatibility 2018-02-06T09:58:42ZMunilla Christopheimplementation-bpel and implementation-xquery incompatibility implementation-bpel and implementation-xquery use incompatible libraries because implementing a wide range of same classes (not all), but not in the same version (net.sourceforge.saxon:saxon:9.1.0.8 for xquery and net.sf.saxon:saxonhe:9....implementation-bpel and implementation-xquery use incompatible libraries because implementing a wide range of same classes (not all), but not in the same version (net.sourceforge.saxon:saxon:9.1.0.8 for xquery and net.sf.saxon:saxonhe:9.2.0.6 for bpel)
Reproduce the error :
add the implementation-xquery dependency to the factorial-bpel example
<dependency>
<groupId>org.ow2.frascati</groupId>
<artifactId>frascati-implementation-script-xquery</artifactId>
<version>${project.version}</version>
</dependency>
then try to execute the maven installation process of the factorial-bpel example,an exception is thrown :
java.lang.NoSuchMethodError: net.sf.saxon.Configuration.newConfiguration()Lnet/sf/saxon/Configuration;
at net.sf.saxon.xpath.XPathFactoryImpl.<init>(XPathFactoryImpl.java:26)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at javax.xml.xpath.XPathFactoryFinder.loadFromService(XPathFactoryFinder.java:370)
at javax.xml.xpath.XPathFactoryFinder._newFactory(XPathFactoryFinder.java:222)
at javax.xml.xpath.XPathFactoryFinder.newFactory(XPathFactoryFinder.java:143)
at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:185)
at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:99)
at com.ebmwebsourcing.easybox.impl.JaxbSchemaBinding.<clinit>(JaxbSchemaBinding.java:50)
at com.ebmwebsourcing.easybox.impl.AbstractXmlObjectSchemaBindingImpl.<init>(AbstractXmlObjectSchemaBindingImpl.java:28)
at com.ebmwebsourcing.easyschema10.impl.XmlObjectSchemaBindingImpl.<init>(XmlObjectSchemaBindingImpl.java:15)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:345)
A simple substitution of library in an implementation or an other does not work.https://gitlab.ow2.org/frascati/frascati/-/issues/85mvn sonar:sonar failed2018-02-06T10:32:18ZPhilippe Merlemvn sonar:sonar failedRunning 'mvn sonar:sonar' failed.
Running 'mvn sonar:sonar' failed.
https://gitlab.ow2.org/frascati/frascati/-/issues/87Adding SCA bindings2013-03-25T10:19:08ZPhilippe MerleAdding SCA bindingsCurrently, FraSCAti FScript only allows the dynamic creation of WS and REST bindings via add-ws-binding and add-rest-binding procedures respectively.
Other bindings must be supported.
Currently, FraSCAti FScript only allows the dynamic creation of WS and REST bindings via add-ws-binding and add-rest-binding procedures respectively.
Other bindings must be supported.
https://gitlab.ow2.org/frascati/frascati/-/issues/88Remote deploy RMI problem2012-08-21T20:06:35ZLEE Ka Chun AnthonyRemote deploy RMI problemBackground: FraSCAti is embedded in a distributed application that uses RMI as the communication method
If a FraSCAti instance is initialized/started in an object/class/JVM that already used some RMI client calls, remote deploy SCA RMI ...Background: FraSCAti is embedded in a distributed application that uses RMI as the communication method
If a FraSCAti instance is initialized/started in an object/class/JVM that already used some RMI client calls, remote deploy SCA RMI client component to that instance will fail (it throws a java.lang.ClassNotFoundException of the remote interface class)
However, if a remote deployment of SCA RMI components is performed before calling the RMI client calls, the following remote deployments of SCA RMI components could success.
I am not sure that this is a bug or I have some wrong configurations, but I can reproduce the error.
Some settings:
1. RMI of my own application and the SCA components are using different ports
2. RMI calls of my own application are performed in different JVMs
3. All tested in a local machine
Thank you.https://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/90More complete application generation2013-03-25T18:54:11ZMarc DutooMore complete application generation* for REST / JAXRS app templates, add import of annotation packages (.*) (@Path/get/produces...) automatically
* for SOAP / JAXWS app templates, add import of annotation packages (.*) (@WebService...) automatically
* add automatically pr...* for REST / JAXRS app templates, add import of annotation packages (.*) (@Path/get/produces...) automatically
* for SOAP / JAXWS app templates, add import of annotation packages (.*) (@WebService...) automatically
* add automatically promote name/namehttps://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/93Deployment on Cloud simulation local environment2012-09-25T12:51:31ZJeremie GuillemotteDeployment on Cloud simulation local environmentJava Fibonacci sample in FraSCAti studio.
See interface and implementation sources at https://github.com/easysoa/EasySOA/wiki/Frascati-studio-feedback
When deploying this sample with cloud simulation (launched in a separated FraSCAti),...Java Fibonacci sample in FraSCAti studio.
See interface and implementation sources at https://github.com/easysoa/EasySOA/wiki/Frascati-studio-feedback
When deploying this sample with cloud simulation (launched in a separated FraSCAti), got an exception with CXF.https://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/97On Firefox 15.0.1, "Report a bug" banner stays static when scrolling2012-09-21T12:30:11ZMarc DutooOn Firefox 15.0.1, "Report a bug" banner stays static when scrollingOn Firefox 15.0.1, "Report a bug" banner stays static when scrolling, therefore hiding useful parts of the UI, such as "Implementation" in Basic WS Service form (see attachment).On Firefox 15.0.1, "Report a bug" banner stays static when scrolling, therefore hiding useful parts of the UI, such as "Implementation" in Basic WS Service form (see attachment).https://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/101SCA include generate "already defined" error when used in FraSCAti studio2013-03-14T16:50:34ZJeremie GuillemotteSCA include generate "already defined" error when used in FraSCAti studioContext : adding an new app template in FraSCAti studio to create HTTP discovery proxy apps.
In the velocity template, I have to use the include tag on another composite file. In the generated composite file, there are all the content o...Context : adding an new app template in FraSCAti studio to create HTTP discovery proxy apps.
In the velocity template, I have to use the include tag on another composite file. In the generated composite file, there are all the content of the included composite but also the include tag. So at the compilation, a "component is already defined" error is throwed.
I have tried to delete by hand the include tag in the generated composite and it works. So the solution is either to remove the include tag in the generated composite or to remain the include tag but with no inclusion of the composite content.
There is also another solution. Currently, "the implementation.composite" tag is not supported by FraSCAti studio. Maybe the best is to use this tag to avoid the "is already defined" problem.
See the attached generated composite file for more informations about the problem.https://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.5https://gitlab.ow2.org/frascati/frascati/-/issues/103Binding.ws with wrong prefix doesn't generate any error2012-11-08T15:49:26ZJeremie GuillemotteBinding.ws with wrong prefix doesn't generate any errorUsing a wrong prefix with binding.ws tag does generates any error at the runtime.
Having these prefixes and binding.ws :
xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
xmlns:frascati="http://frascati.ow2.org/xmlns/sca/1.1"
<sca:service...Using a wrong prefix with binding.ws tag does generates any error at the runtime.
Having these prefixes and binding.ws :
xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
xmlns:frascati="http://frascati.ow2.org/xmlns/sca/1.1"
<sca:service name="proxyInfoService" promote="server/r">
<sca:interface.java interface="org.easysoa.proxy.ProxyInfoService"/>
<frascati:binding.ws uri="http://localhost:8089/proxyInfoService"/>
</sca:service>
If using frascati prefix instead of sca prefix, the binding.ws tag is ignored by FraSCAti. No error is generated at compilation or execution.https://gitlab.ow2.org/frascati/frascati/-/issues/104Improvement for implementation velocity in FraSCAti. Add the possibility to u...2018-02-06T10:32:19ZJeremie GuillemotteImprovement for implementation velocity in FraSCAti. Add the possibility to use templates in a tree organisation.Improvement for implementation velocity in FraSCAti (ProxyImplementationVelocity.java).
Here is the original code : http://websvn.ow2.org/filedetails.php?repname=frascati&path=%2Ftrunk%2Ffrascati%2Fmodules%2Ffrascati-implementation-velo...Improvement for implementation velocity in FraSCAti (ProxyImplementationVelocity.java).
Here is the original code : http://websvn.ow2.org/filedetails.php?repname=frascati&path=%2Ftrunk%2Ffrascati%2Fmodules%2Ffrascati-implementation-velocity%2Fsrc%2Fmain%2Fjava%2Forg%2Fow2%2Ffrascati%2Fimplementation%2Fvelocity%2FServletImplementationVelocity.java
The proposition is to add this portion of code to offer the possibility to load Velocity templates not only in a base folder but also in a folder tree.
Here is the code addition to solve this problem (can be found also on GitHub : https://github.com/easysoa/EasySOA/blob/master/easysoa-proxy/easysoa-proxy-core/easysoa-proxy-core-httpdiscoveryproxy/src/main/java/org/ow2/frascati/implementation/velocity/ProxyImplementationVelocity.java)
....
protected final String invoke(String method, VelocityContext context, String[] args, Object... parameters) {
// VelocityContext context = new VelocityContext(this.velocityContext);
context.put(params, parameters);
// FIXME: should not be called but @Lifecycle does not work as expected.
registerScaProperties();
StringWriter sw = new StringWriter();
// **** EasySOA Hack begin
int pathArgIndex = Integer.parseInt((String) context.get("pathArgIndex")); // pathArgIndex has been set as an SCA xsd:int property
int storeIndex = Integer.parseInt((String) context.get("storeIndex")); // storeIndex has been set as an SCA xsd:int property
Template template = null;
if (parameters.length > pathArgIndex) {
Object templatePathFound = parameters[pathArgIndex];
Object storeNameFound = parameters[storeIndex];
if (templatePathFound instanceof String) {
template = this.velocityEngine.getTemplate((String)storeNameFound + "/" + (String) templatePathFound);
}
}
// *** EasySOA Hack end
if (template == null) {
String name = this.velocityEngine.templateExists(method + ".vm") ? method + ".vm" : this.defaultResource;
template = this.velocityEngine.getTemplate(name);
}
if (!this.velocityEngine.invokeVelocimacro(method, method, args, context, sw)) {
template.merge(context, sw);
.....
Currently, the method parameter contains the name of the velocity template to use. It is not possible to call templates in an other folder or in a folder tree organisation.
The hack uses 2 properties to set the array position of 2 parameters "pathArgIndex" and "storeIndex". The "pathArgIndex" parameter contains the folder where to find the "storeIndex" template.
An other solution is to have a special method name (eg : folder1_folder2_template) to pass the informations.
A third solution is to use a special method name, allowing to pass special params, to be able get templates in a tree folder organisation.
1.5https://gitlab.ow2.org/frascati/frascati/-/issues/105HTTP Binding : Jetty connection not closed when FraSCAti stop2018-02-06T10:32:19ZJeremie GuillemotteHTTP Binding : Jetty connection not closed when FraSCAti stopThe problem occurs when a HTTP binding is used in a composite and this composite is started on a tomcat embedded FraSCAti (packaged in a war).
When the stop command is sent to the tomcat server, the FraSCAti composite are trigered to st...The problem occurs when a HTTP binding is used in a composite and this composite is started on a tomcat embedded FraSCAti (packaged in a war).
When the stop command is sent to the tomcat server, the FraSCAti composite are trigered to stop. There is a problem with the components using a HTTP binding, the jetty resources are not unregistred/destroyed correctly.
In some cases, the java process ends but in others the java process remains alive and the resart of the application is not possible because the error "port already in use is throwed".
After some researchs, we have seen that the JettyServletManager.unregisterServlet(...) method is never called for an HTTP binding. In the HttpBinding class, there are an init and a destroy methods associated with @init and @destroy annotations. These annotations do not seem to work. The destroy method is never called and the init method is called "manually" in the FrascatiBindingHttpProcessor class (See method doInstanciate, line 154).1.5