Netbeans is cutting off the Class-Path part of a manifest file that I am generating with maven. It turns out like this:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: alan
Build-Jdk: 1.7.0_45
Main-Class: com.alan.client.Main
Class-Path: /home/alan/NetBeansProjects/RemoteInterfaces/target/Remote
Interfaces-1.0.jar
It should be:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: alan
Build-Jdk: 1.7.0_45
Main-Class: com.alan.client.Main
Class-Path: /home/alan/NetBeansProjects/RemoteInterfaces/target/RemoteInterfaces-1.0.jar
I have bumped the margin value in the IDE to a bigger number and the red line has jumped to the right, but it's still not generating it correctly. Any ideas?
Related
I created an jar Data and now the cmd calls me this : no master manifest attribute, in TagesdienstC.jar. But my MANIFEST Data have all Informations which are needed.
Manifest-Version: 1.0
Main-Class: com.einsundeins.tagesdienst.Main
and if I unzip my jar data in the MANIFEST Data aren't this but this:Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven 3.3.9
Built-By: glorioso
Build-Jdk: 1.8.0_112-google-v7
Can anyone pls help me
Greetings
I am having a call to URLBuilder.build which has this call trace:
Servlet.service() for servlet authv0 threw exception:
java.lang.NoSuchMethodError: org.apache.http.client.utils.URLEncodedUtils.format(Ljava/lang/Iterable;Ljava/nio/charset/Charset;)Ljava/lang/String;
at org.apache.http.client.utils.URIBuilder.encodeQuery(URIBuilder.java:176) [httpclient-4.2.5.jar:4.2.5]
at org.apache.http.client.utils.URIBuilder.buildString(URIBuilder.java:140) [httpclient-4.2.5.jar:4.2.5]
at org.apache.http.client.utils.URIBuilder.build(URIBuilder.java:103) [httpclient-4.2.5.jar:4.2.5]
I see this even has been there since 4.2 and still it gives me a NoSuchMethodError. The jar version that is used is 4.2.5 as you see. Can someone point to what I am missing?
Here is my manifest file from 4.2.5 jar
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: oleg
Build-Jdk: 1.5.0_22
Implementation-Build: tags/4.2.5/httpclient#r1469939; 2013-04-19 18:29
:05+0200
Implementation-Title: HttpComponents HttpClient
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 4.2.5
Specification-Title: HttpComponents HttpClient
Specification-Vendor: The Apache Software Foundation
Specification-Version: 4.2.5
X-Compile-Source-JDK: 1.5
X-Compile-Target-JDK: 1.5
url: http://hc.apache.org/httpcomponents-client
I am developing an Eclipse plugin. That is using UI and file resources. Which required org.eclipse.core.resources;bundle-version="3.8.101" and filed if this dependency is not available on target eclipse.
Eclipse version: Juno (for Android development).
I want to install this jar if not available on target Eclipse. So my plugin run without any issue for target Eclipse.
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ABC
Bundle-SymbolicName: ABC;singleton:=true
Bundle-Version: 1.0
Bundle-Activator: magic.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.core.resources;bundle-version="3.8.101"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
libs/java-json.jar,
libs/json-lib-2.4-jdk15.jar
Here is the error I got while installation
Cannot complete the install because one or more required items could not be found.
Software being installed: Feature 1.0.0 (com.confiz.android.codegen.feature.feature.group 1.0.0)
Missing requirement: Feature 1.0.0 (com.confiz.android.codegen.feature.feature.group 1.0.0) requires 'org.eclipse.core.resources 3.8.101' but it could not be found
I have a simple OSGi bundle written and here is the source file. When I install it in a equinox OSGi container it does not get resolved it automatically. Can someone explain what I'm doing wrong here??.
package org.sample.api;
/**
* Created on 3/11/14.
*/
public interface Hello {
void sayHello();
}
This is the pom.xml file of the bundle.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>osgi</artifactId>
<groupId>osgi</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>sample-api</artifactId>
<version>1.0</version>
<packaging>bundle</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.5</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Vendor>Sample Inc</Bundle-Vendor>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Export-Package>
org.sample.api*;version=1.0.0
</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
MANIFEST.MF
Manifest-Version: 1
Bnd-LastModified: 1396602001251
Build-Jdk: 1.6.0_45
Built-By: Zeus
Bundle-ManifestVersion: 2
Bundle-Name: sample-api
Bundle-SymbolicName: sample-api
Bundle-Vendor: Sample Inc
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: org.sample.api;version="1.0.0"
Tool: Bnd-1.43.0
This is the bundle installation console output
Bundle id is 7
RegisteredServices null
ServicesInUse null
LoaderProxy sample-api; bundle-version="1.0.0"
Fragments null
ClassLoader null
Version 1.0.0
LastModified 1396605985751
Headers Bnd-LastModified = 1396602001251
Build-Jdk = 1.6.0_45
Built-By = Zeus
Bundle-ManifestVersion = 2
Bundle-Name = sample-api
Bundle-SymbolicName = sample-api
Bundle-Vendor = Sample Inc
Bundle-Version = 1.0.0
Created-By = Apache Maven Bundle Plugin
Export-Package = org.sample.api;version="1.0.0"
Manifest-Version = 1
Tool = Bnd-1.43.0
BundleContext null
BundleId 7
StartLevel 1
SymbolicName sample-api
BundleData sample-api_1.0.0
KeyHashCode 7
StateChanging null
BundleDescription sample-api_1.0.0
Framework org.eclipse.osgi.framework.internal.core.Framework#65cb687f
ResolutionFailureException org.osgi.framework.BundleException: The bundle "sample-api_1.0.0 [7]" could not be resolved
Revisions [sample-api_1.0.0]
Key 7
ProtectionDomain null
Location file:/home/Zeus/idea-projects/osgi/sample-api/target/sample-api-1.0.jar
State 2
Bundle 7|Installed | 1|sample-api (1.0.0)
Please post the generated MANIFEST.MF from the jar. I cant see anything wrong with the pom.
If the bundle is not resolved, in what state is it then? Installed? One possible reason could be that some of the transitive dependencies of the bundle are not available on the container.
P.S: You may want to use the latest version 2.4.0 for the maven-bundle-plugin.
EDIT1
This is the manifest I got:
Manifest-Version: 1.0
Bnd-LastModified: 1396605817562
Build-Jdk: 1.7.0_45
Built-By: anshuman
Bundle-ManifestVersion: 2
Bundle-Name: sample-api
Bundle-SymbolicName: sample-api
Bundle-Vendor: Sample Inc
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: org.sample.api;version="1.0.0"
Tool: Bnd-2.1.0.20130426-122213
EDIT2
I hope you are refreshing and starting the bundle after you install it.
refresh 7
start 7
where 7 is your bundle id.
Looks like you don't have a Activator with your bundle, at least your given sample doesn't contain one and your output for the generated Manifest doesn't contain a Bundle-Activator part. At this point I'd say your bundle is just in resolved state since it can't be active.
INSTALLED state is not an error condition. It just means that the bundle has been installed, which is true.
If you do see an actual error message, please provide the details.
i just migrated from Equinox to Apache Felix. Now there is the javax.sql.datasource class missing:
java.lang.NoClassDefFoundError: javax/sql/DataSource
My bundle is importing javax.sql in the manifest file and i tried to add the following line to the felix config:
org.osgi.framework.system.packages.extra=javax.sql
Is there any way to teach felix to export the bundle or is there a bundle that does it? It worked fine in Equinox even without the import statement in the manifest.
EDIT:
The manifest file:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Database
Bundle-SymbolicName: ...database
Bundle-Version: 1.0.0
Import-Package: javax.sql,
org.osgi.framework;version="1.3.0",
org.osgi.service.component;version="1.1.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: lib/mysql-connector-java-5.1.20-bin.jar,
.
Export-Package: ...database.model,
...database.service
Service-Component: OSGI-INF/component.xml
Thanks,
Daniel
Felix does already export this package.
More likely is that there may be something wrong with your Import-Package statement. You did state that your bundle imports the package, but please post a copy of your MANIFEST.MF to be sure.