gpt4 book ai didi

java - 上传后从 nexus 插件访问 Sonatype nexus 工件

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:30 24 4
gpt4 key购买 nike

我想访问上传到 sonaytype nexus 2.14.0-01 的工件(包含交付的 zip 文件),将其解压缩到 tmp 目录中并检查其内容。

我能够挂接到创建操作的处理请求,但是,当时工件尚未上传到存储库。

public void onHandle(Repository repository, ResourceStoreRequest resourceStoreRequest, Action action) throws ItemNotFoundException, IllegalOperationException
{
log.info("got onHandle Request for " + repository.toString() + " " + action.toString() + " " + resourceStoreRequest.toString());
log.info("that is the file to process: " + resourceStoreRequest.getRequestPath());
}

日志条目:

2016-10-11 18:01:23,760+0200 INFO  [qtp1685232414-73] admin DeliveryRequestProcessor - got onHandle Request for M2Repository(id=deliveries) create ResourceStoreRequest{requestPath='/fakepath/configurationmanagement/0.1/configurationmanagement-0.1.zip', requestContext=RequestContext{this=org.sonatype.nexus.proxy.RequestContext@3476eab3, parent=null}, pathStack=[], processedRepositories=[], appliedMappings={}}(GAVCE=fakepath:configurationmanagement:0.1:c=null:e=zip, for "deliveries" [id=deliveries]) 

但是呼吁

    repository.getLocalStorage().retrieveItem(repository,resourceStoreRequest)

(自然地)失败了。

对于文件上传并可以处理后使用什么钩子(Hook)有什么建议吗?

最诚挚的问候,爱德华德

最佳答案

我使用了一个不太好的解决方法来实现所需的功能。

在原始类中,我向 EventBus 注册了一个监听器。

@Named(DeliveryRequestProcessor.ID)
public class DeliveryRequestProcessor extends ComponentSupport
implements RequestStrategy {

@Inject
public DeliveryRequestProcessor(final EventBus eventBus)
{
this.eventBus = Preconditions.checkNotNull(eventBus);
eventBus.register(new EventBusListener());
}
}

我创建了另一个类,订阅 nexus 发送的所有事件。

@Named
@EagerSingleton
public class EventBusListener
{
public void onEvent (RepositoryItemEventStoreCreate e)
{
... the functionality to access the item
e.getItem() // -> that is the Storage Item I was looking for
}
}

该解决方案有一些缺点,例如该事件会触发多次,您需要确保只执行一次处理,但对于第一个解决方案,它是可以接受的(对我来说)。

最诚挚的问候,爱德华德

关于java - 上传后从 nexus 插件访问 Sonatype nexus 工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39982014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com