Giter VIP home page Giter VIP logo

packagedrone's Introduction

Eclipse Package Drone™

Package Drone is a software artifact repository with an initial focus on OSGi. The system can be enhanced by plugins to also support other types of artifacts and repository interfaces.

Eclipse Package Drone™ is a projected hosted by the Eclipse Foundation. It is open source and licensed under the EPL.

Building

In order to re-build Package Drone you will need Maven 3.3+ and Java 8.

Build the P2 target environment first:

mvn install -f runtime/pom.xml

The build the main project:

mvn install

Build the secondary artifacts:

mvn install -f secondary/pom.xml -Dgpg.skip

Building the target environment is only required once, or after the target environment has been updated. The secondary artifacts rebuilds parts of Package Drone in way it can be distributed on Maven Central.

More Information

Also see:

packagedrone's People

Contributors

cptmauli avatar ctron avatar dwalluck avatar eclipsewebmaster avatar jeandersonbc avatar kdoteu avatar monichev avatar mschreiber avatar peterjeschke avatar yarix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

packagedrone's Issues

Error while uploading category.xml

Originally opened issue: ctron/package-drone#142 by @SvenEwald

Uploading a category.xml with the "P2 Category Generator (XML)" fails with an exception:

Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
    at org.eclipse.packagedrone.repo.XmlHelper.parse(XmlHelper.java:204)
    at org.eclipse.packagedrone.repo.generator.p2.xml.CategoryXmlGenerator.generate(CategoryXmlGenerator.java:50)
    at org.eclipse.packagedrone.repo.generator.GeneratorProcessor.lambda$0(GeneratorProcessor.java:77)
    ... 119 more

Use OSGi R6 Http Whiteboard Pattern instead of Pax Web's custom model

Package Drone uses Pax Web to implement the web UI. By that it was necessary to make use of some Pax Web specific interfaces, which are not part of the OSGi compendium spec.

Equinox did provide a similar extension, which was also custom to Equinox, but had a few issues. So the change the Pax Web was made.

However, in the future, I would like to get rid of all custom interfaces and go for an OSGi R6 compendium compliant Http service/whiteboard pattern approach.

This issue should follow up up: #36

Product Export does not Unpack Launcher Artifacts

Hello everybody,

I am about to use the current version 0.12.0 of Package Drone in our OSGi-based Enterprise Application. In that application, we are using a product definition to describe the final shippment of the application. With that product definition and Maven/Tycho we then export the complete application, including dependencies (e.g. Eclipse Equinox, ...) into a ZIP file. We also create native launcher artifacts within that export so that after extracting the ZIP file the application can directly be launched via an *.exe file on windows and a bin file on linux systems.

However, when consuming the Eclipse Platform SDK version 4.5.2 (Eclipse Mars) from a Package Drone server version 0.12.0, the product export does not unpack the platform-specific launcher fragments (like "org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417" for windows 64 bit) anymore. It does not make a difference whether to run the product export from the IDE via the product definition wizzard or via Maven/Tycho. The mentioned launcher fragment is exported as JAR which impeeds the launching of the product since it cannot load the contained dll file. That launcher fragment always needs to be unpacked into a folder named the same way as also specified by the missing "unpack='false'" directive in the "org.eclipse.equinox.executable" feature from where the launcher artifact is taken.

When doing exactly the same thing with exporting the products via the IDE for example and consuming all dependencies from an HTTPd server hosting the download of [1], the product export unpacks the mentioned launcher fragment and everything works with launching the application.

Do you guys have any idea of what can be the reason for this behavior?

I created a simple demo project and attached it to this post. It should be self-explanatory, but of course, you will have to provide both, a Package Drone 0.12.0 installation and a local p2 repository hosted on an HTTP server, both hosting the download of [1].

I would really appreciate any hint even if it only leads to further questions and ideas of how to proceed in solving this issue.

Best regards
Timo Rohrberg
pdrone_demo_project.zip

[1] http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.5.2-201602121500/org.eclipse.platform.source-4.5.2.zip

Add help page for Debian/APT aspect

Most repository adapters add a help page to the channel menu which explains how to access this channel using their repository system.

However the APT repository aspect currently has no such help page.

Make paging size configurable

The paging size (for list views) should be configurable somehow.

There should be a system wide default, a user default and optionally a selector at each list which defines the per-user-per-list value.

Design internal filter API

Package Drone needs an internal filter API. Internal at least for now. The core use cases for this filter API is to filter for artifacts based on a single channel or a set of artifacts.

There are many use cases. First of old the long standing request for filling features based on a sub-set of the channel (see ctron/package-drone#66), a global search function (see ctron/package-drone#114) could also benefit from such an API and the cleanup aspect could also benefit from having a filter.

Now the requirements to such a filter API are:

  • Provide a type safe model of the filter
  • Have the possibility to serialized and deserialize the filter to a string (query string)
  • Be easy to write in Java source as well as query string

So I would like to see something in the source code that looks like this:

MetaKey MY_KEY = new MetaKey ( "ns", "key" );
ArtifactLocator al = …;

al.search ( Filters.equals ( MY_KEY, "foo-bar" ) );
al.search ( Filters.or ( Filters.equals ( MY_KEY, "foo-bar" ), Filters.equals ( MY_KEY, "bar-foo") );

// using import static

al.search ( equals ( MY_KEY, "foo-bar" ) );
al.search ( or ( equals ( MY_KEY, "foo-bar" ), equals ( MY_KEY, "bar-foo") );

// with a query string

al.search ( Filters.parse ( "foo:bar = foo-bar or foo:bar = bar-foo" ) );
al.search ( Filters.parse ( "foo:bar = 'foo-bar' or foo:bar = 'bar-foo'" ) );

With a search method like:

List<ArtifactInformation> result = al.search ( predicate);
List<ArtifactInformation> result = al.search ( predicate, options );

Of course it would be possible to use Java 8 stream on the interface, and I guess it might be a good idea to use them for implementing the ArtifactLocator for some channel types. But considering the possibility that there might be a database or some sort of index being involved some time in the future, I would like to use a filter model which is a real model which can then be transformed in e.g. a stream setup, but also to some sort of JPA query.

Add a modal "are you sure" dialog do the PGP managed key delete action

In the "PGP Signing" (managed version) view, there is a delete button which will delete the PGP key from the system. Each destructive operation should have a red action button and a modal dialog asking for confirmation.

The action does have a red trash button, but there is no modal dialog up until now. This has to be fixed.

Switch from Pax Web to some other OSGi HttpService implementation

Currently Package Drone uses the Pax Web OSGi HttpService. However Pax Web has a few serious issues with re-registering Servlets, has a few bugs internally, does not implement the OSGi R6 HttpService patterns.

In addition to that it is pretty hard to get in contact with the project updates and bug fixes seem rare.

The most nasty bug Package Drone currently struggles with is the inability to re-register a servlet under the same name. This will require a restart of Package Drone whenever an HTTP endpoint trigger is being re-configured.

See also:

Error Performing Launch runtime/runtime build.ant.launch

java.lang.Exception: No launcher found for runtime/runtime build.ant.launch
at org.eclipse.oomph.setup.launching.impl.LaunchTaskImpl.perform(LaunchTaskImpl.java:260)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3036)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.access$1(SetupTaskPerformer.java:2980)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil$1.run(SetupTaskPerformer.java:4170)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2241)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.performNeededSetupTasks(SetupTaskPerformer.java:4164)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.access$0(SetupTaskPerformer.java:4162)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:2971)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:2946)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:2857)
at org.eclipse.oomph.setup.ui.wizards.ProgressPage$9.run(ProgressPage.java:555)
at org.eclipse.oomph.setup.ui.wizards.ProgressPage$11$1.run(ProgressPage.java:674)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

[releng] Add support to Continuous Integration for Pull Request validation

Besides the existing hourly building (https://hudson.eclipse.org/package-drone/job/package-drone/), it would be beneficial to have a pull request validation.

The main contributions to this would be:

  • Not necessary to fetch changes and run tests for a proposed patch
  • Sometimes, contributors may forget to test their changes. If the programmer had a quick feedback after creating a merge request, he/she would save time by being able to quickly figure what was wrong instead of waiting to someone or the hourly CI.

I had a previous experience with Travis CI and I could help with this one.

Provide Package Drone command line tools

Provided that there is a REST API, create some tooling around it. It shall make it very easy to list, download and upload artifacts, as well retrieving metadata.

Two immediate use cases which come to my mind that it should support using Package Drone in a continuous build environment and some sync tooling, à la reprepro to mirror apt/yum repositories in a very easy and flexible way.

Open up API for better integration

I am currently trying to integrate packagedrone in my continuous integration setup. It would be great to be able to access the API for some basic info.

E.g.
If I could access an overview in JSON via an endpoint of my current channels, I could show a selection box on my webpage to select to which channel the current setup should publish.

Wrong download URL for R5 OSGi bundles

I configured our jenkins build server to export to pdrone via de deployer plugin.
However it seems to upload the whole path structure. If I for instance set it to upload from pdrone/folder/*, the uploaded artifacts will be called: pdrone/folder/bundle1.jar, pdrone/folder/bundle2.jar etc..

I don't know if this is the cause of my issue, but when I use the pdrone r5 link as a source in an eclipse bndtools project, it can read the index.xml just fine, but the download links it uses from that file don't seem to work.

I suspect this is because of that prefix path, since a manual uploaded jar does work..

P2 Feature Generator merges Features

I've created a P2 Feature (with the P2 Feature Generator) after adding some more, PackageDrone began to merge the Features randomly as you can see on the pictures.
Origin Feature:
packagedrone_feature_originfeature

Generated Feature:
packagedrone_feature_generatedfeature

As you can see packagedrone merged the netty-Feature into my shell-Feature. Am I doing something wrong or is it a bug?

I noticed every generated Feature looks the same. Also the first generated Feature netty looks like the others. It seems to be only one generated Feature is deployed for every one.

Version: Package Drone 0.12.0.20151207-1732 (.deb-Package)

Duplicated artifacts in the same channel

Hi,

I was playing with Package Drone when by accident I selected the same Jar file twice.
I noticed that the system didn't handle my bad submission.

I continued to test this functionality and I also noticed that even if I not select any file and press upload, the system doesn't show any warning message. See the attached images for more details:

  1. Empty form
    emptydata
  2. Backend handler
    emptydebugger
  3. Operation result
    result

Is this the expected behavior?

Feature Request: Group Channels

Hello everybody,

Sonatype Nexus provides the capability to group different repositories into a so-called group repository. So for maintenance, the content is still nicely separated into different repositories, but for consumption via Maven, only one URL to the group repository needs to be specified. This is especially useful when using authorization for reading from repositories since only one "" entry is then needed in the Maven settings.xml instead of one for each repository.

Something like that would be nice for at least p2 repositories in Package Drone. One could then host different frameworks like Eclipse Platform SDK, Eclipse Birt SDK, Eclipse DTP SDK, Google Guava, etc. in individual channels for easier maintenance, but still consume everything or any kind of subset via additionally configured group channels while specifying credentials in the settings.xml only once.

In p2 there is already a concept for that, called "composite repositories". Maybe this can be integrated somehow into Package Drone?

Reverse Proxy sub directory

It would be helpful if package drone supported having a reverse proxy and existing on a suburl.

Currently all of the static assets (js/css) are hard non-relative paths.

Export Channel Exception

When I want to export any Channel I get the following Exception.

Causing exception:

java.lang.ClassNotFoundException: org.eclipse.packagedrone.utils.io.IOConsumer cannot be found by org.eclipse.packagedrone.repo.channel.impl_1.0.0.20151126-0948

Full StackTrace: packagedrone_exportChannelException.txt

PackageDroneVersion: Package Drone 0.12.0.20151207-1732

Hope this feature isn't reported in the other repository, but could not find any hint for it.

remove firewalld dependency

Why does the RHEL7 rpm have a dependency on firewalld? It seems like a package manager should be fairly independent from a specific firewall configuration implementation.

Auth fail while setting up package-drone using Oomph

I am trying to set up package-drone using the instructions given at https://wiki.eclipse.org/PackageDrone/Oomph

However I am facing the following issue.

Performing Git Clone [email protected]:ctron/package-drone.git  (master)
Cloning Git repo [email protected]:ctron/package-drone.git to /home/shiv/package-drone-master/git/package-drone
Checking...
java.lang.Exception: org.eclipse.jgit.api.errors.TransportException: [email protected]:ctron/package-drone.git: Auth fail
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.perform(GitCloneTaskImpl.java:821)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3028)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.access$1(SetupTaskPerformer.java:2972)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil$1.run(SetupTaskPerformer.java:4152)
  at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2241)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.performNeededSetupTasks(SetupTaskPerformer.java:4146)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.access$0(SetupTaskPerformer.java:4144)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:2963)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:2938)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:2829)
  at org.eclipse.oomph.setup.ui.wizards.ProgressPage$9.run(ProgressPage.java:552)
  at org.eclipse.oomph.setup.ui.wizards.ProgressPage$11$1.run(ProgressPage.java:671)
  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.eclipse.jgit.api.errors.TransportException: [email protected]:ctron/package-drone.git: Auth fail
  at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:139)
  at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:200)
  at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:134)
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.cloneRepository(GitCloneTaskImpl.java:877)
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.perform(GitCloneTaskImpl.java:746)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3028)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.access$1(SetupTaskPerformer.java:2972)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil$1.run(SetupTaskPerformer.java:4152)
  at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2241)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.performNeededSetupTasks(SetupTaskPerformer.java:4146)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.access$0(SetupTaskPerformer.java:4144)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:2963)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:2938)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:2829)
  at org.eclipse.oomph.setup.ui.wizards.ProgressPage$9.run(ProgressPage.java:552)
  at org.eclipse.oomph.setup.ui.wizards.ProgressPage$11$1.run(ProgressPage.java:671)
  ... 1 more
Caused by: org.eclipse.jgit.errors.TransportException: [email protected]:ctron/package-drone.git: Auth fail
  at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:159)
  at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:136)
  at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:262)
  at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:161)
  at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
  at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
  at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1138)
  at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:130)
  at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:200)
  at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:134)
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.cloneRepository(GitCloneTaskImpl.java:877)
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.perform(GitCloneTaskImpl.java:746)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3028)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.access$1(SetupTaskPerformer.java:2972)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil$1.run(SetupTaskPerformer.java:4152)
  at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2241)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.performNeededSetupTasks(SetupTaskPerformer.java:4146)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.access$0(SetupTaskPerformer.java:4144)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:2963)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:2938)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:2829)
  at org.eclipse.oomph.setup.ui.wizards.ProgressPage$9.run(ProgressPage.java:552)
  ... 2 more
Caused by: com.jcraft.jsch.JSchException: Auth fail
  at com.jcraft.jsch.Session.connect(Session.java:512)
  at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116)
  at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:136)
  at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:262)
  at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:161)
  at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
  at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
  at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1138)
  at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:130)
  at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:200)
  at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:134)
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.cloneRepository(GitCloneTaskImpl.java:877)
  at org.eclipse.oomph.setup.git.impl.GitCloneTaskImpl.perform(GitCloneTaskImpl.java:746)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3028)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.access$1(SetupTaskPerformer.java:2972)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil$1.run(SetupTaskPerformer.java:4152)
  at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2241)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.performNeededSetupTasks(SetupTaskPerformer.java:4146)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer$WorkspaceUtil.access$0(SetupTaskPerformer.java:4144)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:2963)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:2938)
  at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:2829)
  ... 3 more

Took 13 seconds.
There are failed tasks.

Jetty Run Configuration Error

I am stuck here and able to reproduce this error even on a fresh Install.
I installed and successfully setup my development Environment on a Linux Machine but not able to do it on my Mac.
Is there anything done wrong?
I tried invalidating all caches, still persistent.
screen shot 2016-02-17 at 11 46 46

Make the APT pool browsable

The APT pool is the list of all artifacts available in an APT repository.

Clicking on the "pool" link currently provides no index and an informational message that browsing is not supported. The artifacts can be downloaded but there is no visual index provided.

API Documentation

I found the old ctron Upload-API wiki page, but was wondering if there was a bigger API?

I'm looking for a HEAD request that would let me know if an artifact with a certain name already was imported. Or when trying to upload an artifact with the same name if the Upload API would throw an 4xx status code (422 Unprocessable Entity, 409 Conflict, or 403 forbidden).

Also would like a channels list API, and a channel listing API.

P.S. i'm potentially able to help with this depending on some other time commitments.

Implement a trigger system

As of now Package Drone's channels can be enhanced by using "aspects". These alter the state of a channel but work more like a passive element during the whole process.

Sometimes it is necessary to execute actions triggered be certain conditions. These actions are executed at a specific time and do not necessarily alter the state of a channel.

A trigger is more like "if this, then that". While an aspect Always transforms the channel in the same way, there is no operation involved.

There are two classic examples in Package Drone which failed this idea. The "Tycho Cleaner" and the "Cleanup" aspect. Those were implemented as an aspect (due to the missing trigger system back then) but did not produce the same channel state when removing and re-adding those aspects.

Also can aspects only be added once to a channel, leading to the trouble of only having a single cleanup configuration (see also issue ctron/package-drone#94).

There should be a trigger system which allows:

  • To be fired by various conditions (internal and external)
  • To hook up actions for each trigger
  • To support different trigger context (pre add, post add)
  • To configuration additional trigger instances (like timer, URL action)
  • To have factories for Triggers and Actions

Fix up "tag list" input control

There is an input control which allows entering "tags". It is used as input control for entering "meta keys".

I does have a visual style which is OK in general. But the API to this control is a rather quick JavaScript hack.

It would nice to have a more decent API for this tag list input control which helps in initially rendering, updating, validating and re-ordering the tag list. The API should be inspired by Bootstrap's JavaScript components API.

Rights management for aspect output/links/options

We are heavily using the OSGI aspects of Package Drone. We automated the whole deployment so no developer need rights du add or remove Elements from a channel, so nobody need an account for login.
But with not login you are able to see the channel but not the links of the p2-repositories. If you know the url-formatting you can guess the url for every channel you can see. But this is not userfriendly.

So please add an userright management (including non-loggedin users) or an option to show these options of the p2-repository aspect.

Edit: Down know what I saw or what I didn't saw ... The Buttons for getting the urls are there ... But having a more detailed user management system would be nice.

Invalid P2 artifact mappings generated in ZIP file

The p2 metadata plugin generates invalid metadata (at least if you download the repository as a zip file). The issue comes from the file artifacts.xml where the path of the bundles and features (and binary resources) are invalid.

The path is ${repoUrl}/plugins/${id}/${version}/${id}_${version}.jar
It should be ${repoUrl}/plugins/${id}_${version}.jar

See http://i.imgur.com/pN4Mgt2.png

Keep up the great work!

Create a bundle information overview

Currently there is already a list registered bundles. Including their OSGi state.

However there should be some "legal" style, "about dialog"-ish overview screen, showing all bundles and integrating their license and legal information.

Make channel default view configurable

Currently clicking on any "channel" link opens the tree view of the channel. In the past this was the list view.

There should be way to configure which view should be opened by default for channels. It could be the:

  • Tree view
  • List view
  • Description (if provided)

And this should be configurable globally and for each user.

not-working resolution of manifest-values from plugin.properties (version 0.11.4)

If I have an OSGi-bundle, where some variables are used in the Manifest (eg. %vendor) and the value for the variables is defined in a file /plugin.properties (at root of the jar-file), all is ok - if (and only if) the file is named plugin.properties and the entry Bundle-Localization: plugin is contained in the manifest.
I think, in regular p2-repositories the manifest-variables (not other variables in "plugin.xml" or so) are resolved also without the entry inside the manifest.
One not working example is the bundle com.google.guava at version 10.0.1.v201203051515.
If I add manually a file "plugin.properties" to the root of the jar and also the entry into the manifest, the resolution works.

Invalid admin credentials on fresh install

Hello everyone,

My Environment:

  • Windows 10
  • Eclipse IDE for Eclipse Committers
    • Version: Mars.1 Release (4.5.1)
    • Build id: 20150924-1200

I couldn't sign in on the system using the admin token when I first started Package Drone.

I checked the console output and .drone-admin-token file but I still get a "Login error! Invalid username or password".

In an attempt to figure what was going on, I checked Google Chrome Developer Tools to debug the POST request. However, the backend is returning status code 200 (Success):

couldnt-login

Bug maybe? I'm going to look for the authentication entry-point on the backend to investigate this.

Service starts before network devices are loaded

I noticed some problems autostarting packagedrone on my server.
Package Drone try to start before I got my network devices to run. That causes my system to hang during system start. (After changing the init.d-script I got my system back to work.)
So i tried a bit around.

  • Removing the /etc/rc2.d/S17packag... did nothing because server starts in runlevel 2 ^^ But my Server starts (without Package Drone)
  • Moving /etc/rc2.d/S17packagedrone to S18 did nothing too.

All things back to normal.

Workaround: Moving /etc/rc2.d/S17package ... to /etc/rc2.d/K17packagedrone so its going to be ignored during startup

Debian (SysV): 3.2.68
Package Drone Version: Package Drone 0.12.0.20151216-1114

Feature LDAP support

A big feature to agree this application in our organisation is a connetor to LDAP or Active Directory. This feature permit avoid take a census again of all employeers, external resources, groups and permissions to access the channels.

Do you have in the roadmap an LDAP integration in the near future?
Are there a pluggable system with spi interfaces to develop authentication modules?

Children links in relation tab are wrong

When I select an artifact to view details, in the tag Relations it show me children links.
These link has a wrong url:

http://{host}:{port}/artifact/{artifactId}/view

this URL is missing of the channel information. The correct URL is

http://{host}:{port}/channel/{channelId}/artifact/{artifactId}/view

Also refer to eclipse bug 492710

UI permit empty user role

Edit the user profile I can add an empty role.
role-bug
Plus button should be disabled until some text is written or a validation error should appear.

Wrong warning message in Channel > Help > API Upload section (v0.11.5)

On top of the page the warning message:

All further information in this page requires the channel to have at least one deploy key assigned. However there are currently no deploy groups/keys assigned to this channel, so it will not be possible to authenticate. Assign deploy groups now.

is present, although a deploy group is already assigned to the channel.

Allow re-using zipped P2 metadata

As suggested in #49, it should be possible to extract the, already generated, P2 metadata from a zipped repository and use it for creating a P2 repository from a channel.

Of course we cannot create an OSGi/OBR repository from that or have an additional P2 metadata provider active at the same time.

P2 Repository merges plugins with different versions in content.xml

Don't know if this is related to #4 but from my perspective it's a different problem.

We have a Feature with different Guava versions. In Packagedrone and in my build everything looks perfect.
feature_perspective

But in Eclipse I only get the latest version of guava.
eclipse_view

As far I could see its wrong decoded in the content.xml of the P2 repository.
content xml

As you can see in the feature 'others.feature' only one Guava version is listed. Some lines above you can see the other versions but they are not inlcuded in the feature.

Don't know how the repo is generated and if this 'bug' really realates to packagedrone.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.