├── .github ├── dependabot.yml └── workflows │ └── maven.yml ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bom └── pom.xml ├── container-api ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ ├── ContainerStatus.java │ │ ├── Furnace.java │ │ ├── addons │ │ ├── Addon.java │ │ ├── AddonCompatibilityStrategy.java │ │ ├── AddonDependency.java │ │ ├── AddonFilter.java │ │ ├── AddonId.java │ │ ├── AddonRegistry.java │ │ ├── AddonStatus.java │ │ └── AddonView.java │ │ ├── event │ │ ├── EventException.java │ │ ├── EventManager.java │ │ ├── PostStartup.java │ │ └── PreShutdown.java │ │ ├── exception │ │ └── ContainerException.java │ │ ├── lifecycle │ │ ├── AddonLifecycleProvider.java │ │ └── ControlType.java │ │ ├── lock │ │ ├── LockManager.java │ │ └── LockMode.java │ │ ├── repositories │ │ ├── AddonDependencyEntry.java │ │ ├── AddonRepository.java │ │ ├── AddonRepositoryMode.java │ │ └── MutableAddonRepository.java │ │ ├── services │ │ └── Imported.java │ │ ├── spi │ │ ├── ContainerLifecycleListener.java │ │ ├── ExportedInstance.java │ │ ├── FurnaceProvider.java │ │ ├── ListenerRegistration.java │ │ └── ServiceRegistry.java │ │ ├── util │ │ ├── AddonCompatibilityStrategies.java │ │ ├── AddonFilters.java │ │ ├── Addons.java │ │ ├── Annotations.java │ │ ├── Assert.java │ │ ├── Callables.java │ │ ├── ClassLoaders.java │ │ ├── Iterators.java │ │ ├── Lists.java │ │ ├── OperatingSystemUtils.java │ │ ├── Predicate.java │ │ ├── SecurityActions.java │ │ ├── Sets.java │ │ ├── Specialized.java │ │ ├── Streams.java │ │ ├── Strings.java │ │ ├── ValuedVisitor.java │ │ ├── Visitor.java │ │ ├── Weighted.java │ │ └── WeightedComparator.java │ │ └── versions │ │ ├── ComparableVersion.java │ │ ├── DefaultVersionRange.java │ │ ├── EmptyVersion.java │ │ ├── EmptyVersionRange.java │ │ ├── MultipleVersionRange.java │ │ ├── SingleVersion.java │ │ ├── SingleVersionRange.java │ │ ├── Version.java │ │ ├── VersionException.java │ │ ├── VersionRange.java │ │ └── Versions.java │ └── test │ └── java │ └── org │ └── jboss │ └── forge │ └── furnace │ ├── AddonIdTest.java │ ├── util │ ├── OperatingSystemUtilsTest.java │ └── StringsTest.java │ └── versions │ ├── SingleVersionTest.java │ └── VersionsTest.java ├── container-tests ├── pom.xml └── src │ ├── main │ ├── java │ │ └── test │ │ │ └── org │ │ │ └── jboss │ │ │ └── forge │ │ │ └── furnace │ │ │ └── mocks │ │ │ ├── MockImpl1.java │ │ │ ├── MockImpl2.java │ │ │ ├── MockInterface.java │ │ │ ├── SubMockImpl1.java │ │ │ └── services │ │ │ ├── MockService.java │ │ │ ├── MockServiceConsumer.java │ │ │ └── MockServicePayload.java │ └── resources │ │ └── META-INF │ │ └── beans.xml │ └── test │ ├── java │ └── test │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ ├── api │ │ ├── AddonArchiveDefaultSmokeTest.java │ │ ├── AddonArchiveSmokeTest.java │ │ ├── ExportedInstanceApiTest.java │ │ ├── LockManagerDeadlockTest.java │ │ └── TestModeTest.java │ │ ├── classpath │ │ ├── AppleScriptTest.java │ │ ├── CORBALookupTest.java │ │ ├── ForgeGetVersionIsCallableTest.java │ │ ├── ForgeSetArgsTest.java │ │ ├── JAXBLookupTest.java │ │ ├── JavaxSoundLookupTest.java │ │ ├── NashornTest.java │ │ ├── SunJDKLookupTest.java │ │ ├── XATransactionLookupTest.java │ │ └── XPathLookupTest.java │ │ ├── harness │ │ ├── AddonDependenciesDeploymentsTest.java │ │ └── AssumptionViolatedTest.java │ │ ├── lifecycle │ │ ├── ContainerLifecycleListenerTest.java │ │ ├── DuplicateAddonLifecycleProviderTest.java │ │ ├── MockAddonLifecycleProvider.java │ │ ├── MockAddonLifecycleProvider2.java │ │ ├── PostStartupEventTest.java │ │ ├── PreShutdownEventTest.java │ │ ├── RecordingEventManager.java │ │ └── TestLifecycleListener.java │ │ ├── repositories │ │ ├── AddonRepositoryLoadingTest.java │ │ ├── MultipleRepositoryLoadingTest.java │ │ ├── StrictModeDisabledTest.java │ │ └── StrictModeEnabledByDefaultTest.java │ │ ├── services │ │ ├── ImportedLookupTest.java │ │ ├── ImportedTest.java │ │ └── ServiceLookupTest.java │ │ ├── spi │ │ ├── AddonDeploymentEnhancerTest.java │ │ └── MockAddonDeploymentScenarioEnhancer.java │ │ ├── util │ │ ├── FurnaceDisableStrictModeDeploymentListener.java │ │ ├── FurnaceVersion_2_14_0_DeploymentListener.java │ │ └── TestRepositoryDeploymentListener.java │ │ └── views │ │ ├── MultipleRepositoryTest.java │ │ └── MultipleRepositoryViewTest.java │ └── resources │ ├── META-INF │ └── services │ │ └── org.jboss.forge.arquillian.spi.AddonDeploymentScenarioEnhancer │ ├── profiles │ └── settings.xml │ └── repository │ ├── org │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── furnace-api │ │ ├── 9999.9.9.Final │ │ ├── furnace-api-9999.9.9.Final-sources.jar │ │ ├── furnace-api-9999.9.9.Final-sources.jar.md5 │ │ ├── furnace-api-9999.9.9.Final-sources.jar.sha1 │ │ ├── furnace-api-9999.9.9.Final.jar │ │ ├── furnace-api-9999.9.9.Final.jar.md5 │ │ ├── furnace-api-9999.9.9.Final.jar.sha1 │ │ ├── furnace-api-9999.9.9.Final.pom │ │ ├── furnace-api-9999.9.9.Final.pom.md5 │ │ └── furnace-api-9999.9.9.Final.pom.sha1 │ │ └── maven-metadata-local.xml │ └── test │ ├── indirect_dep │ ├── 1.0.0.Final │ │ ├── indirect_dep-1.0.0.Final-forge-addon.jar │ │ ├── indirect_dep-1.0.0.Final.jar │ │ └── indirect_dep-1.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── lib │ ├── 1.0.0.Final │ │ ├── lib-1.0.0.Final.jar │ │ └── lib-1.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── no_dep │ ├── 1.0.0.Final │ │ ├── no_dep-1.0.0.Final-forge-addon.jar │ │ ├── no_dep-1.0.0.Final.jar │ │ └── no_dep-1.0.0.Final.pom │ ├── 1.0.1.Final │ │ ├── no_dep-1.0.1.Final-forge-addon.jar │ │ ├── no_dep-1.0.1.Final.jar │ │ └── no_dep-1.0.1.Final.pom │ ├── 1.1.0.Final │ │ ├── no_dep-1.1.0.Final-forge-addon.jar │ │ ├── no_dep-1.1.0.Final.jar │ │ └── no_dep-1.1.0.Final.pom │ ├── 1.1.1.Final │ │ ├── no_dep-1.1.1.Final-forge-addon.jar │ │ ├── no_dep-1.1.1.Final.jar │ │ └── no_dep-1.1.1.Final.pom │ ├── 1.1.2-SNAPSHOT │ │ ├── no_dep-1.1.2-SNAPSHOT-forge-addon.jar │ │ ├── no_dep-1.1.2-SNAPSHOT.jar │ │ └── no_dep-1.1.2-SNAPSHOT.pom │ ├── 2.0.0.Final │ │ ├── no_dep-2.0.0.Final-forge-addon.jar │ │ ├── no_dep-2.0.0.Final.jar │ │ └── no_dep-2.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep │ ├── 1.0.0.Final │ │ ├── one_dep-1.0.0.Final-forge-addon.jar │ │ ├── one_dep-1.0.0.Final.jar │ │ └── one_dep-1.0.0.Final.pom │ ├── 2.0.0.Final │ │ ├── one_dep-2.0.0.Final-forge-addon.jar │ │ ├── one_dep-2.0.0.Final.jar │ │ └── one_dep-2.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep_a │ ├── 1.0.0.Final │ │ ├── one_dep_a-1.0.0.Final-forge-addon.jar │ │ ├── one_dep_a-1.0.0.Final.jar │ │ └── one_dep_a-1.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep_incompatible_version │ ├── 9999.0.0.Final │ │ ├── one_dep_incompatible_version-9999.0.0.Final-forge-addon.jar │ │ ├── one_dep_incompatible_version-9999.0.0.Final.jar │ │ └── one_dep_incompatible_version-9999.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep_lib │ ├── 1.0.0.Final │ │ ├── one_dep_lib-1.0.0.Final-forge-addon.jar │ │ ├── one_dep_lib-1.0.0.Final.jar │ │ └── one_dep_lib-1.0.0.Final.pom │ └── maven-metadata-local.xml │ └── two_deps │ ├── 1.0.0.Final │ ├── two_deps-1.0.0.Final-forge-addon.jar │ ├── two_deps-1.0.0.Final.jar │ └── two_deps-1.0.0.Final.pom │ └── maven-metadata-local.xml ├── container ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── jboss │ │ │ └── forge │ │ │ └── furnace │ │ │ └── impl │ │ │ ├── FurnaceImpl.java │ │ │ ├── LoggingRepair.java │ │ │ ├── addons │ │ │ ├── AbstractFileSystemAddonRepository.java │ │ │ ├── AddonDependencyImpl.java │ │ │ ├── AddonImpl.java │ │ │ ├── AddonLifecycleManager.java │ │ │ ├── AddonLoader.java │ │ │ ├── AddonRegistryImpl.java │ │ │ ├── AddonRepositoryImpl.java │ │ │ ├── AddonRepositoryStateStrategy.java │ │ │ ├── AddonRepositoryStateStrategyImpl.java │ │ │ ├── AddonRepositoryStorageStrategy.java │ │ │ ├── AddonRepositoryStorageStrategyImpl.java │ │ │ ├── AddonRunnable.java │ │ │ ├── AddonState.java │ │ │ ├── AddonStateManager.java │ │ │ ├── CompositeDirtyChecker.java │ │ │ ├── DirtyCheckableRepository.java │ │ │ ├── DirtyChecker.java │ │ │ ├── FileSystemDirtyChecker.java │ │ │ ├── ImmutableAddonRepository.java │ │ │ ├── ImportedImpl.java │ │ │ ├── LazyDirtyChecker.java │ │ │ ├── MissingAddonDependencyImpl.java │ │ │ ├── MutableAddonRepositoryStateStrategy.java │ │ │ ├── MutableAddonRepositoryStorageStrategy.java │ │ │ ├── NullServiceRegistry.java │ │ │ ├── StartEnabledAddonCallable.java │ │ │ ├── StopAddonCallable.java │ │ │ └── VersionDirtyChecker.java │ │ │ ├── event │ │ │ ├── AddonViewEventManager.java │ │ │ └── NullEventManager.java │ │ │ ├── graph │ │ │ ├── AddonDependencyEdge.java │ │ │ ├── AddonDependencyEdgeNameProvider.java │ │ │ ├── AddonGraph.java │ │ │ ├── AddonVertex.java │ │ │ ├── AddonVertexNameProvider.java │ │ │ ├── CompleteAddonGraph.java │ │ │ ├── MasterGraph.java │ │ │ ├── MasterGraphChangeHandler.java │ │ │ ├── OptimizedAddonGraph.java │ │ │ └── PrintGraphTraversalListener.java │ │ │ ├── lock │ │ │ ├── DeadlockError.java │ │ │ └── LockManagerImpl.java │ │ │ ├── modules │ │ │ ├── AddonModuleFileCache.java │ │ │ ├── AddonModuleIdentifierCache.java │ │ │ ├── AddonModuleLoader.java │ │ │ ├── ModuleSpecProvider.java │ │ │ └── providers │ │ │ │ ├── AbstractModuleSpecProvider.java │ │ │ │ ├── AppleScriptClasspathSpec.java │ │ │ │ ├── CORBAClasspathSpec.java │ │ │ │ ├── FurnaceContainerSpec.java │ │ │ │ ├── JAXBJDKClasspathSpec.java │ │ │ │ ├── NashornJDKClasspathSpec.java │ │ │ │ ├── SunJDKClasspathSpec.java │ │ │ │ ├── SystemClasspathSpec.java │ │ │ │ ├── XATransactionJDKClasspathSpec.java │ │ │ │ └── XPathJDKClasspathSpec.java │ │ │ └── util │ │ │ ├── ExceptionFuture.java │ │ │ ├── Files.java │ │ │ └── NullFuture.java │ └── resources │ │ └── META-INF │ │ └── services │ │ ├── org.jboss.forge.furnace.Furnace │ │ └── org.jboss.forge.furnace.impl.modules.ModuleSpecProvider │ └── test │ ├── java │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ ├── AddonRepositoryImplTest.java │ │ ├── FurnaceImplTest.java │ │ ├── impl │ │ └── addons │ │ │ └── AddonRepositoryStateStrategyImplTest.java │ │ ├── mock │ │ ├── AnnotatedWithRemote.java │ │ ├── ExtendsRemoteInterface.java │ │ ├── InheritsRemote.java │ │ ├── InheritsRemoteFromExtendedInterface.java │ │ ├── InheritsRemoteFromSuperClassInheriting.java │ │ ├── MockAnnotation.java │ │ ├── MockInterface.java │ │ ├── MockLockManager.java │ │ ├── MockMethodAnnotation.java │ │ ├── SuperClassAnnotatedWithRemote.java │ │ └── SuperClassInheritsFromInterface.java │ │ └── util │ │ └── AnnotationsTest.java │ └── resources │ └── invalid.xml ├── manager ├── api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── manager │ │ ├── AddonManager.java │ │ └── request │ │ ├── AddonActionRequest.java │ │ ├── DeployRequest.java │ │ ├── DisableRequest.java │ │ ├── EnableRequest.java │ │ ├── InstallRequest.java │ │ ├── RemoveRequest.java │ │ └── UpdateRequest.java ├── impl │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── jboss │ │ │ └── forge │ │ │ └── furnace │ │ │ └── manager │ │ │ └── impl │ │ │ ├── AddonManagerImpl.java │ │ │ ├── ShallowAddonInfo.java │ │ │ └── request │ │ │ ├── AbstractAddonActionRequest.java │ │ │ ├── AddonActionRequestFactory.java │ │ │ ├── ConfigurationScanListener.java │ │ │ ├── DeployRequestImpl.java │ │ │ ├── DisableRequestImpl.java │ │ │ ├── EnableRequestImpl.java │ │ │ ├── InstallRequestImpl.java │ │ │ ├── RemoveRequestImpl.java │ │ │ └── UpdateRequestImpl.java │ │ └── resources │ │ └── META-INF │ │ └── beans.xml ├── pom.xml ├── resolver │ ├── maven │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── jboss │ │ │ │ │ └── forge │ │ │ │ │ └── furnace │ │ │ │ │ └── manager │ │ │ │ │ └── maven │ │ │ │ │ ├── ClasspathWorkspaceReader.java │ │ │ │ │ ├── JULMavenTransferListener.java │ │ │ │ │ ├── LazyAuthenticationSelector.java │ │ │ │ │ ├── LogTransferListener.java │ │ │ │ │ ├── ManualWagonProvider.java │ │ │ │ │ ├── MavenContainer.java │ │ │ │ │ ├── MavenOperationException.java │ │ │ │ │ ├── addon │ │ │ │ │ ├── AddonDependencySelector.java │ │ │ │ │ ├── AddonDependencyTraverser.java │ │ │ │ │ ├── AddonInfoBuilder.java │ │ │ │ │ ├── LazyAddonInfo.java │ │ │ │ │ └── MavenAddonDependencyResolver.java │ │ │ │ │ ├── result │ │ │ │ │ └── MavenResponseBuilder.java │ │ │ │ │ └── util │ │ │ │ │ └── MavenRepositories.java │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── services │ │ │ │ └── org.jboss.forge.furnace.manager.spi.AddonDependencyResolver │ │ │ └── test │ │ │ ├── java │ │ │ └── org │ │ │ │ └── jboss │ │ │ │ └── forge │ │ │ │ └── furnace │ │ │ │ └── manager │ │ │ │ ├── AddonDependencyResolverTest.java │ │ │ │ ├── MavenAddonDependencyResolverTest.java │ │ │ │ └── maven │ │ │ │ └── util │ │ │ │ └── MavenRepositoriesTest.java │ │ │ └── resources │ │ │ ├── profiles │ │ │ ├── mirror-settings.xml │ │ │ ├── resolver-settings.xml │ │ │ └── settings.xml │ │ │ └── repository │ │ │ └── test │ │ │ ├── furnace_api_dep │ │ │ ├── 1.0.0-SNAPSHOT │ │ │ │ ├── furnace_api_dep-1.0.0-SNAPSHOT-forge-addon.jar │ │ │ │ ├── furnace_api_dep-1.0.0-SNAPSHOT.jar │ │ │ │ └── furnace_api_dep-1.0.0-SNAPSHOT.pom │ │ │ ├── 1.0.0.Final │ │ │ │ ├── furnace_api_dep-1.0.0.Final-forge-addon.jar │ │ │ │ ├── furnace_api_dep-1.0.0.Final.jar │ │ │ │ └── furnace_api_dep-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── furnace_api_indirect_dep │ │ │ ├── 1.0.0.Final │ │ │ │ ├── furnace_api_indirect_dep-1.0.0.Final-forge-addon.jar │ │ │ │ ├── furnace_api_indirect_dep-1.0.0.Final.jar │ │ │ │ └── furnace_api_indirect_dep-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── furnace_api_snapshot │ │ │ ├── 1.0.0-SNAPSHOT │ │ │ │ ├── furnace_api_snapshot-1.0.0-SNAPSHOT-forge-addon.jar │ │ │ │ ├── furnace_api_snapshot-1.0.0-SNAPSHOT.jar │ │ │ │ └── furnace_api_snapshot-1.0.0-SNAPSHOT.pom │ │ │ └── maven-metadata.xml │ │ │ ├── indirect_dep │ │ │ ├── 1.0.0.Final │ │ │ │ ├── indirect_dep-1.0.0.Final-forge-addon.jar │ │ │ │ ├── indirect_dep-1.0.0.Final.jar │ │ │ │ └── indirect_dep-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── lib │ │ │ ├── 1.0.0.Final │ │ │ │ ├── lib-1.0.0.Final.jar │ │ │ │ └── lib-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── lib2 │ │ │ ├── 1.0.0.Final │ │ │ │ ├── lib2-1.0.0.Final.jar │ │ │ │ └── lib2-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── no_dep │ │ │ ├── 1.0.0.Final │ │ │ │ ├── no_dep-1.0.0.Final-forge-addon.jar │ │ │ │ ├── no_dep-1.0.0.Final.jar │ │ │ │ └── no_dep-1.0.0.Final.pom │ │ │ ├── 1.0.1.Final │ │ │ │ ├── no_dep-1.0.1.Final-forge-addon.jar │ │ │ │ ├── no_dep-1.0.1.Final.jar │ │ │ │ └── no_dep-1.0.1.Final.pom │ │ │ ├── 1.1.0.Final │ │ │ │ ├── no_dep-1.1.0.Final-forge-addon.jar │ │ │ │ ├── no_dep-1.1.0.Final.jar │ │ │ │ └── no_dep-1.1.0.Final.pom │ │ │ ├── 1.1.1.Final │ │ │ │ ├── no_dep-1.1.1.Final-forge-addon.jar │ │ │ │ ├── no_dep-1.1.1.Final.jar │ │ │ │ └── no_dep-1.1.1.Final.pom │ │ │ ├── 1.1.2-SNAPSHOT │ │ │ │ ├── no_dep-1.1.2-SNAPSHOT-forge-addon.jar │ │ │ │ ├── no_dep-1.1.2-SNAPSHOT.jar │ │ │ │ └── no_dep-1.1.2-SNAPSHOT.pom │ │ │ ├── 2.0.0.Final │ │ │ │ ├── no_dep-2.0.0.Final-forge-addon.jar │ │ │ │ ├── no_dep-2.0.0.Final.jar │ │ │ │ └── no_dep-2.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── one_dep │ │ │ ├── 1.0.0.Final │ │ │ │ ├── one_dep-1.0.0.Final-forge-addon.jar │ │ │ │ ├── one_dep-1.0.0.Final.jar │ │ │ │ └── one_dep-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── one_dep_a │ │ │ ├── 1.0.0.Final │ │ │ │ ├── one_dep_a-1.0.0.Final-forge-addon.jar │ │ │ │ ├── one_dep_a-1.0.0.Final.jar │ │ │ │ └── one_dep_a-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── one_dep_lib │ │ │ ├── 1.0.0.Final │ │ │ │ ├── one_dep_lib-1.0.0.Final-forge-addon.jar │ │ │ │ ├── one_dep_lib-1.0.0.Final.jar │ │ │ │ └── one_dep_lib-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ ├── one_optional_dep │ │ │ ├── 1.0.0.Final │ │ │ │ ├── one_optional_dep-1.0.0.Final-forge-addon.jar │ │ │ │ ├── one_optional_dep-1.0.0.Final.jar │ │ │ │ └── one_optional_dep-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ │ │ └── two_deps │ │ │ ├── 1.0.0.Final │ │ │ ├── two_deps-1.0.0.Final-forge-addon.jar │ │ │ ├── two_deps-1.0.0.Final.jar │ │ │ └── two_deps-1.0.0.Final.pom │ │ │ └── maven-metadata.xml │ └── pom.xml ├── spi │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── manager │ │ └── spi │ │ ├── AddonDependencyResolver.java │ │ ├── AddonInfo.java │ │ └── Response.java └── tests │ ├── pom.xml │ └── src │ └── test │ ├── java │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── manager │ │ └── impl │ │ ├── AddonManagerHotswapTest.java │ │ ├── AddonManagerInstallTest.java │ │ ├── AddonManagerRealTest.java │ │ ├── AddonManagerRepositoryTest.java │ │ └── ClassesNotLeakedOnClasspathTest.java │ └── resources │ ├── profiles │ └── settings.xml │ └── repository │ └── test │ ├── indirect_dep │ └── 1.0.0.Final │ │ ├── indirect_dep-1.0.0.Final-forge-addon.jar │ │ ├── indirect_dep-1.0.0.Final.jar │ │ └── indirect_dep-1.0.0.Final.pom │ ├── indirect_indirect_lib │ └── 1.0.0.Final │ │ ├── indirect_indirect_lib-1.0.0.Final.jar │ │ └── indirect_indirect_lib-1.0.0.Final.pom │ ├── indirect_lib │ └── 1.0.0.Final │ │ ├── indirect_lib-1.0.0.Final.jar │ │ └── indirect_lib-1.0.0.Final.pom │ ├── lib │ └── 1.0.0.Final │ │ ├── lib-1.0.0.Final.jar │ │ └── lib-1.0.0.Final.pom │ ├── no_dep │ ├── 1.0.0.Final │ │ ├── no_dep-1.0.0.Final-forge-addon.jar │ │ ├── no_dep-1.0.0.Final.jar │ │ └── no_dep-1.0.0.Final.pom │ ├── 1.0.1.Final │ │ ├── no_dep-1.0.1.Final-forge-addon.jar │ │ ├── no_dep-1.0.1.Final.jar │ │ └── no_dep-1.0.1.Final.pom │ ├── 1.1.0.Final │ │ ├── no_dep-1.1.0.Final-forge-addon.jar │ │ ├── no_dep-1.1.0.Final.jar │ │ └── no_dep-1.1.0.Final.pom │ ├── 1.1.1.Final │ │ ├── no_dep-1.1.1.Final-forge-addon.jar │ │ ├── no_dep-1.1.1.Final.jar │ │ └── no_dep-1.1.1.Final.pom │ ├── 1.1.2-SNAPSHOT │ │ ├── no_dep-1.1.2-SNAPSHOT-forge-addon.jar │ │ ├── no_dep-1.1.2-SNAPSHOT.jar │ │ └── no_dep-1.1.2-SNAPSHOT.pom │ └── 2.0.0.Final │ │ ├── no_dep-2.0.0.Final-forge-addon.jar │ │ ├── no_dep-2.0.0.Final.jar │ │ └── no_dep-2.0.0.Final.pom │ ├── no_dep_one_lib_excluding_indirect_lib │ └── 1.0.0.Final │ │ ├── no_dep_one_lib_excluding_indirect_lib-1.0.0.Final-forge-addon.jar │ │ ├── no_dep_one_lib_excluding_indirect_lib-1.0.0.Final.jar │ │ └── no_dep_one_lib_excluding_indirect_lib-1.0.0.Final.pom │ ├── one_dep │ └── 1.0.0.Final │ │ ├── one_dep-1.0.0.Final-forge-addon.jar │ │ ├── one_dep-1.0.0.Final.jar │ │ └── one_dep-1.0.0.Final.pom │ ├── one_dep_a │ └── 1.0.0.Final │ │ ├── one_dep_a-1.0.0.Final-forge-addon.jar │ │ ├── one_dep_a-1.0.0.Final.jar │ │ └── one_dep_a-1.0.0.Final.pom │ ├── one_dep_lib │ └── 1.0.0.Final │ │ ├── one_dep_lib-1.0.0.Final-forge-addon.jar │ │ ├── one_dep_lib-1.0.0.Final.jar │ │ └── one_dep_lib-1.0.0.Final.pom │ └── two_deps │ └── 1.0.0.Final │ ├── two_deps-1.0.0.Final-forge-addon.jar │ ├── two_deps-1.0.0.Final.jar │ └── two_deps-1.0.0.Final.pom ├── maven-plugin ├── README.asciidoc ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── maven │ │ └── plugin │ │ ├── AddonInstallMojo.java │ │ ├── AddonRemoveMojo.java │ │ └── GenerateDOTMojo.java │ └── test │ ├── java │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── maven │ │ └── plugin │ │ └── AddonInstallMojoTest.java │ └── resources │ └── plugin-config.xml ├── pom.xml ├── proxy-tests ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── classloader │ │ └── mock │ │ ├── CustomPrintStream.java │ │ ├── CustomPrintStreamFactory.java │ │ ├── IterableFactory.java │ │ ├── JavaIOFactory.java │ │ ├── JavaUtilLoggingFactory.java │ │ ├── MockFinalResult.java │ │ ├── MockInterface1.java │ │ ├── MockInterface2.java │ │ ├── MockOptionalService.java │ │ ├── MockParentInterface1.java │ │ ├── MockParentInterface2.java │ │ ├── MockResult.java │ │ ├── MockService.java │ │ ├── MockService2.java │ │ ├── MockSimpleCountService.java │ │ ├── Result.java │ │ ├── SimpleEnum.java │ │ ├── SimpleEnumFactory.java │ │ ├── collections │ │ ├── Profile.java │ │ ├── ProfileCommand.java │ │ ├── ProfileFactory.java │ │ ├── ProfileManager.java │ │ └── ProfileManagerImpl.java │ │ ├── collisions │ │ ├── ClassCreatesInstanceFromClassLoader.java │ │ ├── ClassImplementsInterfaceExtendsInterfaceValue.java │ │ ├── ClassImplementsInterfaceModifiableContext.java │ │ ├── ClassImplementsInterfaceWithArrayParameterModification.java │ │ ├── ClassImplementsInterfaceWithGetterAndSetter.java │ │ ├── ClassImplementsInterfaceWithPassthroughMethod.java │ │ ├── ClassWithClassAsParameter.java │ │ ├── ClassWithGetterAndSetter.java │ │ ├── ClassWithInterfaceGetterAndSetter.java │ │ ├── ClassWithJavaLangGetterAndSetter.java │ │ ├── ClassWithListAsParameter.java │ │ ├── ClassWithPassthroughMethod.java │ │ ├── InterfaceExtendsInterfaceValue.java │ │ ├── InterfaceModifiableContext.java │ │ ├── InterfaceValue.java │ │ ├── InterfaceWithArrayParameterModification.java │ │ ├── InterfaceWithGetterAndSetter.java │ │ └── InterfaceWithPassthroughMethod.java │ │ ├── dispatch │ │ ├── AbstractA.java │ │ ├── AbstractB.java │ │ └── ConcreteC.java │ │ ├── exceptions │ │ ├── ExceptionFactory.java │ │ └── MockException.java │ │ ├── result │ │ ├── AbstractClass.java │ │ ├── BasicInterface.java │ │ ├── Implementation.java │ │ ├── InstanceFactory.java │ │ ├── InstanceFactoryImpl.java │ │ └── SuperInterface.java │ │ ├── sidewaysproxy │ │ ├── AbstractExtra.java │ │ ├── Action.java │ │ ├── Action1.java │ │ ├── Context.java │ │ ├── ContextImpl.java │ │ ├── ContextValue.java │ │ ├── ContextValueImpl.java │ │ ├── Extra.java │ │ ├── Payload.java │ │ └── Payload1.java │ │ └── system │ │ ├── ArrayListFactory.java │ │ └── EmptyClassLoader.java │ └── test │ └── java │ └── org │ └── jboss │ └── forge │ └── furnace │ └── proxy │ ├── classloader │ ├── ClassLoaderAdapterCallbackTest.java │ ├── ClassLoaderAdapterCollisionsTest.java │ ├── ClassLoaderAdapterDuplicateMethodCallbackTest.java │ ├── ClassLoaderAdapterEnumTranslationTest.java │ ├── ClassLoaderAdapterExceptionProxyTest.java │ ├── ClassLoaderAdapterJavaIOSubclassTest.java │ ├── ClassLoaderAdapterJavaIOTest.java │ ├── ClassLoaderAdapterJavaOptionalTest.java │ ├── ClassLoaderAdapterJavaUtilLoggingTest.java │ ├── ClassLoaderAdapterPassthroughTest.java │ ├── ClassLoaderAdapterProxiedTest.java │ ├── ClassLoaderAdapterResultProxyTest.java │ ├── ClassLoaderListParameterProxiedTest.java │ ├── ClassLoaderNestedInterfaceProxyTest.java │ ├── ClassLoaderParameterUnwrappedTest.java │ ├── SidewaysProxyAnonymousCollisionTest.java │ ├── SystemClassLoaderNullClassLoaderAdapterTest.java │ ├── collections │ │ ├── CLACProxiedCollectionsReturnTypeUnwrappingTest.java │ │ ├── CLACProxiedCollectionsTest.java │ │ └── CLACProxiedIterableTest.java │ └── whitelist │ │ ├── ClassLoaderAdapterWhitelistLoaderLookupTest.java │ │ ├── ClassLoaderAdapterWhitelistLoaderPassthroughTest.java │ │ ├── MockContext.java │ │ ├── MockContextConsumer.java │ │ ├── MockContextPayload.java │ │ └── MockContextPayloadImpl.java │ ├── dispatch │ └── ProxyMethodHandlerDispatchTest.java │ └── thread │ └── ThreadProxyInterruptTest.java ├── proxy ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── proxy │ │ ├── Arrays.java │ │ ├── ClassLoaderAdapterBuilder.java │ │ ├── ClassLoaderAdapterBuilderCallingLoader.java │ │ ├── ClassLoaderAdapterBuilderDelegateLoader.java │ │ ├── ClassLoaderAdapterBuilderWhitelist.java │ │ ├── ClassLoaderAdapterCallback.java │ │ ├── ClassLoaderInterceptor.java │ │ ├── ForgeProxy.java │ │ ├── ForgeProxyMethodFilter.java │ │ ├── Proxies.java │ │ └── ProxyTypeInspector.java │ └── test │ └── java │ └── org │ └── jboss │ └── forge │ └── furnace │ └── proxy │ ├── ArraysTest.java │ ├── ProxyTypeInspectorTest.java │ ├── mock │ └── MockBaseClassExternal.java │ └── test │ ├── Bean.java │ ├── BeanWithSuperClass.java │ ├── MockType.java │ ├── ProxiesTest.java │ └── TypeWithNonDefaultConstructor.java ├── se-tests ├── pom.xml └── src │ └── test │ ├── java │ └── test │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── views │ │ └── FurnaceSETest.java │ └── resources │ ├── profiles │ └── settings.xml │ └── repository │ └── test │ ├── indirect_dep │ ├── 1.0.0.Final │ │ ├── indirect_dep-1.0.0.Final-forge-addon.jar │ │ ├── indirect_dep-1.0.0.Final.jar │ │ └── indirect_dep-1.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── lib │ ├── 1.0.0.Final │ │ ├── lib-1.0.0.Final.jar │ │ └── lib-1.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── no_dep │ ├── 1.0.0.Final │ │ ├── no_dep-1.0.0.Final-forge-addon.jar │ │ ├── no_dep-1.0.0.Final.jar │ │ └── no_dep-1.0.0.Final.pom │ ├── 1.0.1.Final │ │ ├── no_dep-1.0.1.Final-forge-addon.jar │ │ ├── no_dep-1.0.1.Final.jar │ │ └── no_dep-1.0.1.Final.pom │ ├── 1.1.0.Final │ │ ├── no_dep-1.1.0.Final-forge-addon.jar │ │ ├── no_dep-1.1.0.Final.jar │ │ └── no_dep-1.1.0.Final.pom │ ├── 1.1.1.Final │ │ ├── no_dep-1.1.1.Final-forge-addon.jar │ │ ├── no_dep-1.1.1.Final.jar │ │ └── no_dep-1.1.1.Final.pom │ ├── 1.1.2-SNAPSHOT │ │ ├── no_dep-1.1.2-SNAPSHOT-forge-addon.jar │ │ ├── no_dep-1.1.2-SNAPSHOT.jar │ │ └── no_dep-1.1.2-SNAPSHOT.pom │ ├── 2.0.0.Final │ │ ├── no_dep-2.0.0.Final-forge-addon.jar │ │ ├── no_dep-2.0.0.Final.jar │ │ └── no_dep-2.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep │ ├── 1.0.0.Final │ │ ├── one_dep-1.0.0.Final-forge-addon.jar │ │ ├── one_dep-1.0.0.Final.jar │ │ └── one_dep-1.0.0.Final.pom │ ├── 2.0.0.Final │ │ ├── one_dep-2.0.0.Final-forge-addon.jar │ │ ├── one_dep-2.0.0.Final.jar │ │ └── one_dep-2.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep_a │ ├── 1.0.0.Final │ │ ├── one_dep_a-1.0.0.Final-forge-addon.jar │ │ ├── one_dep_a-1.0.0.Final.jar │ │ └── one_dep_a-1.0.0.Final.pom │ └── maven-metadata-local.xml │ ├── one_dep_lib │ ├── 1.0.0.Final │ │ ├── one_dep_lib-1.0.0.Final-forge-addon.jar │ │ ├── one_dep_lib-1.0.0.Final.jar │ │ └── one_dep_lib-1.0.0.Final.pom │ └── maven-metadata-local.xml │ └── two_deps │ ├── 1.0.0.Final │ ├── two_deps-1.0.0.Final-forge-addon.jar │ ├── two_deps-1.0.0.Final.jar │ └── two_deps-1.0.0.Final.pom │ └── maven-metadata-local.xml ├── se ├── pom.xml └── src │ ├── main │ └── java │ │ ├── bootpath │ │ └── BootpathMarker.java │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── furnace │ │ └── se │ │ ├── BootstrapClassLoader.java │ │ └── FurnaceFactory.java │ └── test │ └── java │ └── org │ └── jboss │ └── forge │ └── furnace │ └── se │ └── BootstrapClassLoaderTestCase.java └── test-harness ├── arquillian ├── classpath │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── jboss │ │ │ └── forge │ │ │ └── arquillian │ │ │ ├── ConfigurationScanListener.java │ │ │ ├── FurnaceContainerConfiguration.java │ │ │ ├── FurnaceDeployableContainer.java │ │ │ └── FurnaceLoadableExtension.java │ │ └── resources │ │ └── META-INF │ │ ├── arquillian.xml │ │ └── services │ │ └── org.jboss.arquillian.core.spi.LoadableExtension ├── core │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── jboss │ │ │ │ └── forge │ │ │ │ └── arquillian │ │ │ │ ├── AddonDependencies.java │ │ │ │ ├── AddonDependency.java │ │ │ │ ├── AddonDeployment.java │ │ │ │ ├── AddonDeployments.java │ │ │ │ ├── Dependencies.java │ │ │ │ ├── DeployToRepository.java │ │ │ │ ├── DeploymentListener.java │ │ │ │ ├── archive │ │ │ │ ├── AddonArchive.java │ │ │ │ ├── AddonArchiveBase.java │ │ │ │ ├── AddonDependencyAware.java │ │ │ │ ├── AddonDeploymentArchive.java │ │ │ │ ├── DeploymentTimeoutAware.java │ │ │ │ ├── RepositoryLocationAware.java │ │ │ │ └── impl │ │ │ │ │ ├── AddonArchiveImpl.java │ │ │ │ │ └── AddonDeploymentArchiveImpl.java │ │ │ │ ├── impl │ │ │ │ ├── FurnaceAuxiliaryArchiveProcessor.java │ │ │ │ ├── FurnaceDeploymentPackager.java │ │ │ │ ├── FurnaceDeploymentScenarioGenerator.java │ │ │ │ ├── FurnaceTestMethodExecutor.java │ │ │ │ ├── NullException.java │ │ │ │ └── ShrinkWrapUtil.java │ │ │ │ ├── maven │ │ │ │ ├── LazyAuthenticationSelector.java │ │ │ │ ├── MavenModelResolver.java │ │ │ │ ├── P2ArtifactRepositoryLayout.java │ │ │ │ ├── PlexusContainer.java │ │ │ │ ├── ProjectHelper.java │ │ │ │ └── RepositoryUtils.java │ │ │ │ ├── protocol │ │ │ │ ├── FurnaceHolder.java │ │ │ │ ├── FurnaceProtocol.java │ │ │ │ ├── FurnaceProtocolConfiguration.java │ │ │ │ └── FurnaceProtocolDescription.java │ │ │ │ ├── services │ │ │ │ ├── LocalServices.java │ │ │ │ └── impl │ │ │ │ │ ├── LazyServiceRegistryEventManager.java │ │ │ │ │ ├── ReflectionExportedInstance.java │ │ │ │ │ └── ReflectionServiceRegistry.java │ │ │ │ └── spi │ │ │ │ ├── AddonDeploymentScenarioEnhancer.java │ │ │ │ └── TestClassRegistrationStrategy.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── arquillian.xml │ │ │ └── services │ │ │ ├── org.jboss.forge.arquillian.archive.AddonArchive │ │ │ └── org.jboss.forge.arquillian.archive.AddonDeploymentArchive │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── jboss │ │ │ └── forge │ │ │ └── arquillian │ │ │ └── maven │ │ │ └── ProjectHelperTest.java │ │ └── resources │ │ └── org │ │ └── jboss │ │ └── forge │ │ └── arquillian │ │ └── maven │ │ └── lib-1.0.0.Final.pom └── pom.xml ├── pom.xml └── test-harness ├── pom.xml └── src └── main └── java └── org └── jboss └── forge └── package-info.java /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: maven 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "07:00" 8 | timezone: America/Sao_Paulo 9 | open-pull-requests-limit: 10 10 | ignore: 11 | - dependency-name: org.apache.maven.wagon:wagon-http-lightweight 12 | versions: 13 | - 3.4.2 14 | - dependency-name: org.apache.maven.wagon:wagon-file 15 | versions: 16 | - 3.4.2 17 | - dependency-name: org.apache.maven:maven-plugin-api 18 | versions: 19 | - 3.6.3 20 | - dependency-name: org.apache.maven.plugin-tools:maven-plugin-annotations 21 | versions: 22 | - 3.6.0 23 | -------------------------------------------------------------------------------- /.github/workflows/maven.yml: -------------------------------------------------------------------------------- 1 | name: GitHub CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | Build: 7 | strategy: 8 | matrix: 9 | java: [ 8, 11 ] 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Set up JDK ${{ matrix.java }} 16 | uses: actions/setup-java@v3 17 | with: 18 | java-version: ${{ matrix.java }} 19 | cache: maven 20 | distribution: 'temurin' 21 | - name: Build with Maven 22 | run: mvn -B install --file pom.xml 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .classpath 2 | .project 3 | .settings 4 | .DS_Store 5 | dependency-reduced-pom.xml 6 | target/ 7 | *.iml 8 | *.ipr 9 | *.iws 10 | *.swp 11 | /*/src/main/java/META-INF 12 | .gitignore.swp 13 | docs/reference/src/main/docbook/en-US/version_info.xml 14 | .idea 15 | .forge_settings 16 | .factorypath 17 | atlassian-ide-plugin.xml 18 | .externalToolBuilders 19 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | sudo: false 3 | jdk: 4 | - openjdk8 5 | - openjdk11 6 | install: true 7 | script: mvn clean install -B -V 8 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/ContainerStatus.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace; 9 | 10 | /** 11 | * The container status 12 | * 13 | * @author George Gastaldi 14 | * 15 | */ 16 | public enum ContainerStatus 17 | { 18 | STARTING, STARTED, RELOADING, STOPPED; 19 | 20 | public boolean isStarting() 21 | { 22 | return this == STARTING; 23 | } 24 | 25 | public boolean isStarted() 26 | { 27 | return this == STARTED; 28 | } 29 | 30 | public boolean isReloading() 31 | { 32 | return this == RELOADING; 33 | } 34 | 35 | public boolean isStopped() 36 | { 37 | return this == STOPPED; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/addons/AddonCompatibilityStrategy.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.addons; 9 | 10 | import org.jboss.forge.furnace.Furnace; 11 | import org.jboss.forge.furnace.versions.Version; 12 | 13 | /** 14 | * A {@link AddonCompatibilityStrategy} handles if an {@link Addon} should be loaded based on it's {@link Version}, for 15 | * example. 16 | * 17 | * @author George Gastaldi 18 | */ 19 | public interface AddonCompatibilityStrategy 20 | { 21 | /** 22 | * Implementations should check if the given {@link AddonId} is compatible with the given {@link Furnace} instance 23 | * 24 | * @return true if the {@link AddonId} is compatible with the given {@link Furnace} instance 25 | */ 26 | boolean isCompatible(Furnace furnace, AddonId addonId); 27 | } 28 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/addons/AddonDependency.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.addons; 8 | 9 | 10 | /** 11 | * An edge in the registered {@link Addon} graph. 12 | * 13 | * @author Lincoln Baxter, III 14 | */ 15 | public interface AddonDependency 16 | { 17 | /** 18 | * Get the {@link Addon} dependency of the {@link Addon} returned by {@link #getDependent()}. 19 | */ 20 | public Addon getDependency(); 21 | 22 | /** 23 | * Return true if the {@link Addon} dependency returned by {@link #getDependency()} is exported by the 24 | * dependent {@link Addon}. If the dependency is not exported, return false. 25 | */ 26 | public boolean isExported(); 27 | 28 | /** 29 | * Return true if the {@link Addon} dependency returned by {@link #getDependency()} is an optional 30 | * dependency of the dependent {@link Addon}. If the dependency is not optional, return false. 31 | */ 32 | public boolean isOptional(); 33 | 34 | } -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/addons/AddonFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.addons; 8 | 9 | import org.jboss.forge.furnace.util.Predicate; 10 | 11 | /** 12 | * Used to filter {@link Addon} instances. 13 | * 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | public interface AddonFilter extends Predicate 18 | { 19 | } 20 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/event/EventException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.event; 8 | 9 | import org.jboss.forge.furnace.exception.ContainerException; 10 | 11 | /** 12 | * Thrown when an {@link Exception} is encountered during event processing. 13 | * 14 | * @author Lincoln Baxter, III 15 | */ 16 | public class EventException extends ContainerException 17 | { 18 | private static final long serialVersionUID = 2990600221242735267L; 19 | 20 | public EventException(String message) 21 | { 22 | super(message); 23 | } 24 | 25 | public EventException(String message, Throwable cause) 26 | { 27 | super(message, cause); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/event/EventManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.event; 8 | 9 | import java.lang.annotation.Annotation; 10 | 11 | /** 12 | * Responsible for handling event propagation. 13 | * 14 | * @author Lincoln Baxter, III 15 | */ 16 | public interface EventManager 17 | { 18 | /** 19 | * Fire an event and notify observers within the enclosing addon. 20 | * 21 | * @throws EventException if exceptions are encountered during event processing. 22 | */ 23 | public void fireEvent(Object event, Annotation... qualifiers) throws EventException; 24 | } 25 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/event/PostStartup.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.event; 9 | 10 | import org.jboss.forge.furnace.addons.Addon; 11 | import org.jboss.forge.furnace.util.Assert; 12 | 13 | /** 14 | * This event is fired by the container when a specific addon has started. 15 | * 16 | * @author Lincoln Baxter, III 17 | * 18 | */ 19 | public final class PostStartup 20 | { 21 | private final Addon addon; 22 | 23 | public PostStartup(Addon addon) 24 | { 25 | Assert.notNull(addon, "Addon must not be null."); 26 | this.addon = addon; 27 | } 28 | 29 | public Addon getAddon() 30 | { 31 | return addon; 32 | } 33 | 34 | @Override 35 | public String toString() 36 | { 37 | return "PostStartup [addon=" + addon + "]"; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/event/PreShutdown.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.event; 9 | 10 | import org.jboss.forge.furnace.addons.Addon; 11 | import org.jboss.forge.furnace.util.Assert; 12 | 13 | /** 14 | * Fired before the container begins its shutdown process. 15 | * 16 | * @author Lincoln Baxter, III 17 | * 18 | */ 19 | public final class PreShutdown 20 | { 21 | private final Addon addon; 22 | 23 | public PreShutdown(Addon addon) 24 | { 25 | Assert.notNull(addon, "Addon must not be null."); 26 | this.addon = addon; 27 | } 28 | 29 | public Addon getAddon() 30 | { 31 | return addon; 32 | } 33 | 34 | @Override 35 | public String toString() 36 | { 37 | return "PreShutdown [addon=" + addon + "]"; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/exception/ContainerException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.exception; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ContainerException extends RuntimeException 14 | { 15 | private static final long serialVersionUID = 5266075954460779189L; 16 | 17 | public ContainerException() 18 | { 19 | super(); 20 | } 21 | 22 | public ContainerException(String message, Throwable cause) 23 | { 24 | super(message, cause); 25 | } 26 | 27 | public ContainerException(String message) 28 | { 29 | super(message); 30 | } 31 | 32 | public ContainerException(Throwable cause) 33 | { 34 | super(cause); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/lock/LockManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.lock; 8 | 9 | import java.util.concurrent.Callable; 10 | import java.util.concurrent.locks.Lock; 11 | 12 | /** 13 | * An interface that provides read and write {@link Lock} instances for interacting with the underlying locking 14 | * mechanism. 15 | * 16 | * @author Lincoln Baxter, III 17 | * 18 | * @see {@link LockMode} 19 | */ 20 | public interface LockManager 21 | { 22 | /** 23 | * Perform the given {@link Callable} task after acquiring a {@link Lock} of the given {@link LockMode} type. Return 24 | * the result, if any. 25 | */ 26 | T performLocked(LockMode mode, Callable task); 27 | } 28 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/lock/LockMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.lock; 8 | 9 | import java.util.concurrent.locks.Lock; 10 | 11 | /** 12 | * A type-safe differentiation between read and write {@link Lock} instances. 13 | * 14 | * @author Lincoln Baxter, III 15 | */ 16 | public enum LockMode 17 | { 18 | /** 19 | * Represents a read {@link Lock}. 20 | */ 21 | READ, 22 | 23 | /** 24 | * Represents a write {@link Lock}. 25 | */ 26 | WRITE; 27 | } 28 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/repositories/AddonRepositoryMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.repositories; 8 | 9 | /** 10 | * A set of modes for interacting with an {@link AddonRepository}. 11 | * 12 | * @author Lincoln Baxter, III 13 | */ 14 | public enum AddonRepositoryMode 15 | { 16 | /** 17 | * A read-write repository. 18 | */ 19 | MUTABLE, 20 | 21 | /** 22 | * A read-only repository. 23 | */ 24 | IMMUTABLE; 25 | 26 | /** 27 | * Return true if this {@link AddonRepositoryMode} instance is {@link AddonRepositoryMode#MUTABLE} 28 | */ 29 | public boolean isMutable() 30 | { 31 | return this == MUTABLE; 32 | } 33 | 34 | /** 35 | * Return true if this {@link AddonRepositoryMode} instance is {@link AddonRepositoryMode#IMMUTABLE} 36 | */ 37 | public boolean isImmutable() 38 | { 39 | return this == IMMUTABLE; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/repositories/MutableAddonRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.repositories; 8 | 9 | import java.io.File; 10 | 11 | import org.jboss.forge.furnace.addons.Addon; 12 | import org.jboss.forge.furnace.addons.AddonId; 13 | 14 | /** 15 | * Used to perform {@link Addon} installation/registration operations. May be obtained using CDI injection: 16 | * 17 | * @author Lincoln Baxter, III 18 | * @author Koen Aers 19 | * @author George Gastaldi 20 | */ 21 | public interface MutableAddonRepository extends AddonRepository 22 | { 23 | public boolean deploy(AddonId addon, Iterable dependencies, Iterable resourceJars); 24 | 25 | public boolean disable(final AddonId addon); 26 | 27 | public boolean enable(AddonId addon); 28 | 29 | public boolean undeploy(AddonId addonEntry); 30 | } 31 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/spi/FurnaceProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.spi; 9 | 10 | import org.jboss.forge.furnace.Furnace; 11 | 12 | /** 13 | * Returns the associated Furnace from a Furnace container 14 | * 15 | * @author George Gastaldi 16 | */ 17 | public interface FurnaceProvider 18 | { 19 | Furnace getFurnace(ClassLoader loader); 20 | } 21 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/spi/ListenerRegistration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.spi; 9 | 10 | /** 11 | * Allows removal of a registered listener in the Furnace container 12 | * 13 | * @author George Gastaldi 14 | * 15 | * @param 16 | */ 17 | public interface ListenerRegistration extends AutoCloseable 18 | { 19 | T removeListener(); 20 | 21 | @Override 22 | default void close() throws Exception 23 | { 24 | removeListener(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/AddonFilters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.util; 8 | 9 | import org.jboss.forge.furnace.addons.AddonFilter; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | */ 14 | public class AddonFilters 15 | { 16 | public static AddonFilter allLoaded() 17 | { 18 | return (addon) -> addon.getStatus().isLoaded(); 19 | } 20 | 21 | public static AddonFilter allStarting() 22 | { 23 | return (addon) -> !addon.getFuture().isDone(); 24 | } 25 | 26 | public static AddonFilter allStarted() 27 | { 28 | return (addon) -> addon.getStatus().isStarted(); 29 | } 30 | 31 | public static AddonFilter allNotStarted() 32 | { 33 | return (addon) -> !addon.getStatus().isStarted(); 34 | } 35 | 36 | public static AddonFilter all() 37 | { 38 | return (addon) -> true; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/Lists.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.util; 9 | 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | /** 14 | * Utilities for interacting with {@link List} instances. 15 | * 16 | * @author George Gastaldi 17 | */ 18 | public class Lists 19 | { 20 | /** 21 | * Converts an {@link Iterable} to a {@link List} 22 | */ 23 | public static List toList(Iterable iterable) 24 | { 25 | if (iterable == null) 26 | { 27 | return null; 28 | } 29 | else if (iterable instanceof List) 30 | { 31 | return (List) iterable; 32 | } 33 | else 34 | { 35 | List list = new ArrayList<>(); 36 | for (T obj : iterable) 37 | { 38 | list.add(obj); 39 | } 40 | return list; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/Predicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.util; 9 | 10 | /** 11 | * Determines a true or false value for a given input. 12 | * 13 | * @author George Gastaldi 14 | * @author Lincoln Baxter, III 15 | * 16 | * @param 17 | */ 18 | public interface Predicate 19 | { 20 | /** 21 | * Return true if the given value should be accepted; otherwise return false. 22 | */ 23 | boolean accept(INPUTTYPE type); 24 | } 25 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/Specialized.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.util; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | */ 12 | public interface Specialized 13 | { 14 | /** 15 | * Returns true if this object is appropriate for the given payload. 16 | */ 17 | boolean handles(T payload); 18 | } 19 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/ValuedVisitor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.util; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | * @param the instance type. 13 | * @param the result value type. 14 | */ 15 | public abstract class ValuedVisitor implements Visitor 16 | { 17 | private VALUETYPE result; 18 | 19 | /** 20 | * Get the result value. 21 | */ 22 | public VALUETYPE getResult() 23 | { 24 | return result; 25 | } 26 | 27 | /** 28 | * Set the result value. 29 | */ 30 | protected void setResult(VALUETYPE result) 31 | { 32 | this.result = result; 33 | } 34 | 35 | /** 36 | * Return true if the {@link #getResult()} is not null. 37 | */ 38 | public boolean hasResult() 39 | { 40 | return getResult() != null; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/Visitor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.util; 9 | 10 | /** 11 | * Visits a given input. 12 | * 13 | * @author George Gastaldi 14 | * @author Lincoln Baxter, III 15 | * 16 | * @param the instance type. 17 | */ 18 | public interface Visitor 19 | { 20 | void visit(INPUTTYPE instance); 21 | } 22 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/Weighted.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.util; 8 | 9 | /** 10 | * Defines a class as having a weight for ordering. 11 | * 12 | * @author Lincoln Baxter, III 13 | */ 14 | public interface Weighted 15 | { 16 | int DEFAULT = 0; 17 | int HIGH = 1000; 18 | int MEDIUM = 100; 19 | int LOW = -100; 20 | 21 | int priority(); 22 | } -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/util/WeightedComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.util; 8 | 9 | import java.util.Comparator; 10 | 11 | /** 12 | * Compares {@link Weighted} objects. 13 | * 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | public enum WeightedComparator implements Comparator 18 | { 19 | INSTANCE; 20 | 21 | @Override 22 | public int compare(final Weighted left, final Weighted right) 23 | { 24 | if ((left == null) || (right == null)) 25 | { 26 | return 0; 27 | } 28 | int thisVal = left.priority(); 29 | int anotherVal = right.priority(); 30 | return (thisVal < anotherVal ? -1 : (thisVal == anotherVal ? 0 : 1)); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/versions/EmptyVersion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.versions; 8 | 9 | public class EmptyVersion extends SingleVersion implements Version 10 | { 11 | private static final EmptyVersion INSTANCE = new EmptyVersion(); 12 | 13 | @SuppressWarnings("deprecation") 14 | private EmptyVersion() 15 | { 16 | super(""); 17 | } 18 | 19 | public static Version getInstance() 20 | { 21 | return INSTANCE; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /container-api/src/main/java/org/jboss/forge/furnace/versions/VersionException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.versions; 8 | 9 | import org.jboss.forge.furnace.exception.ContainerException; 10 | 11 | public class VersionException extends ContainerException 12 | { 13 | private static final long serialVersionUID = -4959545545467948898L; 14 | 15 | public VersionException(String message, Throwable cause) 16 | { 17 | super(message, cause); 18 | } 19 | 20 | public VersionException(String message) 21 | { 22 | super(message); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /container-api/src/test/java/org/jboss/forge/furnace/util/OperatingSystemUtilsTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.util; 9 | 10 | import static org.hamcrest.CoreMatchers.is; 11 | 12 | import java.io.File; 13 | 14 | import org.junit.Assert; 15 | import org.junit.Test; 16 | 17 | /** 18 | * 19 | * @author George Gastaldi 20 | */ 21 | public class OperatingSystemUtilsTest 22 | { 23 | 24 | /** 25 | * Test method for {@link org.jboss.forge.furnace.util.OperatingSystemUtils#createTempDir()}. 26 | */ 27 | @Test 28 | public void testCreateTempDir() 29 | { 30 | File tmpDir = OperatingSystemUtils.createTempDir(); 31 | tmpDir.deleteOnExit(); 32 | Assert.assertThat(tmpDir.isDirectory(), is(true)); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/MockImpl1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.mocks; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockImpl1 implements MockInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/MockImpl2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.mocks; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockImpl2 implements MockInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/MockInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.mocks; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface MockInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/SubMockImpl1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package test.org.jboss.forge.furnace.mocks; 9 | 10 | /** 11 | * 12 | * @author George Gastaldi 13 | */ 14 | public class SubMockImpl1 extends MockImpl1 15 | { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/services/MockService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.mocks.services; 8 | 9 | import java.util.HashMap; 10 | import java.util.Map; 11 | 12 | /** 13 | * @author Lincoln Baxter, III 14 | * 15 | */ 16 | public class MockService 17 | { 18 | private final Map attributes = new HashMap<>(); 19 | 20 | public Map getAttributes() 21 | { 22 | return attributes; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/services/MockServiceConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.mocks.services; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockServiceConsumer 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /container-tests/src/main/java/test/org/jboss/forge/furnace/mocks/services/MockServicePayload.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.mocks.services; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface MockServicePayload 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /container-tests/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /container-tests/src/test/java/test/org/jboss/forge/furnace/api/AddonArchiveDefaultSmokeTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package test.org.jboss.forge.furnace.api; 9 | 10 | import static org.hamcrest.CoreMatchers.notNullValue; 11 | 12 | import org.jboss.arquillian.junit.Arquillian; 13 | import org.jboss.forge.arquillian.services.LocalServices; 14 | import org.jboss.forge.furnace.Furnace; 15 | import org.junit.Assert; 16 | import org.junit.Test; 17 | import org.junit.runner.RunWith; 18 | 19 | /** 20 | * 21 | * @author George Gastaldi 22 | */ 23 | @RunWith(Arquillian.class) 24 | public class AddonArchiveDefaultSmokeTest 25 | { 26 | @Test 27 | public void test() 28 | { 29 | Furnace furnace = LocalServices.getFurnace(getClass().getClassLoader()); 30 | Assert.assertThat(furnace, notNullValue()); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /container-tests/src/test/java/test/org/jboss/forge/furnace/classpath/SunJDKLookupTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package test.org.jboss.forge.furnace.classpath; 8 | 9 | import org.jboss.arquillian.container.test.api.Deployment; 10 | import org.jboss.arquillian.junit.Arquillian; 11 | import org.jboss.forge.arquillian.archive.AddonArchive; 12 | import org.jboss.shrinkwrap.api.ShrinkWrap; 13 | import org.junit.Assert; 14 | import org.junit.Test; 15 | import org.junit.runner.RunWith; 16 | 17 | @RunWith(Arquillian.class) 18 | public class SunJDKLookupTest 19 | { 20 | @Deployment 21 | public static AddonArchive getDeployment() 22 | { 23 | AddonArchive archive = ShrinkWrap.create(AddonArchive.class) 24 | .addAsLocalServices(SunJDKLookupTest.class); 25 | 26 | return archive; 27 | } 28 | 29 | @Test 30 | public void testSunJDKLookup() throws Exception 31 | { 32 | Assert.assertNotNull(getClass().getClassLoader().loadClass("sun.misc.Signal")); 33 | Assert.assertNotNull(getClass().getClassLoader().loadClass("sun.nio.fs.Globs")); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /container-tests/src/test/java/test/org/jboss/forge/furnace/harness/AssumptionViolatedTest.java: -------------------------------------------------------------------------------- 1 | package test.org.jboss.forge.furnace.harness; 2 | 3 | import org.jboss.arquillian.junit.Arquillian; 4 | import org.jboss.forge.furnace.Furnace; 5 | import org.junit.Assert; 6 | import org.junit.Assume; 7 | import org.junit.Test; 8 | import org.junit.internal.AssumptionViolatedException; 9 | import org.junit.runner.RunWith; 10 | 11 | /** 12 | * Verify that {@link AssumptionViolatedException} is handled propertly in the {@link Furnace} test harness. 13 | * 14 | * @author Lincoln Baxter, III 15 | */ 16 | @RunWith(Arquillian.class) 17 | public class AssumptionViolatedTest 18 | { 19 | @Test 20 | public void testAssumptionShouldBeSkipped() 21 | { 22 | Assume.assumeTrue("If false, display this message", false); 23 | Assert.fail("This should not be executed"); 24 | } 25 | 26 | @Test 27 | public void testAssumptionShouldBeSkippedNoMessage() 28 | { 29 | Assume.assumeTrue(false); 30 | Assert.fail("This should not be executed"); 31 | } 32 | 33 | @Test 34 | public void testAssumptionShouldPass() 35 | { 36 | Assume.assumeTrue(true); 37 | } 38 | } -------------------------------------------------------------------------------- /container-tests/src/test/java/test/org/jboss/forge/furnace/spi/MockAddonDeploymentScenarioEnhancer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package test.org.jboss.forge.furnace.spi; 9 | 10 | import java.util.List; 11 | 12 | import org.jboss.arquillian.container.spi.client.deployment.DeploymentDescription; 13 | import org.jboss.arquillian.test.spi.TestClass; 14 | import org.jboss.forge.arquillian.spi.AddonDeploymentScenarioEnhancer; 15 | 16 | /** 17 | * 18 | * @author George Gastaldi 19 | */ 20 | public class MockAddonDeploymentScenarioEnhancer implements AddonDeploymentScenarioEnhancer 21 | { 22 | private static volatile int calls; 23 | 24 | @Override 25 | public List enhance(TestClass testClass, List deployments) 26 | { 27 | calls++; 28 | return deployments; 29 | } 30 | 31 | public static int getCalls() 32 | { 33 | return calls; 34 | } 35 | 36 | public static void resetCalls() 37 | { 38 | calls = 0; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /container-tests/src/test/java/test/org/jboss/forge/furnace/util/FurnaceVersion_2_14_0_DeploymentListener.java: -------------------------------------------------------------------------------- 1 | package test.org.jboss.forge.furnace.util; 2 | 3 | import org.jboss.forge.arquillian.DeploymentListener; 4 | import org.jboss.forge.furnace.Furnace; 5 | import org.jboss.shrinkwrap.api.Archive; 6 | 7 | /** 8 | * Set the 'furnace.version.override' system property to 2.14.0.Final during test execution. 9 | * 10 | * @author Lincoln Baxter, III 11 | */ 12 | public class FurnaceVersion_2_14_0_DeploymentListener implements DeploymentListener 13 | { 14 | @Override 15 | public void preDeploy(Furnace furnace, Archive archive) throws Exception 16 | { 17 | System.setProperty("furnace.version.override", "2.14.0.Final"); 18 | } 19 | 20 | @Override 21 | public void postDeploy(Furnace furnace, Archive archive) throws Exception 22 | { 23 | } 24 | 25 | @Override 26 | public void preUndeploy(Furnace furnace, Archive archive) throws Exception 27 | { 28 | } 29 | 30 | @Override 31 | public void postUndeploy(Furnace furnace, Archive archive) throws Exception 32 | { 33 | System.clearProperty("furnace.version.override"); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/META-INF/services/org.jboss.forge.arquillian.spi.AddonDeploymentScenarioEnhancer: -------------------------------------------------------------------------------- 1 | test.org.jboss.forge.furnace.spi.MockAddonDeploymentScenarioEnhancer 2 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final-sources.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final-sources.jar.md5: -------------------------------------------------------------------------------- 1 | 9bba4d166d003c6fa4568d9e016ed7a4 -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final-sources.jar.sha1: -------------------------------------------------------------------------------- 1 | 40f40a02073f5377d9a4b0e748ffb081c1019255 -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.jar.md5: -------------------------------------------------------------------------------- 1 | 759abdc25f1c4204e440fc2fff723600 -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.jar.sha1: -------------------------------------------------------------------------------- 1 | 4b2f721aa3836f8f20dd747bbe97337a9e621cba -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.pom: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | org.jboss.forge.furnace 7 | furnace-parent 8 | 2.14.0.Final 9 | ../pom.xml 10 | 11 | 12 | furnace-api 13 | 14 | Furnace - Runtime API 15 | 16 | 17 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.pom.md5: -------------------------------------------------------------------------------- 1 | 0b4eb6f3f70c7e6f3d3bdbd8aaa31b37 -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/9999.9.9.Final/furnace-api-9999.9.9.Final.pom.sha1: -------------------------------------------------------------------------------- 1 | ca3847767fb73dddb96f25155e8210bc32190cf4 -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/org/jboss/forge/furnace/furnace-api/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.jboss.forge.furnace 4 | furnace-api 5 | 6 | 7 | 9999.9.9.Final 8 | 9 | 20150225213128 10 | 11 | 12 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/indirect_dep/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | indirect_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/lib/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | lib 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/no_dep/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | no_dep 5 | 6 | 1.0.0.Final 7 | 1.1.2-SNAPSHOT 8 | 9 | 1.0.0.Final 10 | 1.0.1.Final 11 | 1.1.0.Final 12 | 1.1.1.Final 13 | 2.0.0.Final 14 | 15 | 20130310152137 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 2.0.0.Final 10 | 11 | 20130310152137 12 | 13 | 14 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_a/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_a 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_incompatible_version/9999.0.0.Final/one_dep_incompatible_version-9999.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep_incompatible_version/9999.0.0.Final/one_dep_incompatible_version-9999.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_incompatible_version/9999.0.0.Final/one_dep_incompatible_version-9999.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep_incompatible_version/9999.0.0.Final/one_dep_incompatible_version-9999.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_incompatible_version/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_incompatible_version 5 | 6 | 9999.0.0.Final 7 | 8 | 9999.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/one_dep_lib/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_lib 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/container-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar -------------------------------------------------------------------------------- /container-tests/src/test/resources/repository/test/two_deps/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | two_deps 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/DirtyCheckableRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | /** 10 | * Used to allow dirty checks on repositories. 11 | * 12 | * @author Sergei Egorov 13 | */ 14 | public interface DirtyCheckableRepository 15 | { 16 | DirtyChecker createDirtyChecker(); 17 | } -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/DirtyChecker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | /** 10 | * Used to check dirtiness. 11 | * 12 | * @author Sergei Egorov 13 | */ 14 | public interface DirtyChecker extends AutoCloseable 15 | { 16 | 17 | boolean isDirty(); 18 | 19 | default void resetDirtyStatus() 20 | { 21 | } 22 | 23 | @Override 24 | default void close() throws Exception 25 | { 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/LazyDirtyChecker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | import java.util.concurrent.atomic.AtomicBoolean; 10 | 11 | /** 12 | * Dirty checker with lazy initialization. 13 | * 14 | * @author Sergei Egorov 15 | */ 16 | public abstract class LazyDirtyChecker implements DirtyChecker 17 | { 18 | 19 | protected final AtomicBoolean initialized = new AtomicBoolean(false); 20 | 21 | abstract protected void init(); 22 | 23 | abstract protected boolean isDirtyInternal(); 24 | 25 | @Override 26 | public final boolean isDirty() 27 | { 28 | if (initialized.compareAndSet(false, true)) 29 | init(); 30 | 31 | return isDirtyInternal(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/MutableAddonRepositoryStateStrategy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | import org.jboss.forge.furnace.addons.Addon; 10 | import org.jboss.forge.furnace.addons.AddonId; 11 | 12 | /** 13 | * Used to perform {@link Addon} registration operations. May be obtained using CDI injection: 14 | * 15 | * @author Lincoln Baxter, III 16 | * @author Koen Aers 17 | * @author George Gastaldi 18 | */ 19 | public interface MutableAddonRepositoryStateStrategy extends AddonRepositoryStateStrategy, DirtyCheckableRepository 20 | { 21 | public boolean disable(final AddonId addon); 22 | 23 | public boolean enable(AddonId addon); 24 | } 25 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/MutableAddonRepositoryStorageStrategy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | import org.jboss.forge.furnace.addons.Addon; 10 | import org.jboss.forge.furnace.addons.AddonId; 11 | import org.jboss.forge.furnace.repositories.AddonDependencyEntry; 12 | 13 | import java.io.File; 14 | 15 | /** 16 | * Used to perform {@link Addon} installation operations. May be obtained using CDI injection: 17 | * 18 | * @author Lincoln Baxter, III 19 | * @author Koen Aers 20 | * @author George Gastaldi 21 | */ 22 | public interface MutableAddonRepositoryStorageStrategy extends AddonRepositoryStorageStrategy, DirtyCheckableRepository 23 | { 24 | public boolean deploy(AddonId addon, Iterable dependencies, Iterable resourceJars); 25 | 26 | public boolean undeploy(AddonId addonEntry); 27 | } 28 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/StopAddonCallable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | import java.util.concurrent.Callable; 10 | 11 | import org.jboss.forge.furnace.addons.Addon; 12 | import org.jboss.forge.furnace.util.Assert; 13 | 14 | /** 15 | * @author Lincoln Baxter, III 16 | * 17 | */ 18 | public class StopAddonCallable implements Callable 19 | { 20 | private AddonStateManager stateManager; 21 | private Addon addon; 22 | 23 | public StopAddonCallable(AddonStateManager stateManager, Addon addon) 24 | { 25 | Assert.notNull(stateManager, "State manager must not be null."); 26 | Assert.notNull(addon, "Addon to stop must not be null."); 27 | 28 | this.stateManager = stateManager; 29 | this.addon = addon; 30 | } 31 | 32 | @Override 33 | public Void call() throws Exception 34 | { 35 | stateManager.cancel(addon); 36 | return null; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/addons/VersionDirtyChecker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.addons; 8 | 9 | import java.util.function.Supplier; 10 | 11 | /** 12 | * Version-based dirty checker. 13 | * 14 | * @author Sergei Egorov 15 | */ 16 | public class VersionDirtyChecker implements DirtyChecker 17 | { 18 | 19 | private final Supplier versionSupplier; 20 | 21 | private int lastRepoVersionSeen = 0; 22 | 23 | public VersionDirtyChecker(Supplier versionSupplier) 24 | { 25 | this.versionSupplier = versionSupplier; 26 | } 27 | 28 | @Override 29 | public boolean isDirty() 30 | { 31 | return versionSupplier.get() > lastRepoVersionSeen; 32 | } 33 | 34 | @Override 35 | public void resetDirtyStatus() 36 | { 37 | lastRepoVersionSeen = versionSupplier.get(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/event/NullEventManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.event; 8 | 9 | import java.lang.annotation.Annotation; 10 | 11 | import org.jboss.forge.furnace.event.EventException; 12 | import org.jboss.forge.furnace.event.EventManager; 13 | 14 | /** 15 | * Placeholder for addons that do not provide an {@link EventManager}. 16 | * 17 | * @author Lincoln Baxter, III 18 | */ 19 | public enum NullEventManager implements EventManager 20 | { 21 | INSTANCE; 22 | 23 | @Override 24 | public void fireEvent(Object event, Annotation... qualifiers) throws EventException 25 | { 26 | // do nothing 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/graph/AddonDependencyEdgeNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.graph; 8 | 9 | import org.jgrapht.ext.EdgeNameProvider; 10 | 11 | 12 | /** 13 | * @author Lincoln Baxter, III 14 | * 15 | */ 16 | public class AddonDependencyEdgeNameProvider implements EdgeNameProvider 17 | { 18 | 19 | @Override 20 | public String getEdgeName(AddonDependencyEdge edge) 21 | { 22 | StringBuilder builder = new StringBuilder(); 23 | builder.append(edge.isOptional() ? "O" : ""); 24 | builder.append(edge.isExported() ? "E" : ""); 25 | return builder.toString(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/graph/AddonVertexNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.graph; 8 | 9 | import org.jgrapht.ext.VertexNameProvider; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | * 14 | */ 15 | public class AddonVertexNameProvider implements VertexNameProvider 16 | { 17 | 18 | @Override 19 | public String getVertexName(AddonVertex vertex) 20 | { 21 | StringBuilder builder = new StringBuilder(); 22 | builder.append(vertex.toString().replaceAll("org.jboss.forge\\.?", "")); 23 | return builder.toString(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/lock/DeadlockError.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.furnace.impl.lock; 2 | 3 | import org.jboss.forge.furnace.exception.ContainerException; 4 | import org.jboss.forge.furnace.lock.LockManager; 5 | 6 | /** 7 | * Thrown when a deadlock is detected in the {@link LockManager}. It is intentional that this type does not extend from 8 | * {@link ContainerException} because it represents a developer error, and should NEVER be caught. (This is the reason 9 | * why it extends from {@link Error}) 10 | * 11 | * @author Lincoln Baxter, III 12 | */ 13 | class DeadlockError extends Error 14 | { 15 | private static final long serialVersionUID = -5559271290352031320L; 16 | 17 | /** 18 | * Create a new {@link DeadlockError} with the given message. 19 | */ 20 | public DeadlockError(String string) 21 | { 22 | super(string); 23 | } 24 | } -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/modules/providers/AppleScriptClasspathSpec.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.impl.modules.providers; 9 | 10 | import java.util.Collections; 11 | import java.util.Set; 12 | 13 | import org.jboss.modules.ModuleIdentifier; 14 | 15 | /** 16 | * 17 | * @author George Gastaldi 18 | */ 19 | public class AppleScriptClasspathSpec extends AbstractModuleSpecProvider 20 | { 21 | public static final ModuleIdentifier ID = ModuleIdentifier.create("apple.script"); 22 | 23 | public static Set paths = Collections.singleton("apple/applescript"); 24 | 25 | @Override 26 | public ModuleIdentifier getId() 27 | { 28 | return ID; 29 | } 30 | 31 | @Override 32 | protected Set getPaths() 33 | { 34 | return paths; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /container/src/main/java/org/jboss/forge/furnace/impl/modules/providers/XATransactionJDKClasspathSpec.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.impl.modules.providers; 8 | 9 | import java.util.HashSet; 10 | import java.util.Set; 11 | 12 | import org.jboss.modules.ModuleIdentifier; 13 | 14 | public class XATransactionJDKClasspathSpec extends AbstractModuleSpecProvider 15 | { 16 | public static final ModuleIdentifier ID = ModuleIdentifier.create("javax.transaction.xa"); 17 | 18 | public static Set paths = new HashSet(); 19 | 20 | static 21 | { 22 | paths.add("javax/transaction"); 23 | paths.add("javax/transaction/xa"); 24 | } 25 | 26 | @Override 27 | public ModuleIdentifier getId() 28 | { 29 | return ID; 30 | } 31 | 32 | @Override 33 | protected Set getPaths() 34 | { 35 | return paths; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /container/src/main/resources/META-INF/services/org.jboss.forge.furnace.Furnace: -------------------------------------------------------------------------------- 1 | org.jboss.forge.furnace.impl.FurnaceImpl -------------------------------------------------------------------------------- /container/src/main/resources/META-INF/services/org.jboss.forge.furnace.impl.modules.ModuleSpecProvider: -------------------------------------------------------------------------------- 1 | org.jboss.forge.furnace.impl.modules.providers.AppleScriptClasspathSpec 2 | org.jboss.forge.furnace.impl.modules.providers.FurnaceContainerSpec 3 | org.jboss.forge.furnace.impl.modules.providers.SunJDKClasspathSpec 4 | org.jboss.forge.furnace.impl.modules.providers.SystemClasspathSpec 5 | org.jboss.forge.furnace.impl.modules.providers.JAXBJDKClasspathSpec 6 | org.jboss.forge.furnace.impl.modules.providers.XPathJDKClasspathSpec 7 | org.jboss.forge.furnace.impl.modules.providers.XATransactionJDKClasspathSpec 8 | org.jboss.forge.furnace.impl.modules.providers.CORBAClasspathSpec 9 | org.jboss.forge.furnace.impl.modules.providers.NashornJDKClasspathSpec -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/impl/addons/AddonRepositoryStateStrategyImplTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.impl.addons; 9 | 10 | import java.io.File; 11 | 12 | import org.junit.Assert; 13 | import org.junit.Test; 14 | 15 | /** 16 | * 17 | * @author George Gastaldi 18 | */ 19 | public class AddonRepositoryStateStrategyImplTest 20 | { 21 | 22 | /** 23 | * Test method for 24 | * {@link org.jboss.forge.furnace.impl.addons.AddonRepositoryStateStrategyImpl#getXmlRoot(java.io.File)}. 25 | */ 26 | @Test 27 | public void testGetXmlRoot() throws Exception 28 | { 29 | File registryFile = new File("src/test/resources/invalid.xml"); 30 | Assert.assertNotNull(AddonRepositoryStateStrategyImpl.getXmlRoot(registryFile)); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/AnnotatedWithRemote.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | @MockAnnotation 11 | public interface AnnotatedWithRemote 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/ExtendsRemoteInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | public interface ExtendsRemoteInterface extends AnnotatedWithRemote 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/InheritsRemote.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | public class InheritsRemote implements AnnotatedWithRemote 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/InheritsRemoteFromExtendedInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | public class InheritsRemoteFromExtendedInterface implements ExtendsRemoteInterface 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/InheritsRemoteFromSuperClassInheriting.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | public class InheritsRemoteFromSuperClassInheriting extends SuperClassInheritsFromInterface 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/MockAnnotation.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | import java.lang.annotation.Retention; 11 | import java.lang.annotation.RetentionPolicy; 12 | 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface MockAnnotation 15 | { 16 | 17 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/MockInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | public interface MockInterface 11 | { 12 | @MockMethodAnnotation 13 | public void method(); 14 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/MockLockManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.mock; 8 | 9 | import java.util.concurrent.Callable; 10 | 11 | import org.jboss.forge.furnace.lock.LockManager; 12 | import org.jboss.forge.furnace.lock.LockMode; 13 | import org.jboss.forge.furnace.util.Callables; 14 | 15 | /** 16 | * @author Lincoln Baxter, III 17 | */ 18 | public class MockLockManager implements LockManager 19 | { 20 | @Override 21 | public T performLocked(LockMode mode, Callable task) 22 | { 23 | return Callables.call(task); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/MockMethodAnnotation.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | import java.lang.annotation.ElementType; 11 | import java.lang.annotation.Retention; 12 | import java.lang.annotation.RetentionPolicy; 13 | import java.lang.annotation.Target; 14 | 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Target(ElementType.METHOD) 17 | public @interface MockMethodAnnotation 18 | { 19 | 20 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/SuperClassAnnotatedWithRemote.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | @MockAnnotation 11 | public class SuperClassAnnotatedWithRemote 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /container/src/test/java/org/jboss/forge/furnace/mock/SuperClassInheritsFromInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.mock; 9 | 10 | public class SuperClassInheritsFromInterface implements AnnotatedWithRemote 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /manager/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | org.jboss.forge.furnace 5 | furnace-manager-parent 6 | 2.29.2-SNAPSHOT 7 | 8 | furnace-manager-api 9 | Furnace - Manager API 10 | 11 | 12 | 13 | org.jboss.forge.furnace 14 | furnace-manager-spi 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/AddonActionRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | import org.jboss.forge.furnace.manager.spi.AddonInfo; 11 | 12 | /** 13 | * Super interface for actions targeted at a specific addon 14 | * 15 | * @author George Gastaldi 16 | * 17 | */ 18 | public interface AddonActionRequest 19 | { 20 | /** 21 | * Target Addon 22 | */ 23 | AddonInfo getRequestedAddonInfo(); 24 | 25 | /** 26 | * Execute the desired request 27 | */ 28 | void perform(); 29 | } -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/DeployRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | /** 11 | * When an addon is installed, another addons could be required. This object returns the necessary information for the 12 | * installation of an addon to succeed, like required addons and dependencies 13 | * 14 | * @author George Gastaldi 15 | * 16 | */ 17 | public interface DeployRequest extends AddonActionRequest 18 | { 19 | } -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/DisableRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | import org.jboss.forge.furnace.addons.AddonId; 11 | 12 | /** 13 | * This object is responsible for disabling an {@link AddonId}. 14 | * 15 | * @author Lincoln Baxter, III 16 | */ 17 | public interface DisableRequest extends AddonActionRequest 18 | { 19 | 20 | } -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/EnableRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | import org.jboss.forge.furnace.addons.AddonId; 11 | 12 | /** 13 | * This object is responsible for enabling an {@link AddonId}. 14 | * 15 | * @author Lincoln Baxter, III 16 | */ 17 | public interface EnableRequest extends AddonActionRequest 18 | { 19 | 20 | } -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/InstallRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * A {@link InstallRequest} delegates a group of requests so that it may be performed in a single call 14 | * 15 | * @author George Gastaldi 16 | * 17 | */ 18 | public interface InstallRequest extends AddonActionRequest 19 | { 20 | public List getActions(); 21 | } 22 | -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/RemoveRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | import org.jboss.forge.furnace.addons.Addon; 11 | 12 | /** 13 | * This object is responsible for removing an {@link Addon}. 14 | * 15 | * @author Lincoln Baxter, III 16 | */ 17 | public interface RemoveRequest extends AddonActionRequest 18 | { 19 | 20 | } -------------------------------------------------------------------------------- /manager/api/src/main/java/org/jboss/forge/furnace/manager/request/UpdateRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.request; 9 | 10 | public interface UpdateRequest extends AddonActionRequest 11 | { 12 | RemoveRequest getRemoveRequest(); 13 | 14 | DeployRequest getDeployRequest(); 15 | } 16 | -------------------------------------------------------------------------------- /manager/impl/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | org.jboss.forge.furnace 5 | furnace-manager-parent 6 | 2.29.2-SNAPSHOT 7 | ../pom.xml 8 | 9 | 10 | furnace-manager 11 | Furnace - Manager Impl 12 | 13 | 14 | 15 | org.jboss.forge.furnace 16 | furnace-api 17 | provided 18 | 19 | 20 | org.jboss.forge.furnace 21 | furnace-manager-api 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /manager/impl/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/main/java/org/jboss/forge/furnace/manager/maven/MavenOperationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.maven; 9 | 10 | public class MavenOperationException extends RuntimeException 11 | { 12 | private static final long serialVersionUID = 3436297543207124937L; 13 | 14 | public MavenOperationException() 15 | { 16 | super(); 17 | } 18 | 19 | public MavenOperationException(String message, Throwable cause) 20 | { 21 | super(message, cause); 22 | } 23 | 24 | public MavenOperationException(String message) 25 | { 26 | super(message); 27 | } 28 | 29 | public MavenOperationException(Throwable cause) 30 | { 31 | super(cause); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/main/resources/META-INF/services/org.jboss.forge.furnace.manager.spi.AddonDependencyResolver: -------------------------------------------------------------------------------- 1 | org.jboss.forge.furnace.manager.maven.addon.MavenAddonDependencyResolver -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0-SNAPSHOT/furnace_api_dep-1.0.0-SNAPSHOT-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0-SNAPSHOT/furnace_api_dep-1.0.0-SNAPSHOT-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0-SNAPSHOT/furnace_api_dep-1.0.0-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0-SNAPSHOT/furnace_api_dep-1.0.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0.Final/furnace_api_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0.Final/furnace_api_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0.Final/furnace_api_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/1.0.0.Final/furnace_api_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_dep/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | furnace_api_dep 5 | 6 | 1.0.0-SNAPSHOT 7 | 1.0.0.Final 8 | 9 | 1.0.0-SNAPSHOT 10 | 1.0.0.Final 11 | 12 | 20130310152137 13 | 14 | 15 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_indirect_dep/1.0.0.Final/furnace_api_indirect_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_indirect_dep/1.0.0.Final/furnace_api_indirect_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_indirect_dep/1.0.0.Final/furnace_api_indirect_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_indirect_dep/1.0.0.Final/furnace_api_indirect_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_indirect_dep/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | furnace_api_indirect_dep 5 | 6 | 1.0.0.Final 7 | 1.0.0.Final 8 | 9 | 1.0.0.Final 10 | 11 | 20130310152137 12 | 13 | 14 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_snapshot/1.0.0-SNAPSHOT/furnace_api_snapshot-1.0.0-SNAPSHOT-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_snapshot/1.0.0-SNAPSHOT/furnace_api_snapshot-1.0.0-SNAPSHOT-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_snapshot/1.0.0-SNAPSHOT/furnace_api_snapshot-1.0.0-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/furnace_api_snapshot/1.0.0-SNAPSHOT/furnace_api_snapshot-1.0.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/furnace_api_snapshot/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | furnace_api_snapshot 5 | 6 | 7 | 1.0.0-SNAPSHOT 8 | 9 | 20130310152137 10 | 11 | 12 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/indirect_dep/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | indirect_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | 10 | 11 | test 12 | lib2 13 | 1.0.0.Final 14 | true 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/lib/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | lib 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/lib2/1.0.0.Final/lib2-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/lib2/1.0.0.Final/lib2-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/lib2/1.0.0.Final/lib2-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | lib2 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | 10 | 11 | test 12 | lib2 13 | 1.0.0.Final 14 | true 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/lib2/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | lib2 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/no_dep/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | no_dep 5 | 6 | 1.0.0.Final 7 | 1.1.2-SNAPSHOT 8 | 9 | 1.0.0.Final 10 | 1.0.1.Final 11 | 1.1.0.Final 12 | 1.1.1.Final 13 | 2.0.0e.Final 14 | 15 | 20130310152137 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep_a/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_a 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_dep_lib/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_lib 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_optional_dep/1.0.0.Final/one_optional_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_optional_dep/1.0.0.Final/one_optional_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_optional_dep/1.0.0.Final/one_optional_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/one_optional_dep/1.0.0.Final/one_optional_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/one_optional_dep/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_optional_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/resolver/maven/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/resolver/maven/src/test/resources/repository/test/two_deps/maven-metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | two_deps 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /manager/resolver/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | org.jboss.forge.furnace 5 | furnace-manager-parent 6 | 2.29.2-SNAPSHOT 7 | 8 | 9 | furnace-manager-resolver-parent 10 | Furnace - Manager Resolvers 11 | 12 | pom 13 | 14 | maven 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /manager/spi/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | org.jboss.forge.furnace 5 | furnace-manager-parent 6 | 2.29.2-SNAPSHOT 7 | 8 | furnace-manager-spi 9 | Furnace - Manager SPI 10 | 11 | 12 | 13 | org.jboss.forge.furnace 14 | furnace-api 15 | provided 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /manager/spi/src/main/java/org/jboss/forge/furnace/manager/spi/Response.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.manager.spi; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * A response object that returns the exceptions that may have happened while performing an operation 14 | * 15 | * @author George Gastaldi 16 | */ 17 | public interface Response 18 | { 19 | /** 20 | * The wrapped result object 21 | */ 22 | TYPE get(); 23 | 24 | /** 25 | * A {@link List} of {@link Exception} that occurred during invocation. 26 | * 27 | * Should be logged 28 | */ 29 | List getExceptions(); 30 | } 31 | -------------------------------------------------------------------------------- /manager/tests/src/test/java/org/jboss/forge/furnace/manager/impl/ClassesNotLeakedOnClasspathTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.manager.impl; 8 | 9 | import org.junit.Test; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | * 14 | */ 15 | public class ClassesNotLeakedOnClasspathTest 16 | { 17 | 18 | @Test(expected = ClassNotFoundException.class) 19 | public void test() throws ClassNotFoundException 20 | { 21 | Thread.currentThread().getContextClassLoader().loadClass("org.objectweb.asm.tree.ClassNode"); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/indirect_indirect_lib/1.0.0.Final/indirect_indirect_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/indirect_indirect_lib/1.0.0.Final/indirect_indirect_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/indirect_indirect_lib/1.0.0.Final/indirect_indirect_lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | indirect_indirect_lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | 10 | test 11 | indirect_lib 12 | 1.0.0.Final 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/indirect_lib/1.0.0.Final/indirect_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/indirect_lib/1.0.0.Final/indirect_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/indirect_lib/1.0.0.Final/indirect_lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | indirect_lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | 10 | test 11 | lib 12 | 1.0.0.Final 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep_one_lib_excluding_indirect_lib/1.0.0.Final/no_dep_one_lib_excluding_indirect_lib-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep_one_lib_excluding_indirect_lib/1.0.0.Final/no_dep_one_lib_excluding_indirect_lib-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/no_dep_one_lib_excluding_indirect_lib/1.0.0.Final/no_dep_one_lib_excluding_indirect_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/no_dep_one_lib_excluding_indirect_lib/1.0.0.Final/no_dep_one_lib_excluding_indirect_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /manager/tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/manager/tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/CustomPrintStream.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | import java.io.File; 10 | import java.io.FileNotFoundException; 11 | import java.io.PrintStream; 12 | 13 | /** 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | public class CustomPrintStream extends PrintStream 18 | { 19 | public CustomPrintStream(File etc) throws FileNotFoundException 20 | { 21 | super(etc); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/JavaIOFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | import java.io.File; 10 | import java.nio.file.Path; 11 | import java.nio.file.Paths; 12 | 13 | import org.jboss.forge.furnace.proxy.Proxies; 14 | 15 | /** 16 | * @author Lincoln Baxter, III 17 | */ 18 | public class JavaIOFactory 19 | { 20 | 21 | public Path getPath() 22 | { 23 | return Paths.get("/foo"); 24 | } 25 | 26 | public File getFile() 27 | { 28 | return new File("/foo"); 29 | } 30 | 31 | public void useFile(File file) 32 | { 33 | if (file == null) 34 | throw new IllegalArgumentException("Should have been a File"); 35 | if (!file.getClass().equals(File.class)) 36 | throw new IllegalArgumentException("Should have been a File class"); 37 | if (Proxies.isForgeProxy(file)) 38 | throw new IllegalArgumentException("Should not have been a proxy"); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/JavaUtilLoggingFactory.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.classloader.mock; 2 | 3 | import java.io.IOException; 4 | import java.util.logging.Level; 5 | import java.util.logging.LogRecord; 6 | 7 | /** 8 | * @author Jesse Sightler 9 | */ 10 | public class JavaUtilLoggingFactory { 11 | public LogRecord getLogRecord() { 12 | LogRecord record = new LogRecord(Level.INFO, "Test Message"); 13 | record.setThrown(new IOException()); 14 | return record; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockFinalResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public final class MockFinalResult implements Result 14 | { 15 | @Override 16 | public Object getValue() 17 | { 18 | return Object.class; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockInterface1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | public interface MockInterface1 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockInterface2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | public interface MockInterface2 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockOptionalService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.classloader.mock; 9 | 10 | import java.util.Optional; 11 | 12 | /** 13 | * 14 | * @author George Gastaldi 15 | */ 16 | public class MockOptionalService 17 | { 18 | public Optional getOptional() 19 | { 20 | return Optional. of(new MockService2(123)); 21 | } 22 | 23 | public Object getResult(Optional optional) 24 | { 25 | if (optional.isPresent()) 26 | return optional.get().getResult(); 27 | else 28 | return null; 29 | } 30 | 31 | public Optional getStringOptional() 32 | { 33 | return Optional.of(new MockService2(123).getResult()); 34 | } 35 | 36 | public Object getStringOptional(Optional result) 37 | { 38 | return result.orElseGet(() -> "Nothing"); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockParentInterface1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | public interface MockParentInterface1 10 | { 11 | public Object getResult(); 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockParentInterface2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | public interface MockParentInterface2 extends MockParentInterface1 10 | { 11 | @Override 12 | public String getResult(); 13 | } 14 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockResult implements Result 14 | { 15 | @Override 16 | public Object getValue() 17 | { 18 | return Object.class; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockService2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockService2 implements MockParentInterface2 14 | { 15 | public MockService2(Object nonDefaultConstructor) 16 | { 17 | /* force interface proxying */ 18 | } 19 | 20 | @Override 21 | public String getResult() 22 | { 23 | return "Lincoln"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/MockSimpleCountService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockSimpleCountService 14 | { 15 | private int count = 0; 16 | 17 | /** 18 | * Return's the number of times this services has been previously called. 19 | */ 20 | public int execute() 21 | { 22 | return count++; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/Result.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface Result 14 | { 15 | public Object getValue(); 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/SimpleEnum.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | */ 12 | public enum SimpleEnum 13 | { 14 | STARTED, STOPPED; 15 | } 16 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/SimpleEnumFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class SimpleEnumFactory 14 | { 15 | public SimpleEnum getEnum() 16 | { 17 | return SimpleEnum.STARTED; 18 | } 19 | 20 | public void useEnum(SimpleEnum instance) 21 | { 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collections/Profile.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collections; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class Profile 14 | { 15 | private String name; 16 | 17 | public Profile() 18 | { 19 | } 20 | 21 | public Profile(String name) 22 | { 23 | this.name = name; 24 | } 25 | 26 | public String getName() 27 | { 28 | return name; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collections/ProfileCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collections; 8 | 9 | import java.util.Map; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | * 14 | */ 15 | public class ProfileCommand 16 | { 17 | private ProfileManager manager; 18 | 19 | public void setManager(ProfileManager manager) 20 | { 21 | this.manager = manager; 22 | } 23 | 24 | public void configureProfile() 25 | { 26 | Map profiles = manager.getProfiles(); 27 | profiles.put("new", new Profile("new")); 28 | manager.setProfiles(profiles.values()); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collections/ProfileFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collections; 8 | 9 | import java.util.UUID; 10 | 11 | public class ProfileFactory 12 | { 13 | public Profile createProfile() 14 | { 15 | return new Profile(UUID.randomUUID().toString()); 16 | } 17 | 18 | public ProfileManager createProfileManager() 19 | { 20 | return new ProfileManagerImpl(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collections/ProfileManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collections; 8 | 9 | import java.util.Collection; 10 | import java.util.List; 11 | import java.util.Map; 12 | 13 | /** 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | public interface ProfileManager 18 | { 19 | Map getProfiles(); 20 | 21 | void setProfiles(Collection profiles); 22 | 23 | void setProfileListCallGet(List profiles); 24 | } 25 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassCreatesInstanceFromClassLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassCreatesInstanceFromClassLoader 14 | { 15 | @SuppressWarnings("unchecked") 16 | public T create(ClassLoader loader, Class type) 17 | { 18 | try 19 | { 20 | return (T) loader.loadClass(type.getName()).newInstance(); 21 | } 22 | catch (Exception e) 23 | { 24 | throw new RuntimeException("Error creating type by name and default constructor: " + type.getName(), e); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassImplementsInterfaceExtendsInterfaceValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassImplementsInterfaceExtendsInterfaceValue implements InterfaceExtendsInterfaceValue 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassImplementsInterfaceModifiableContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | import java.util.List; 10 | 11 | 12 | /** 13 | * @author Lincoln Baxter, III 14 | * 15 | */ 16 | public class ClassImplementsInterfaceModifiableContext implements InterfaceModifiableContext 17 | { 18 | 19 | private List values; 20 | 21 | public ClassImplementsInterfaceModifiableContext(List values) 22 | { 23 | this.values = values; 24 | } 25 | 26 | @Override 27 | public void addValue(InterfaceValue value) 28 | { 29 | this.values.add(value); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassImplementsInterfaceWithGetterAndSetter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassImplementsInterfaceWithGetterAndSetter implements InterfaceWithGetterAndSetter 14 | { 15 | 16 | private InterfaceWithPassthroughMethod passthrough; 17 | 18 | @Override 19 | public InterfaceWithPassthroughMethod getPassthrough() 20 | { 21 | return passthrough; 22 | } 23 | 24 | @Override 25 | public void setPassthrough(InterfaceWithPassthroughMethod passthrough) 26 | { 27 | this.passthrough = passthrough; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassImplementsInterfaceWithPassthroughMethod.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassImplementsInterfaceWithPassthroughMethod implements InterfaceWithPassthroughMethod 14 | { 15 | @Override 16 | public ClassWithJavaLangGetterAndSetter passthrough(ClassWithJavaLangGetterAndSetter value) 17 | { 18 | return value; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassWithClassAsParameter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | import org.jboss.forge.furnace.proxy.Proxies; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | * 14 | */ 15 | public class ClassWithClassAsParameter 16 | { 17 | 18 | private Class referenceType; 19 | 20 | public ClassWithClassAsParameter() 21 | { 22 | // this needs to be proxyable 23 | } 24 | 25 | public ClassWithClassAsParameter(Class referenceType) 26 | { 27 | this.referenceType = referenceType; 28 | } 29 | 30 | public boolean verify(Class type) 31 | { 32 | return (referenceType.isAssignableFrom(type)); 33 | } 34 | 35 | public boolean isProxyType(Class type) 36 | { 37 | return Proxies.isProxyType(type); 38 | } 39 | 40 | public boolean isProxyObject(Object enhancedValue) 41 | { 42 | return Proxies.isForgeProxy(enhancedValue); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassWithGetterAndSetter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | import org.jboss.forge.furnace.proxy.Proxies; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | * 14 | */ 15 | public class ClassWithGetterAndSetter 16 | { 17 | private ClassWithPassthroughMethod passthrough; 18 | 19 | public ClassWithPassthroughMethod getPassthrough() 20 | { 21 | return passthrough; 22 | } 23 | 24 | public void setPassthrough(ClassWithPassthroughMethod passthrough) 25 | { 26 | this.passthrough = passthrough; 27 | } 28 | 29 | public boolean assertPassthroughNotProxied() 30 | { 31 | return Proxies.isForgeProxy(passthrough); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassWithInterfaceGetterAndSetter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassWithInterfaceGetterAndSetter 14 | { 15 | private InterfaceWithPassthroughMethod passthrough; 16 | 17 | public InterfaceWithPassthroughMethod getPassthrough() 18 | { 19 | return passthrough; 20 | } 21 | 22 | public void setPassthrough(InterfaceWithPassthroughMethod passthrough) 23 | { 24 | this.passthrough = passthrough; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassWithJavaLangGetterAndSetter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassWithJavaLangGetterAndSetter 14 | { 15 | private String value; 16 | 17 | public String getValue() 18 | { 19 | return value; 20 | } 21 | 22 | public void setValue(String value) 23 | { 24 | this.value = value; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassWithListAsParameter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | import java.util.List; 10 | 11 | import org.jboss.forge.classloader.mock.MockResult; 12 | 13 | /** 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | public class ClassWithListAsParameter 18 | { 19 | public ClassWithListAsParameter() 20 | { 21 | } 22 | 23 | public boolean verify(List list) 24 | { 25 | boolean r = false; 26 | for (Object result : list) 27 | { 28 | @SuppressWarnings("unused") 29 | MockResult verify = (MockResult) result; 30 | r = true; 31 | } 32 | return r; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/ClassWithPassthroughMethod.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ClassWithPassthroughMethod 14 | { 15 | public ClassWithJavaLangGetterAndSetter passthrough(ClassWithJavaLangGetterAndSetter value) 16 | { 17 | return value; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/InterfaceExtendsInterfaceValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InterfaceExtendsInterfaceValue extends InterfaceValue 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/InterfaceModifiableContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InterfaceModifiableContext 14 | { 15 | void addValue(InterfaceValue newInstance); 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/InterfaceValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InterfaceValue 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/InterfaceWithArrayParameterModification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InterfaceWithArrayParameterModification 14 | { 15 | public void modifyParameter(InterfaceModifiableContext parameter); 16 | 17 | void setValueClassLoader(ClassLoader valueLoader); 18 | } 19 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/InterfaceWithGetterAndSetter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InterfaceWithGetterAndSetter 14 | { 15 | public InterfaceWithPassthroughMethod getPassthrough(); 16 | 17 | public void setPassthrough(InterfaceWithPassthroughMethod passthrough); 18 | } 19 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/collisions/InterfaceWithPassthroughMethod.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.collisions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InterfaceWithPassthroughMethod 14 | { 15 | public ClassWithJavaLangGetterAndSetter passthrough(ClassWithJavaLangGetterAndSetter value); 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/dispatch/AbstractA.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.dispatch; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | abstract class AbstractA 14 | { 15 | private Object payload; 16 | 17 | public Object getPayload() 18 | { 19 | return payload; 20 | } 21 | 22 | public void setPayload(Object payload) 23 | { 24 | this.payload = payload; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/dispatch/AbstractB.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.dispatch; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | */ 12 | public abstract class AbstractB extends AbstractA 13 | { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/dispatch/ConcreteC.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.dispatch; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | */ 12 | public class ConcreteC extends AbstractB 13 | { 14 | public void doSomethingWithPayload() 15 | { 16 | Object payload = getPayload(); 17 | if (payload == null) 18 | throw new IllegalStateException("Payload should not be null!"); 19 | } 20 | 21 | @Override 22 | public String toString() 23 | { 24 | return getPayload() == null ? "" : getPayload().toString(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/exceptions/ExceptionFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.exceptions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class ExceptionFactory 14 | { 15 | 16 | public void throwException(String message) throws MockException 17 | { 18 | throw new MockException(message); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/exceptions/MockException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.exceptions; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockException extends RuntimeException 14 | { 15 | private static final long serialVersionUID = 5266075954460779189L; 16 | 17 | public MockException() 18 | { 19 | super(); 20 | } 21 | 22 | public MockException(String message, Throwable cause) 23 | { 24 | super(message, cause); 25 | } 26 | 27 | public MockException(String message) 28 | { 29 | super(message); 30 | } 31 | 32 | public MockException(Throwable cause) 33 | { 34 | super(cause); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/result/AbstractClass.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.result; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public abstract class AbstractClass implements BasicInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/result/BasicInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.result; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface BasicInterface extends SuperInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/result/Implementation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.result; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class Implementation extends AbstractClass implements BasicInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/result/InstanceFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.result; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface InstanceFactory 14 | { 15 | public T getInstance(); 16 | 17 | public Object getRawInstance(); 18 | } 19 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/result/InstanceFactoryImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.result; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class InstanceFactoryImpl implements InstanceFactory 14 | { 15 | @SuppressWarnings("unchecked") 16 | @Override 17 | public T getInstance() 18 | { 19 | return (T) new Implementation(); 20 | } 21 | 22 | @Override 23 | public Object getRawInstance() 24 | { 25 | return getInstance(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/result/SuperInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.result; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface SuperInterface 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/AbstractExtra.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public class AbstractExtra implements Extra 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/Action.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public interface Action 10 | { 11 | 12 | void handle(Context context); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/Action1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public class Action1 implements Action 10 | { 11 | 12 | @Override 13 | public void handle(Context context) 14 | { 15 | Object payload = context.get().get(); 16 | System.out.println(payload); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/Context.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public interface Context 10 | { 11 | ContextValue get(); 12 | void set(ContextValue payload); 13 | } 14 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/ContextImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public class ContextImpl implements Context 10 | { 11 | private ContextValue payload; 12 | 13 | @Override 14 | public void set(ContextValue payload) 15 | { 16 | this.payload = payload; 17 | } 18 | 19 | @Override 20 | public ContextValue get() 21 | { 22 | return payload; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/ContextValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | 10 | public interface ContextValue extends Iterable 11 | { 12 | public void set(PAYLOADTYPE payload); 13 | public PAYLOADTYPE get(); 14 | } 15 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/ContextValueImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | import java.util.Iterator; 10 | 11 | public class ContextValueImpl implements ContextValue 12 | { 13 | private PAYLOADTYPE payload; 14 | 15 | @Override 16 | public void set(PAYLOADTYPE payload) 17 | { 18 | this.payload = payload; 19 | } 20 | 21 | @Override 22 | public PAYLOADTYPE get() 23 | { 24 | return payload; 25 | } 26 | 27 | @Override 28 | public Iterator iterator() 29 | { 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/Extra.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public interface Extra 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/Payload.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public interface Payload extends Extra 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/sidewaysproxy/Payload1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.sidewaysproxy; 8 | 9 | public class Payload1 extends AbstractExtra implements Payload 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /proxy-tests/src/main/java/org/jboss/forge/classloader/mock/system/ArrayListFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.classloader.mock.system; 8 | 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | /** 13 | * @author Lincoln Baxter, III 14 | * 15 | */ 16 | public class ArrayListFactory 17 | { 18 | public List getArrayList() 19 | { 20 | return new ArrayList(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /proxy-tests/src/test/java/org/jboss/forge/furnace/proxy/classloader/ClassLoaderAdapterDuplicateMethodCallbackTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.classloader; 8 | 9 | import org.jboss.forge.classloader.mock.MockParentInterface1; 10 | import org.jboss.forge.classloader.mock.MockService2; 11 | import org.jboss.forge.furnace.proxy.ClassLoaderAdapterBuilder; 12 | import org.junit.Assert; 13 | import org.junit.Test; 14 | 15 | /** 16 | * @author Lincoln Baxter, III 17 | */ 18 | public class ClassLoaderAdapterDuplicateMethodCallbackTest 19 | { 20 | @Test 21 | public void testNestedDupicateProxyAdapterCallback() throws Exception 22 | { 23 | ClassLoader loader = ClassLoaderAdapterDuplicateMethodCallbackTest.class.getClassLoader(); 24 | MockParentInterface1 original = new MockService2(true); 25 | MockParentInterface1 object = ClassLoaderAdapterBuilder.callingLoader(loader).delegateLoader(loader) 26 | .enhance(original); 27 | Assert.assertNotSame(object, original); 28 | } 29 | } -------------------------------------------------------------------------------- /proxy-tests/src/test/java/org/jboss/forge/furnace/proxy/classloader/whitelist/MockContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.classloader.whitelist; 8 | 9 | import java.util.HashMap; 10 | import java.util.Map; 11 | 12 | /** 13 | * @author Lincoln Baxter, III 14 | * 15 | */ 16 | public class MockContext 17 | { 18 | private final Map attributes = new HashMap<>(); 19 | 20 | public Map getAttributes() 21 | { 22 | return attributes; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /proxy-tests/src/test/java/org/jboss/forge/furnace/proxy/classloader/whitelist/MockContextConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.classloader.whitelist; 8 | 9 | import org.jboss.forge.furnace.proxy.Proxies; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | * 14 | */ 15 | public class MockContextConsumer 16 | { 17 | public void processContext(MockContext context) 18 | { 19 | MockContextPayload payload = (MockContextPayload) context.getAttributes().get( 20 | MockContextPayload.class.getName()); 21 | 22 | // this payload should not be proxied with the CLAC, since its interface is available in this classloader. 23 | if (Proxies.isForgeProxy(payload)) 24 | throw new IllegalStateException("Should not have been a proxy"); 25 | } 26 | 27 | public Class getNativeClass() 28 | { 29 | return getClass(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /proxy-tests/src/test/java/org/jboss/forge/furnace/proxy/classloader/whitelist/MockContextPayload.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.classloader.whitelist; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface MockContextPayload 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /proxy-tests/src/test/java/org/jboss/forge/furnace/proxy/classloader/whitelist/MockContextPayloadImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.classloader.whitelist; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | */ 12 | public class MockContextPayloadImpl implements MockContextPayload 13 | { 14 | } 15 | -------------------------------------------------------------------------------- /proxy/src/main/java/org/jboss/forge/furnace/proxy/ClassLoaderAdapterBuilderCallingLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface ClassLoaderAdapterBuilderCallingLoader 14 | { 15 | ClassLoaderAdapterBuilderDelegateLoader delegateLoader(ClassLoader dep1Loader); 16 | } 17 | -------------------------------------------------------------------------------- /proxy/src/main/java/org/jboss/forge/furnace/proxy/ClassLoaderAdapterBuilderDelegateLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy; 8 | 9 | import java.util.Set; 10 | import java.util.concurrent.Callable; 11 | 12 | /** 13 | * @author Lincoln Baxter, III 14 | * 15 | */ 16 | public interface ClassLoaderAdapterBuilderDelegateLoader extends ClassLoaderAdapterBuilderWhitelist 17 | { 18 | ClassLoaderAdapterBuilderWhitelist whitelist(Set whitelist); 19 | 20 | ClassLoaderAdapterBuilderWhitelist whitelist(Callable> whitelist); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /proxy/src/main/java/org/jboss/forge/furnace/proxy/ClassLoaderAdapterBuilderWhitelist.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public interface ClassLoaderAdapterBuilderWhitelist 14 | { 15 | T enhance(T delegate); 16 | 17 | T enhance(T delegate, Class... types); 18 | } 19 | -------------------------------------------------------------------------------- /proxy/src/main/java/org/jboss/forge/furnace/proxy/ForgeProxy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy; 8 | 9 | import javassist.util.proxy.MethodHandler; 10 | 11 | /** 12 | * Marks an instance that was created via {@link Proxies}. 13 | * 14 | * @author Lincoln Baxter, III 15 | */ 16 | public interface ForgeProxy extends MethodHandler 17 | { 18 | /** 19 | * Get the underlying delegate instance, if possible. 20 | */ 21 | Object getDelegate() throws Exception; 22 | 23 | /** 24 | * Get the underlying proxy handler instance, if possible. 25 | */ 26 | Object getHandler() throws Exception; 27 | } -------------------------------------------------------------------------------- /proxy/src/main/java/org/jboss/forge/furnace/proxy/ForgeProxyMethodFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy; 8 | 9 | import java.lang.reflect.Method; 10 | 11 | import javassist.util.proxy.MethodFilter; 12 | 13 | /** 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | class ForgeProxyMethodFilter implements MethodFilter 18 | { 19 | @Override 20 | public boolean isHandled(Method method) 21 | { 22 | String name = method.getName(); 23 | Class[] parameterTypes = method.getParameterTypes(); 24 | if (!method.getDeclaringClass().getName().contains("java.lang") 25 | || ("clone".equals(name) && parameterTypes.length == 0) 26 | || ("close".equals(name) && parameterTypes.length == 0) 27 | || ("equals".equals(name) && parameterTypes.length == 1) 28 | || ("hashCode".equals(name) && parameterTypes.length == 0) 29 | || ("toString".equals(name) && parameterTypes.length == 0)) 30 | return true; 31 | return false; 32 | } 33 | } -------------------------------------------------------------------------------- /proxy/src/test/java/org/jboss/forge/furnace/proxy/mock/MockBaseClassExternal.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.mock; 8 | 9 | import org.jboss.forge.furnace.proxy.ProxyTypeInspectorTest.MockNestedInterface; 10 | 11 | public class MockBaseClassExternal implements MockNestedInterface 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /proxy/src/test/java/org/jboss/forge/furnace/proxy/test/BeanWithSuperClass.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | 8 | package org.jboss.forge.furnace.proxy.test; 9 | 10 | public class BeanWithSuperClass extends Bean 11 | { 12 | } 13 | -------------------------------------------------------------------------------- /proxy/src/test/java/org/jboss/forge/furnace/proxy/test/MockType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.test; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class MockType 14 | { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /proxy/src/test/java/org/jboss/forge/furnace/proxy/test/TypeWithNonDefaultConstructor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.furnace.proxy.test; 8 | 9 | /** 10 | * @author Lincoln Baxter, III 11 | * 12 | */ 13 | public class TypeWithNonDefaultConstructor 14 | { 15 | public TypeWithNonDefaultConstructor(Object foo) 16 | { 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/indirect_dep/1.0.0.Final/indirect_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/indirect_dep/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | indirect_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/lib/1.0.0.Final/lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/lib/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | lib 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.0.0.Final/no_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.0.1.Final/no_dep-1.0.1.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.1.0.Final/no_dep-1.1.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.1.1.Final/no_dep-1.1.1.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/1.1.2-SNAPSHOT/no_dep-1.1.2-SNAPSHOT.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/no_dep/2.0.0.Final/no_dep-2.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/no_dep/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | no_dep 5 | 6 | 1.0.0.Final 7 | 1.1.2-SNAPSHOT 8 | 9 | 1.0.0.Final 10 | 1.0.1.Final 11 | 1.1.0.Final 12 | 1.1.1.Final 13 | 2.0.0.Final 14 | 15 | 20130310152137 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep/1.0.0.Final/one_dep-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep/2.0.0.Final/one_dep-2.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 2.0.0.Final 10 | 11 | 20130310152137 12 | 13 | 14 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep_a/1.0.0.Final/one_dep_a-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep_a/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_a 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/one_dep_lib/1.0.0.Final/one_dep_lib-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/one_dep_lib/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | one_dep_lib 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final-forge-addon.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forge/furnace/6b305e4fd3a14e12be2551d07275c19e8ef2f8b7/se-tests/src/test/resources/repository/test/two_deps/1.0.0.Final/two_deps-1.0.0.Final.jar -------------------------------------------------------------------------------- /se-tests/src/test/resources/repository/test/two_deps/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | test 4 | two_deps 5 | 6 | 1.0.0.Final 7 | 8 | 1.0.0.Final 9 | 10 | 20130310152137 11 | 12 | 13 | -------------------------------------------------------------------------------- /se/src/main/java/bootpath/BootpathMarker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package bootpath; 8 | 9 | public interface BootpathMarker 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /test-harness/arquillian/classpath/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | org.jboss.forge.furnace.test 7 | arquillian-furnace-parent 8 | 2.29.2-SNAPSHOT 9 | ../pom.xml 10 | 11 | 12 | arquillian-furnace-classpath 13 | Furnace - Arquillian Container Adapter - Classpath 14 | 15 | 16 | 17 | org.jboss.forge.furnace 18 | furnace 19 | compile 20 | 21 | 22 | org.jboss.forge.furnace.test 23 | arquillian-furnace-core 24 | compile 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /test-harness/arquillian/classpath/src/main/resources/META-INF/arquillian.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test-harness/arquillian/classpath/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension: -------------------------------------------------------------------------------- 1 | org.jboss.forge.arquillian.FurnaceLoadableExtension -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/AddonDeployments.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.arquillian; 8 | 9 | import java.lang.annotation.Documented; 10 | import java.lang.annotation.ElementType; 11 | import java.lang.annotation.Retention; 12 | import java.lang.annotation.RetentionPolicy; 13 | import java.lang.annotation.Target; 14 | 15 | import org.jboss.arquillian.container.test.api.Deployment; 16 | 17 | /** 18 | * Contains multiple {@link AddonDeployment} instances that must be deployed before this {@link Deployment} may be 19 | * performed. 20 | * 21 | * @author Lincoln Baxter, III 22 | */ 23 | @Documented 24 | @Target(ElementType.METHOD) 25 | @Retention(RetentionPolicy.RUNTIME) 26 | public @interface AddonDeployments 27 | { 28 | /** 29 | * The {@link AddonDeployment} annotations. 30 | */ 31 | AddonDeployment[] value(); 32 | } 33 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/DeployToRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.arquillian; 8 | 9 | import java.lang.annotation.Documented; 10 | import java.lang.annotation.ElementType; 11 | import java.lang.annotation.Retention; 12 | import java.lang.annotation.RetentionPolicy; 13 | import java.lang.annotation.Target; 14 | 15 | /** 16 | * Defines the Addon repository into which this Deployment will be installed. 17 | * 18 | * @author Lincoln Baxter, III 19 | */ 20 | @Documented 21 | @Target(ElementType.METHOD) 22 | @Retention(RetentionPolicy.RUNTIME) 23 | public @interface DeployToRepository 24 | { 25 | String value(); 26 | } 27 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/DeploymentListener.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.arquillian; 2 | 3 | import org.jboss.forge.furnace.Furnace; 4 | import org.jboss.shrinkwrap.api.Archive; 5 | 6 | /** 7 | * Listener for the deployment lifecycle of an {@link AddonDeployment}. 8 | * 9 | * @author Lincoln Baxter, III 10 | * 11 | */ 12 | public interface DeploymentListener 13 | { 14 | /** 15 | * Called immediately before the given {@link Archive} is deployed. 16 | */ 17 | void preDeploy(Furnace furnace, Archive archive) throws Exception; 18 | 19 | /** 20 | * Called immediately after the given {@link Archive} is deployed. 21 | */ 22 | void postDeploy(Furnace furnace, Archive archive) throws Exception; 23 | 24 | /** 25 | * Called immediately before the given {@link Archive} is undeployed. 26 | */ 27 | void preUndeploy(Furnace furnace, Archive archive) throws Exception; 28 | 29 | /** 30 | * Called immediately after the given {@link Archive} is undeployed. 31 | */ 32 | void postUndeploy(Furnace furnace, Archive archive) throws Exception; 33 | } 34 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/archive/AddonArchiveBase.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.arquillian.archive; 2 | 3 | import org.jboss.forge.furnace.Furnace; 4 | import org.jboss.shrinkwrap.api.Archive; 5 | import org.jboss.shrinkwrap.api.container.LibraryContainer; 6 | import org.jboss.shrinkwrap.api.container.ResourceContainer; 7 | import org.jboss.shrinkwrap.api.container.ServiceProviderContainer; 8 | 9 | /** 10 | * Intermediate interface for types compatible with the {@link Furnace} test harness. 11 | * 12 | * @author Lincoln Baxter, III 13 | */ 14 | public interface AddonArchiveBase> extends Archive, LibraryContainer, 15 | ResourceContainer, ServiceProviderContainer, RepositoryLocationAware, 16 | AddonDependencyAware, DeploymentTimeoutAware 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/archive/AddonDependencyAware.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.arquillian.archive; 2 | 3 | import java.util.List; 4 | 5 | import org.jboss.forge.furnace.addons.AddonDependency; 6 | import org.jboss.forge.furnace.repositories.AddonDependencyEntry; 7 | 8 | /** 9 | * Designates an object that can have an {@link AddonDependency} entries. 10 | * 11 | * @author Lincoln Baxter, III 12 | */ 13 | public interface AddonDependencyAware 14 | { 15 | /** 16 | * Adds the given {@link AddonDependency} instances as addon module dependencies for this object. 17 | */ 18 | ORIGIN addAsAddonDependencies(AddonDependencyEntry... dependencies); 19 | 20 | /** 21 | * Get the currently specified {@link AddonDependency} instances for this object. 22 | */ 23 | List getAddonDependencies(); 24 | } 25 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/archive/RepositoryLocationAware.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.arquillian.archive; 2 | 3 | import org.jboss.forge.furnace.repositories.AddonRepository; 4 | 5 | /** 6 | * Designates an object as relating to a specific {@link AddonRepository} location. 7 | * 8 | * @author Lincoln Baxter, III 9 | */ 10 | public interface RepositoryLocationAware 11 | { 12 | /** 13 | * Gets the {@link AddonRepository} path to which this object is related. (Relative to the Java temp directory.) 14 | */ 15 | String getAddonRepository(); 16 | 17 | /** 18 | * Sets the {@link AddonRepository} path to which this object is related. (Relative to the Java temp directory.) 19 | */ 20 | ORIGIN setAddonRepository(String repository); 21 | } 22 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/impl/FurnaceAuxiliaryArchiveProcessor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.arquillian.impl; 8 | 9 | import org.jboss.arquillian.container.test.spi.client.deployment.AuxiliaryArchiveProcessor; 10 | import org.jboss.shrinkwrap.api.Archive; 11 | import org.jboss.shrinkwrap.api.Node; 12 | 13 | public class FurnaceAuxiliaryArchiveProcessor implements AuxiliaryArchiveProcessor 14 | { 15 | @Override 16 | public void process(Archive archive) 17 | { 18 | if ("arquillian-core.jar".equals(archive.getName())) 19 | { 20 | Node node = archive.get("org/jboss/shrinkwrap/descriptor"); 21 | if (node != null) 22 | archive.delete(node.getPath()); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/impl/NullException.java: -------------------------------------------------------------------------------- 1 | package org.jboss.forge.arquillian.impl; 2 | 3 | /** 4 | * An exception that should never be instantiated or thrown. 5 | * 6 | * @author Lincoln Baxter, III 7 | */ 8 | public class NullException extends Exception 9 | { 10 | private static final long serialVersionUID = 6928021485952058288L; 11 | 12 | private NullException() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/protocol/FurnaceHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.arquillian.protocol; 8 | 9 | import org.jboss.forge.furnace.Furnace; 10 | 11 | /** 12 | * Holds a {@link Furnace} instance so that the test executor may the current runtime. 13 | * 14 | * @author Lincoln Baxter, III 15 | * 16 | */ 17 | public class FurnaceHolder 18 | { 19 | private Furnace furnace; 20 | 21 | public Furnace getFurnace() 22 | { 23 | return furnace; 24 | } 25 | 26 | public void setFurnace(Furnace furnace) 27 | { 28 | this.furnace = furnace; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/protocol/FurnaceProtocolConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.arquillian.protocol; 8 | 9 | import org.jboss.arquillian.container.test.spi.client.protocol.ProtocolConfiguration; 10 | 11 | public class FurnaceProtocolConfiguration implements ProtocolConfiguration 12 | { 13 | } 14 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/protocol/FurnaceProtocolDescription.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | package org.jboss.forge.arquillian.protocol; 8 | 9 | import org.jboss.arquillian.container.spi.client.protocol.ProtocolDescription; 10 | 11 | /** 12 | * @author Lincoln Baxter, III 13 | */ 14 | public class FurnaceProtocolDescription extends ProtocolDescription 15 | { 16 | public FurnaceProtocolDescription() 17 | { 18 | super(FurnaceProtocol.NAME); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/resources/META-INF/arquillian.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/resources/META-INF/services/org.jboss.forge.arquillian.archive.AddonArchive: -------------------------------------------------------------------------------- 1 | implementingClassName=org.jboss.forge.arquillian.archive.impl.AddonArchiveImpl 2 | extension=.jar 3 | archiveFormat=ZIP -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/main/resources/META-INF/services/org.jboss.forge.arquillian.archive.AddonDeploymentArchive: -------------------------------------------------------------------------------- 1 | implementingClassName=org.jboss.forge.arquillian.archive.impl.AddonDeploymentArchiveImpl 2 | extension=.jar 3 | archiveFormat=ZIP -------------------------------------------------------------------------------- /test-harness/arquillian/core/src/test/resources/org/jboss/forge/arquillian/maven/lib-1.0.0.Final.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | test 5 | lib 6 | 1.0.0.Final 7 | Forge - Example Library 8 | 9 | 10 | org.jboss.forge.addon 11 | ui 12 | forge-addon 13 | 2.0.0.Alpha8 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test-harness/test-harness/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | furnace-test-parent 5 | org.jboss.forge.furnace.test 6 | 2.29.2-SNAPSHOT 7 | ../pom.xml 8 | 9 | 10 | furnace-test-harness 11 | 12 | Furnace - Test Harness 13 | 14 | 15 | 16 | 17 | junit 18 | junit 19 | compile 20 | 21 | 22 | org.jboss.arquillian.junit 23 | arquillian-junit-container 24 | compile 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test-harness/test-harness/src/main/java/org/jboss/forge/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Red Hat, Inc. and/or its affiliates. 3 | * 4 | * Licensed under the Eclipse Public License version 1.0, available at 5 | * http://www.eclipse.org/legal/epl-v10.html 6 | */ 7 | /** 8 | * @author George Gastaldi 9 | * 10 | */ 11 | package org.jboss.forge; --------------------------------------------------------------------------------