Comments (12)
jPOS needs those libraries so you can run java -jar jpos.jar
- I don't think this is a jPOS issues.
from jpos.
Its trying to retrieve jars from a local repository , possibly because its not packaged in the distribution you are running. How are you building your distribution ?
from jpos.
Let me explain what happens exactly.
The jpos jar references several libraries needed to run it as explained by @ar. That means it is not only a library jar (used as a dependency in my Spring Boot app), but also an executable jar.
I package my application with Maven (as you might guess from the dependency above). I run my application locally in my IDE (Eclipse) with the Spring IDE plugin. Spring checks the MANIFEST of each dependency, and consequently checks if there are some jar files in a /lib folder next to jpos-2.1.0.jar. Of course there isn't, because those libraries reside in their own folder, e.g. C:\Users\username\.m2\repository\org\jdom\jdom2\2.0.6
for jdom2-2.0.6.jar.
Then Spring alerts about the missing files, but the app works fine though, because it is packaged & run from Maven dependencies. So this warning is just informative.
First, why is the jpos jar an executable jar ?
Second, this standalone jar file should not reference other libs in the Class-Path entry of its MANIFEST file, otherwise it should have been packaged as an uber jar containing those libs. That's the way apps are packaged nowadays.
from jpos.
Traditionally (ant), all the jars are packaged put in the lib folder and speaking for myself here we run the executable jar using a windows service or a shell script. Gradle which is used today probably does the same thing today. I will let the @ar Alejandro(architect) of JPOS answer your queries.
from jpos.
That means it is not only a library jar (used as a dependency in my Spring Boot app), but also an executable jar.
Exactly. jPOS is a library and it embeds Q2 which is a Framework. The manifest comes very handy when running Q2, used by most jPOS applications. But I see your point, we don't necessarily need to place that manifest in the jpos jar, it can go in the jPOS application built by the jPOS template.
Being able to "run" a jPOS application in the way we currently do inside the development build comes very handy, but we don't necessarily have to publish it at release time. I'll take a look at that, specially checking we don't break any OSGi related support.
As a temporary work around, you can remove line 90 in jpos/build.gradle
, call gradle install
and pick it from maven local, just to verify this fixes your problem.
(https://github.com/jpos/jPOS/blob/master/jpos/build.gradle#L90)
Sounds reasonable @narwajea ?
from jpos.
we don't necessarily need to place that manifest in the jpos jar
Exactly.
I'll take a look at that, specially checking we don't break any OSGi related support.
Thank you.
you can remove line 90
And line 94 ?
Sounds reasonable @narwajea ?
Sounds good to me, thank you. Please let me know when you release a new version without the Class-Path entry.
from jpos.
And line 94 ?
Sure, actually line 94 is the only one that matters, but 90 should be taken away too just because it would become obsolete.
Please let me know when you release a new version
You'll see this issue closed.
from jpos.
@narwajea - this issue has been fixed in 2.1.2-SNAPSHOT and a nightly build has been forced.
Can you give it a try and confirm it works for you? (please note you need to add http://jpos.org/maven as a repo)
from jpos.
Using version 2.1.2-SNAPSHOT from the mentioned repository, the Spring warning has disappeared. Thank you for your prompt action.
from jpos.
Thank you for the confirmation. Will close the issue. We expect to release 2.1.2
soon to Maven Central.
from jpos.
Any idea when 2.1.2
will be released?
from jpos.
We are very close to delivery, hopefully by mid-July.
from jpos.
Related Issues (20)
- QMUX Sequencing Issue HOT 3
- SimpleKeyFile.getKeys() seems to load the key file for every key.
- Q2.deployElement doesn't write the destination file atomically, which can make the deploy polling to fail HOT 2
- using BERTLVAsciiHexPackager and AsciiHexInterpreter returns incorrect uninterpretLength HOT 5
- Channel Class that wraps the JMS objects HOT 1
- Help validate ARQC using JCESecurityModule HOT 4
- When two Q2 services are connected, the response content cannot be received. HOT 1
- 2.1.9 - Compatibility with JDK8 HOT 1
- Protect name in Track1 of the ISOUtil.protect HOT 5
- About the rotation of q2 logs HOT 4
- ChannelAdaptor potentially unsafe synchronization HOT 2
- QMUX key pcode attribute HOT 1
- Can't build jPOS
- The risk of XSLT injection in jPOS can lead to Remote Code Execution (RCE).
- What is the output of Gradle build? HOT 1
- Make sure just one Logger can redirect stdout/stderr
- EMV TLV Parser HOT 2
- ISOServer usable channels
- Log folder does not exist, causing silent failure at start up HOT 4
- ISOBinaryFieldPackager doesn't check max length when packing variable length fields HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jpos.