[ 
https://issues.apache.org/jira/browse/FELIX-6603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brian Demers updated FELIX-6603:
--------------------------------
    Description: 
I have a project that uses the bundle plugin's `manifest` goal. (version 5.1.8)

https://github.com/jwtk/jjwt/blob/27b3caba80d653227d271d9ff8e474314f00b9e0/pom.xml#L595-L613

If I run a clean build `mvn clean verify` and then run `mvn verify`, the second 
run generates different content in the manifest.

In my case, a new header is added: `Originally-Created-By`
And both `Export-Package` and `Import-Package` have different values:

```diff
< Export-Package: io.jsonwebtoken;uses:="io.jsonwebtoken.io,io.jsonwebtoke
<  n.lang,io.jsonwebtoken.security,javax.crypto";version="0.11.6",io.jsonw
<  ebtoken.security;uses:="io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebto
<  ken.lang,javax.crypto,javax.security.auth";version="0.11.6",io.jsonwebt
<  oken.io;uses:="io.jsonwebtoken";version="0.11.6",io.jsonwebtoken.lang;v
---
> Export-Package: io.jsonwebtoken;version="0.11.6";uses:="io.jsonwebtoken.
>  io,io.jsonwebtoken.lang,io.jsonwebtoken.security,javax.crypto",io.jsonw
>  ebtoken.security;version="0.11.6";uses:="io.jsonwebtoken,io.jsonwebtoke
>  n.io,io.jsonwebtoken.lang,javax.crypto,javax.security.auth",io.jsonwebt
>  oken.io;version="0.11.6";uses:="io.jsonwebtoken",io.jsonwebtoken.lang;v
20,22c20,23
< Import-Package: io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebtoken.lang,
<  io.jsonwebtoken.security,javax.crypto,javax.crypto.spec,javax.security.
<  auth
---
> Import-Package: io.jsonwebtoken;version="[0.11,1)",io.jsonwebtoken.io;ve
>  rsion="[0.11,1)",io.jsonwebtoken.lang;version="[0.11,1)",io.jsonwebtoke
>  n.security;version="[0.11,1)",javax.crypto,javax.crypto.spec,javax.secu
>  rity.auth
```

NOTE: The clean build's `Import-Package` value does NOT contain any versions. 
and the `Export-Package` looks to be in a different order.


Ideally, rerunning the `manifest` goal should produce exactly the same results 
(assuming no files have changed)



  was:
I have a project that uses the bundle plugin's `manifest` goal. (version 5.1.8)

https://github.com/jwtk/jjwt/blob/27b3caba80d653227d271d9ff8e474314f00b9e0/pom.xml#L595-L613

If I run a clean build `mvn clean verify` and then run `mvn verify`, the second 
run generates different content in the manifest.

In my case, a new header is added: `Originally-Created-By`
And both `Export-Package` and `Import-Package` have different values:

```diff
< Export-Package: io.jsonwebtoken;uses:="io.jsonwebtoken.io,io.jsonwebtoke
<  n.lang,io.jsonwebtoken.security,javax.crypto";version="0.11.6",io.jsonw
<  ebtoken.security;uses:="io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebto
<  ken.lang,javax.crypto,javax.security.auth";version="0.11.6",io.jsonwebt
<  oken.io;uses:="io.jsonwebtoken";version="0.11.6",io.jsonwebtoken.lang;v
---
> Export-Package: io.jsonwebtoken;version="0.11.6";uses:="io.jsonwebtoken.
>  io,io.jsonwebtoken.lang,io.jsonwebtoken.security,javax.crypto",io.jsonw
>  ebtoken.security;version="0.11.6";uses:="io.jsonwebtoken,io.jsonwebtoke
>  n.io,io.jsonwebtoken.lang,javax.crypto,javax.security.auth",io.jsonwebt
>  oken.io;version="0.11.6";uses:="io.jsonwebtoken",io.jsonwebtoken.lang;v
20,22c20,23
< Import-Package: io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebtoken.lang,
<  io.jsonwebtoken.security,javax.crypto,javax.crypto.spec,javax.security.
<  auth
---
> Import-Package: io.jsonwebtoken;version="[0.11,1)",io.jsonwebtoken.io;ve
>  rsion="[0.11,1)",io.jsonwebtoken.lang;version="[0.11,1)",io.jsonwebtoke
>  n.security;version="[0.11,1)",javax.crypto,javax.crypto.spec,javax.secu
>  rity.auth
```

NOTE: The clean build's `Import-Package` value does NOT contain any versions. 
and the `Export-Package` looks to be in a different order.


Ideally, rerunning the `manifest` goal should produce exactly the same results 
(assuming no files have changed)


A quick and dirty fix for this is to use the maven-clean-plugin, to delete the 
previously generated manifest.  This is not ideal and may not work in all 
scenarios.



> Rebuilding Manifest generates different content
> -----------------------------------------------
>
>                 Key: FELIX-6603
>                 URL: https://issues.apache.org/jira/browse/FELIX-6603
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven Bundle Plugin
>            Reporter: Brian Demers
>            Priority: Major
>
> I have a project that uses the bundle plugin's `manifest` goal. (version 
> 5.1.8)
> https://github.com/jwtk/jjwt/blob/27b3caba80d653227d271d9ff8e474314f00b9e0/pom.xml#L595-L613
> If I run a clean build `mvn clean verify` and then run `mvn verify`, the 
> second run generates different content in the manifest.
> In my case, a new header is added: `Originally-Created-By`
> And both `Export-Package` and `Import-Package` have different values:
> ```diff
> < Export-Package: io.jsonwebtoken;uses:="io.jsonwebtoken.io,io.jsonwebtoke
> <  n.lang,io.jsonwebtoken.security,javax.crypto";version="0.11.6",io.jsonw
> <  ebtoken.security;uses:="io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebto
> <  ken.lang,javax.crypto,javax.security.auth";version="0.11.6",io.jsonwebt
> <  oken.io;uses:="io.jsonwebtoken";version="0.11.6",io.jsonwebtoken.lang;v
> ---
> > Export-Package: io.jsonwebtoken;version="0.11.6";uses:="io.jsonwebtoken.
> >  io,io.jsonwebtoken.lang,io.jsonwebtoken.security,javax.crypto",io.jsonw
> >  ebtoken.security;version="0.11.6";uses:="io.jsonwebtoken,io.jsonwebtoke
> >  n.io,io.jsonwebtoken.lang,javax.crypto,javax.security.auth",io.jsonwebt
> >  oken.io;version="0.11.6";uses:="io.jsonwebtoken",io.jsonwebtoken.lang;v
> 20,22c20,23
> < Import-Package: io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebtoken.lang,
> <  io.jsonwebtoken.security,javax.crypto,javax.crypto.spec,javax.security.
> <  auth
> ---
> > Import-Package: io.jsonwebtoken;version="[0.11,1)",io.jsonwebtoken.io;ve
> >  rsion="[0.11,1)",io.jsonwebtoken.lang;version="[0.11,1)",io.jsonwebtoke
> >  n.security;version="[0.11,1)",javax.crypto,javax.crypto.spec,javax.secu
> >  rity.auth
> ```
> NOTE: The clean build's `Import-Package` value does NOT contain any versions. 
> and the `Export-Package` looks to be in a different order.
> Ideally, rerunning the `manifest` goal should produce exactly the same 
> results (assuming no files have changed)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to