2222import java .util .Objects ;
2323import java .util .function .Supplier ;
2424import javax .annotation .Nullable ;
25+ import javax .inject .Inject ;
26+
2527import org .gradle .api .Action ;
2628import org .gradle .api .Project ;
29+ import org .gradle .api .file .ProjectLayout ;
2730import org .gradle .api .provider .Property ;
2831import org .gradle .api .provider .Provider ;
32+ import org .gradle .api .provider .ProviderFactory ;
2933import org .gradle .plugins .ide .api .PropertiesFileContentMerger ;
3034import org .gradle .util .ConfigureUtil ;
3135
3236public class EclipseJdtApt {
33- private final Project project ;
37+ private final ProviderFactory providers ;
38+ private final ProjectLayout layout ;
3439 private final PropertiesFileContentMerger file ;
3540
41+ @ Deprecated
3642 public EclipseJdtApt (Project project , PropertiesFileContentMerger file ) {
37- this .project = project ;
43+ this (project , project .getProviders (), project .getLayout (), file );
44+ }
45+
46+ @ Inject
47+ public EclipseJdtApt (Project project , ProviderFactory providers , ProjectLayout layout , PropertiesFileContentMerger file ) {
48+ this .providers = providers ;
49+ this .layout = layout ;
3850 this .file = file ;
3951 this .aptEnabled = project .getObjects ().property (Boolean .class );
4052 aptEnabled .set (true );
@@ -78,7 +90,7 @@ public void setReconcileEnabled(Provider<Boolean> reconcileEnabled) {
7890 private final Property <File > genSrcDir ;
7991
8092 public File getGenSrcDir () {
81- return project . file (genSrcDir );
93+ return layout . getProjectDirectory (). file (genSrcDir . map ( File :: getAbsolutePath )). get (). getAsFile ( );
8294 }
8395
8496 public void setGenSrcDir (File genSrcDir ) {
@@ -87,13 +99,13 @@ public void setGenSrcDir(File genSrcDir) {
8799
88100 public void setGenSrcDir (Object genSrcDir ) {
89101 Objects .requireNonNull (genSrcDir );
90- this .genSrcDir .set (project .provider (() -> project . file ( genSrcDir )));
102+ this .genSrcDir .set (providers .provider (() -> layout . getProjectDirectory (). files ( genSrcDir ). getSingleFile ( )));
91103 }
92104
93105 private final Property <File > genTestSrcDir ;
94106
95107 public File getGenTestSrcDir () {
96- return project . file (genTestSrcDir );
108+ return layout . getProjectDirectory (). file (genTestSrcDir . map ( File :: getAbsolutePath )). get (). getAsFile ( );
97109 }
98110
99111 public void setGenTestSrcDir (File genTestSrcDir ) {
@@ -102,7 +114,7 @@ public void setGenTestSrcDir(File genTestSrcDir) {
102114
103115 public void setGenTestSrcDir (Object genTestSrcDir ) {
104116 Objects .requireNonNull (genTestSrcDir );
105- this .genTestSrcDir .set (project .provider (() -> project . file ( genTestSrcDir )));
117+ this .genSrcDir .set (providers .provider (() -> layout . getProjectDirectory (). files ( genTestSrcDir ). getSingleFile ( )));
106118 }
107119
108120 // XXX: this is actually either a Property<Map> or a MapProperty depending on Gradle version
0 commit comments