GraphDB Free 8.3: generate war files - graphdb

Is it still possible to generate war files in version 8.3 of graphDB?
I didn't find the generate-war-files file in my distribution.
Thank you.

The support for war files was dropped officially in version 8.0, due to various deployment, logging and exception handling issues. GraphDB uses an embedded Tomcat which handles all the work.

Related

Writing to local file system in Pentaho Server 8 CE

I have used in development a Text File Output step in Pentaho 8 CE.
While using the client local installation, output files are written normally to file system.
When I installed the Pentaho Server 8 CE and configured everything to use MySQL as repository, I noticed that system was not writing files to file system.
I suspect that this is because Jackrabbit has been configured to use MySQL as repository following official documentation (https://help.pentaho.com/Documentation/8.2/Setup/Installation/Archive/MySQL_Repository)
Is it possible to configure Jackrabbit so all files use the filesystem?
If so, where in the documentation is this process documented?
Is there any alternative step which forces using local file system?
Quick answers:
No.
See above.
The files can be written, but most likely they’re inside your pentaho-solutions folder inside the server installation. You must use absolute paths when running from the Pentaho repository.

Update OSGi Bundle in Apache Geronimo

I am an absolute novice with Apache Geronimo, so my forgive my obvious ignorance.
Apache Geronimo ships with older versions of the HTTPCore and HTTPClient libraries. The current version of OpenID requires at least v4.1 of both HTTPCore and HTTPClient. I have found the OSGi Bundle page in the Geronimo Console, and see how to use this to install a new bundle. I also see that existing bundles have an "update" option, although this does not seem to update either of these bundles to the latest version.
Is there an easy magical way to just update these? If I need to download bundles for the appropriate version, where, exactly, would I go to download them? I've located and downloaded JARs for these two libraries, and have included them in my project and been able to package it with Maven, but this doesn't (apparently) deploy the updated versions into Geronimo (i.e., it loads the old versions and I get runtime errors).
If I had bundles for the later version, the UI is pretty obvious as to how to install them - will that replace the existing version, or will I then have both versions installed? Will this present a runtime issue? If so, how do I remove the exiting bundle (I see no way via the UI to accomplish this).
Any assistance is greatly appreciated.
David Mullin

How to Upgrade glassfish?

I want to upgrade Glassfish without internet connection. But I have already downloaded the latest version.
I have done the following steps,
For eg. galssfish-3.0 is the older version and glassfish-3.1 is the newer version.
Step: 1
I just copied the glassfish-3.0/glassfish/domains/domain1 and pasted in glassfish-3.1/glassfish/domains
Step: 2
In glassfish-3.1/bin ./asadmin i just give the command asadmin> start-domain --upgrade
then i checked the version asadmin> version the ouput was
Version = GlassFish Server Open Source Edition 3.1.1 (build 12)
Command version executed successfully.
Is this correct or I need to follow some other ways to achieve this? If wrong Please guide me the right way.
Can anyone help me?
Thanks in advance,
Gnik
Regarding the Oracle GlassFish Server 3.1 Upgrade Guide you did it right.
There are some hints in this guide for the migration of deployed applications:
Application archives (EAR files) and component archives (JAR, WAR, and
RAR files) that are deployed in the source server do not require any
modification to run on Oracle GlassFish Server 3.1. Components that
may have incompatibilities are deployed on GlassFish Server 3.1 with
the compatibility property set to v2 and will run without change on
GlassFish Server 3.1. You may, however, want to consider modifying the
applications to conform to Java EE 6 requirements.
...
Applications and components that are deployed in the source server are
deployed on the target server during the upgrade. Applications that do
not deploy successfully on the target server must be deployed manually
on the target server by the user.
If a domain contains information about a deployed application and the
installed application components do not agree with the configuration
information, the configuration is migrated unchanged, without any
attempt to reconfigure the incorrect configurations.
You should read through the guide carefully and check your deployed applications for any errors / exceptions during server startup or manual redeployment.
Some time ago I made an update as described in the update guide from 3.0 to 3.1.1 and cannot remember any bigger problems.

How should one deal with library clashes in Application Servers?

Third-party libraries are often included by the appliation server you are deploying to and class with the ones included by your application. So far I have dealt with this in the simplest and hackiest way possible: removing the libraries on the app server.
In our case it is ok, noone is relying on the app server to provide them with any libraries. But if I were running my app along with lots of other peoples app, which again might depend on the libraries included by the application server, this would not be a solution.
How is this supposed to be solved (cleanly)? How are you doing it?
An example of a problem might be this:
you build an jax-rs application using cxf, hibernate and jackson, and deploy to glassfish 2.1.1. glassfish supplies the asm 3.1 library, but this causes clashes with hibernate using an incompatible 1.5 version. similarly the application needs jackson 1.8.2 (due to a bug fix), but glassfish 2.1.1 ships with version 0.9. BOOM. Any way of fixing this other than simply removing offending libraries?
consider using :
asadmin deploy --libraries ...

Should we store JRE in CVS/SVN?

I want to bundle JRE 6.0 together with my java application. All my source code reside in CVS. My client will check-out the code and build it themselves. Should I store JRE in CVS?
I normally advocate putting most everything in source control, but this seems a little excessive. Why ?
the JRE is readily available from http://java.sun.com
it doesn't change that often. I'd expect you to specify a minimum version for your code to run against (e.g. 1.5, 1.6 etc.)
I would not put a JDK or JRE into a source code repository:
It is bad practice to put externally versioned things into your version control because it usually leads to over-constraining, obscuring and/or hard-wiring your app's external dependencies. (Maven or Ivy are good solutions for dealing with external dependencies, though not in this case,)
Putting binaries into version control is a bad idea for some version control systems.
But I think your real problem (actually, your user's organization's problem) is the IT folks who refuse to contemplate upgrading the JRE:
They need to be made aware of the
fact that they can install multiple
JRE versions on the one machine, and
configure apps to launch with the JRE
version they require. (It is trivial
on Linux ...)
They need to be made aware of the fact
that their policy is an impediment to
progress.
They need to be made aware of the fact
that their policy is a potential security
issue. If they force users to deploy their
own copies of JDKs / JREs in random places,
it will be difficult to ensure that JRE security
patches get applied. (Besides, 1.4.2 is due
to be end-of-life'd soonish, and security
patches for it will cease.)
EDIT: and there is also the legal question of whether "redistributing" a JRE out of your source code repository is a violation of Sun's click-through JRE/JDK download license. (I don't know ...)
As best practice, you shouldn't keep any binary files in the source control system. For Java developers there is maven that does it's work better in versioning jar files. The reason is that we want to keep our source repository as small as possible so it is faster for those that checks out our code for the first time.
But if you still want to keep binary files in the source control, it would be best to avoid using CVS, because CVS is bad in versioning binary files. You can search with google, why it is bad. If you use SVN, then it still okay because SVN handles binary files much better than CVS.
I see nothing wrong with storing the JRE in CVS.
However, it's not so important whether you do or not as long as your script can pull it as part of the build. For example, if you want to host a downloadable jre.zip on an HTTP server, or point to it in a Maven repo, that's just as good.
Well won't your client all ready have the JRE if you expect him to compile the code before running it? The JDK contains the JRE.
Depends a lot on what you use to handle dependencies. If you use Maven, then create a maven package with the stuff you need, and host it on a local repository.
If you just have CVS (like we do) then it is fine to create big binary packages (since you will need them) which you can then put in CVS. Just be aware that they should be static for best CVS performance.
ALso note that the jsmooth package can create an EXE file of your jar with an JRE embedded in it. This might solve your deployment problem.
For remote compilation, Eclipse can work with a plain JRE. You just need to tell Eclipse where JRE you already have prepared above is located on the disk. There is also a folder inside the Eclipse distribution where the launcher looks automatically.
I'm wondering about the client building the application themselves. It will require some kind of Java compiler, most probably javac wich is part of the JDK. So your client will not only need a JRE, but a JDK as well (unless they will be using Jikes or another alternative compiler).
javac is capable of generating bytecode for previous versions of Java, so using a newer compiler should not pose any problems.
Personally, I would not include large binaries like a JRE as part of my own repository. The JRE can be considered very stable and just listing the minimum version required should be enough. Installing a JRE is also something quite different than installing a single Java application. The two activities should not be mixed.