Liferay unresolve requirement: Import package - liferay-7

I have a module in 7.2 Liferay environment, in the modules folder. I've compiled everything by running the commands:
1 - blade gw jar inside the modules folder
2 - gradlew distBundle
3- gradle deploy
From there I get into the Tomcat directory and get the following error:
org.osgi.framework.BundleException: Could not resolve module: cuatroochenta.rest [1141] _ Unresolved requirement: Import-Package: com.liferay.asset.category.property.model; version = "[2.1.0,3.0.0)" _ [Sanitized]
I have been searching but the information it gives regarding the error is also not very clear and I have not found an explicit solution.
Any ideas ??
Thank you so much

add below lines in bnd.bnd file of your module :
Import-Package: \
!com.liferay.asset.category.*,\
!com.liferay.asset.category.property.*,\
*
Note:- need to add all those packages who show unResolved Requirement.

Related

Eclipse Tycho: Compile error when using the java.xml.bind module?

I think the problem is the same as described in this blog post but I get this for Java 10: I have an Eclipse RCP application that uses Java 10 features but also JAXB classes. In Eclipse, I have to add the java.xml.bind module to the build path configuration of my project (as described here) to let the compile errors go away.
However, when building the product with Tycho 1.2.0 I get the following error, exactly for the class that uses JAXB:
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:1.2.0:compile (default-compile) on project epd-editor: Compilation failure: Compilation failure:
[ERROR] ...app\src\app\editors\XmlPage.java:
[ERROR] package app.editors;
[ERROR] ^
[ERROR] Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.BinaryModuleBinding.create(BinaryModuleBinding.java:64)
[ERROR] java.lang.NullPointerException
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.BinaryModuleBinding.create(BinaryModuleBinding.java:64)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getModuleFromAnswer(LookupEnvironment.java:427)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:367)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:228)
[ERROR] at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:105)
Is there a way to configure the Tycho compiler plugin so that it can see modules like java.xml.bind or is there another reason for this error?
Thanks.
Java EE modules are deprecated for removal and not resolved by default and will be removed in Java 11.
The best way to handle this is to use a third-party dependency, but as you observe JDT trips over its own feet when that is done. I opened an issue and it was fixed some time ago, but it's not easy to find an artifact that contains the change and works on Java 10. The first artifact I know of comes from Eclipse Photon I20180531-0700.
Execute the following in Eclipse's plugins folder (#people from the future: you may have to update the version):
mvn install:install-file \
-Dfile=org.eclipse.jdt.core_3.14.0.v20180528-0519.jar \
-DgroupId=org.eclipse.tycho \
-DartifactId=org.eclipse.jdt.core \
-Dversion=3.14.0.v20180528-0519 \
-Dpackaging=jar
You can then use it as follows as dependencies for Maven's compiler plugin:
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-jdt</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<!-- unreleased version that was pulled from Eclipse Photon I20180531-0700
contains the fix and compiles Java 10 -->
<version>3.14.0.v20180528-0519</version>
</dependency>
The problem is also described on java9.wtf with a demo project on GitHub. (I forgot to push, so it's only online for about five minutes now. 😒)
There are three ways you can include modules from the java.se.ee aggregator module, which is not included for compile or runtime in JDK 10. (As of JDK 11, these modules will be removed from the JDK).
The simplest is to use the command line option, --add-modules java.xml.bind. This will use the version that is still included in the JDK.
Find a JAXB implementation jar. Maven central is a good place to go for this, there is also a reference implementation for JSR 222 (JAXB), which is part of the Java Web Services Developer Pack (http://www.oracle.com/technetwork/java/webservicespack-jsp-140788.html) but this is waaaay old and may not be the best choice. You can add where you've downloaded the jar to the upgrade module path using --upgrade-module-path {path}
An alternative to 2 is to simply put the jar containing JAXB on the classpath.
I'm not familiar with Tycho but you would need to figure out how to use one of these methods with its configuration.

Need bundle with javax.persistence on OSGi

I get this error when I try to install my bundle in Servicemix:
Error executing command: Error starting bundles:
Unable to start bundle 179: Unresolved constraint in bundle de.edigrid.edigrid-servicemix-util [179]: Unable to resolve 179.0: missing requirement [179.0] osgi.wiring.package; (osgi.wiring.package=javax.persistence)
Can anybody tell me if is there a standard jar file, OSGi compliant, that exports javax.persistence package?
Thanks.
Just install the jpa feature. If this feature is not available in your servicemix version then try:
install -s mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
EclipseLinks has a bundle, it's included in their download: http://www.eclipse.org/downloads/download.php?file=/rt/eclipselink/releases/2.5.2/eclipselink-plugins-2.5.2.v20140319-9ad6abd.zip
Alternatively you can also get the same bundle from the Amdatu Dependencies repository: https://bitbucket.org/amdatu/amdatu-repository/src/53bb0dd92bcf005da5a6937c2034d366e9f21365/dependencies/javax.persistence/javax.persistence-2.0.3.jar?at=master#

Tycho cannot resolve Require-Bundle: org.sample.ide.common;bundle-version="1.0.0.qualifier"

I build an Eclipse plug-in project with Tycho.
I got this error message.
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: org.sample.ide.core 1.0.0.qualifier
[ERROR] Missing requirement: org.sample.ide.core 1.0.0.qualifier requires 'bundle org.sample.ide.common 1.0.0' but it could not be found
org.sample.ide.core-1.0.0.qualifier has org.sample.ide.common-1.0.0.qualifier as required bundle.
When I export the plug-in project with the Eclipse PDE export function, the dependent projects are recognized inside the same workspace.
And my manifest.mf has version like 1.0.0.qualifier, and my pom.xml has 1.0.0-SNAPSHOT. Is that problem?
Having artifacts with .qualifier versions is supported, so this is not the cause of your problem.
However I am not sure to what extend Tycho also supports .qualifier replacement in dependencies, e.g. Require-Bundle headers. (At least, this is buggy.) So you should try to build your project with a dependency to version 1.0.0 instead of 1.0.0.qualifier.
Tycho replaces the .qualifier with a timestamp or fixed string in the reactor build within all manifest files. It resolves the files from the repositories defined from the target files attached, and from the local repository. If none of these contain an exactly matching dependency, tycho will not succeed with the build.
Note that the resolution of PDE export is based on the current target set in Eclipse, and that PDE will replace the qualifier for all bundles open in the workspace. Tycho does not know of these, its scope is what is included in the reactor during the build.

Start an osgi bundle failed with Require-Bundle: org.eclipse.core.runtime; bundle-version="0.0.0"

I'm trying to install and load an external bundle to a simple equinox application.
The targeted bundle is coming from a set of plugins for eclipse available here:
http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/2.4/ (rodin-2.4-dev.zip).
When I start equinox:
$ java -jar org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar -console
I can install it
osgi> install file:///path_to/rodin-2.4-dev/org.eventb.core_2.4.0.r14093.jar
Bundle id is 1
But I have an exception when I start it:
osgi> start 1
org.osgi.framework.BundleException: The bundle "org.eventb.core_2.4.0.r14093 [1]"
could not be resolved. Reason: Missing Constraint: Require-Bundle:
org.eclipse.core.runtime; bundle-version="0.0.0"
Does anyone know how to fix this error ?
Maybe it is related to the fact that the bundle does not include a org.eclipse.core.runtime version, as MANIFEST.MF has the following Require-Bundle:
Require-Bundle: org.eclipse.core.runtime,org.rodinp.core;visibility:=r
eexport,org.eventb.core.ast;visibility:=reexport,org.eventb.core.seqp
rover;visibility:=reexport
The bundle has a requirement to the runtime core as you have noticed. The install just installs the bundle, it does not mean it is valid. You can check the state of the bundle through diag command, i.e, osgi> diag 1
It needs to be in state resolved to be runnable. I'd bet it is just in state installed for you. Check Dude, where's my bundle for more info on bundles and their states.

Scala sbt unable to find commons-logging-1.0.4.jar

I am trying to get an open source project running with scala that is built using sbt.
I downloaded sbt and set it up. But when I try to run sbt from the command line, I get the following error.
:: problems summary :: :::: WARNINGS [NOT FOUND ]
commons-logging#commons-logging;1.0.4!commons-logging.jar (1ms)
==== Maven2 Local: tried
file:///Users/jeremy/.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
::::::::::::::::::::::::::::::::::::::::::::::
:: FAILED DOWNLOADS ::
:: ^ see resolution messages for details ^ ::
::::::::::::::::::::::::::::::::::::::::::::::
:: commons-logging#commons-logging;1.0.4!commons-logging.jar
::::::::::::::::::::::::::::::::::::::::::::::
:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS download
failed: commons-logging#commons-logging;1.0.4!commons-logging.jar
Error during sbt execution: Error retrieving required libraries (see
/Users/jeremy/sourceCode/public/scalaConsole/project/boot/update.log
for complete log) Error: Could not retrieve sbt 0.10.1
Any ideas on how I could resolve this.
I have scala 2.9.1 and sbt version 0.10.1
Thanks
It worked for me after I removed both ~/.m2/repository/commons-logging and ~/.ivy2/cache/commons-logging. If sbt founds none of this two paths it will actually try and download the commons logging package.
Sometimes maven doesn't download the files correctly and you'll only find a .pom file in the repository and no commons-logging-1.0.4.jar file. First I removed ~/.m2/repository/commons-logging. Then I downloaded the jar manually from http://search.maven.org/remotecontent?filepath=commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar and finally installed the jar using the mvn install command:
mvn install:install-file -DgroupId=commons-logging -DartifactId=commons-logging -Dversion=1.0.4 -Dpackaging=jar -Dfile=commons-logging-1.0.4.jar
Are you behind a proxy server? If so you may need to modify your sbt bat or sh script to pass along the proxy information to the JVM like so:
java -XX:MaxPermSize=96m -Xmx512m -Dhttp.proxyHost=my.proxy.server.com -Dhttp.proxyPort=1234 -jar sbt-launch-0.10.1.jar
I don't know what the root cause of the issue is. But I use a script that automatically installs and launches sbt; so I modified the script to download commons-logging before running sbt.
The sbt launcher is here: https://gist.github.com/1274530
To run sbt, save the script somewhere in your $PATH, make sure that is executable, and run it by typing sbt.
Add http://repo1.maven.org/maven to the maven.repo.remote property in your project.properties file. This will download the file from the maven2 remote repository.
Old entry:
maven.repo.remote=http://www.ibiblio.org/maven
New entry:
maven.repo.remote=http://www.ibiblio.org/maven,http://repo1.maven.org/maven