Comments (6)
Ok, I see. At the time of adding this feature, our primary use case was to pick up schemas under META-INF and from other modules in a given project that has schemas under META-INF, so the current implementation addresses that requirement. But for other external dependencies it would not work as you just pointed out. We could enhance this implementation to scan for .graphqls files more generally as well I suppose.
from dgs-codegen.
Usually schema files are added under src/main/resources for graphql projects and hence we scan for the META-INF folder in codegen. Thanks for pointing out the documentation gap, we need to fix that.
from dgs-codegen.
Fixed the docs here: Netflix/dgs@a518e6d
from dgs-codegen.
Usually schema files are added under src/main/resources for graphql projects and hence we scan for the META-INF folder in codegen. Thanks for pointing out the documentation gap, we need to fix that.
Even though the graphqls files are typically under src/main/resources they do not necessarily get packaged in the jar under META-INF. This requirement seems odd to me. All of the .graphql files in the jars I produce are packaged outside of META-INF.
Even Apollo's Federation graphqls files are not packaged under META-INF.
![image](https://private-user-images.githubusercontent.com/15958124/317044835-1a391fc9-8012-4b72-bdaf-05c1b346b090.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NzAwMDQsIm5iZiI6MTcxNTk2OTcwNCwicGF0aCI6Ii8xNTk1ODEyNC8zMTcwNDQ4MzUtMWEzOTFmYzktODAxMi00YjcyLWJkYWYtMDVjMWIzNDZiMDkwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE4MTUwNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJmYjM5ZGUyODIzOGM3YjcxOTc3NzM3ZDU4NDBiMzgxNmFiZTVmMGVkNzEyZDZiMTEwYTk3ZjQ0YTQxNTE5MjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.-F_DJVXwcd_aAMXJFtxXLf9rTVqcALjRZn6haKZJxqk)
Why does the code need to enforce the META-INF prefix vs scanning the entire Jar?
from dgs-codegen.
It looks like DGS decided to package error related schema in graphql-error-types
under src/main/resources/META-INF/schema
which is why it's packaged that way, but not all teams want to structure their codebases this way.
from dgs-codegen.
@srinivasankavitha thanks for taking a second look and reconsidering!
from dgs-codegen.
Related Issues (20)
- Type Mapping ignored for input types with nesting HOT 1
- `generateKotlinNullableClasses` should still generate nice `toString` for objects
- Generate generic Pagination API for connections HOT 5
- Client projection of a field with arguments does not return correct projection HOT 1
- The JDK 21 compiler linter flags potential `this-escape` violations in DGS generated code
- Bug when serializing query with scalar of type java.time.Duration and java.time.Period HOT 3
- Generate interfaces for schema types defined in schema in kotlin projects HOT 1
- The "generated-examples" folder is always empty for Kotlin projects HOT 2
- generateJava fails with `Not a valid name: package` HOT 4
- Is the official document of generating codes outdated? or some classes are not auto-generated? HOT 1
- Generated Java-classes naming convention HOT 1
- Variable declaratino missing wenn miltiple operations are used
- Generate Deprecated Annotation For Queries HOT 1
- Fields with capital letters in the beginning are not deserialised by jackson. java
- Code is not compiling after aliases were added to projections HOT 3
- GraphQL interfaces should still be annotated when using the `@annotate` directive
- How to generate data class with "no arg constructor" and setter? (or a data class with builder) HOT 1
- Polymorphic Interfaces with default implementation HOT 3
- Support Custom Serialization for Date Fields in InputValueSerializer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dgs-codegen.