Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7891169
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T06:32:58+00:00 2026-06-03T06:32:58+00:00

I am thinking about a DSL / domain design to analyse a big bunch

  • 0

I am thinking about a DSL / domain design to analyse a big bunch of maven dependencies.

Input is a list of poms (effectively a map between poms and physical location), which I think will be parsed as “flat” (i.e. non-recursive) files to some nice scala type like this:

class Artifact(
  val groupId : String, 
  val artifactId : String, 
  val version : String
)

class Module(
  val id : Artifact,
  val location : URI, // any good type for this ?
  val parent : Option(Artifact),
  val modules : List(Artifact),
  val dependencies : List(Artifact)
)

Then there are three structures on that “nodes”

  1. inheritance: by <parent> and <modules>
  2. dependencies: by <dependency>
  3. physical: filesystem / svn dir-layout

Question: How should these be designed?

Some possibilities in my mind:

  1. Impose structure on modules them selves, e.g. by making the list of dependencies mutable, and change its type to List(Either(Artifact,Module)).
  2. Reuse collection API, and map inheritance tree to Tree(Module). But what with the dependency graph ?
  3. Design completely new structures and map the list of poms onto this
  4. Others? …

Of course, I want to have as much information as possible in the data-structure to avoid repeated calculations. Outline is:

  1. parse list of flat files
  2. enrich to structure (either by structure update (mutable) or mapping to a different structure (immutable/functional).
  3. query rich structure.

Things I want to do with this:

  • find incoming dependencies
  • find “clusters”
  • find relations of nth grade
  • give refactoring hints (pull-up dependencies, merge modules)
  • render pom.xml as html, browse to related artifacts. (similar to http://jarvana.com)

Thanks for any insights …

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T06:33:00+00:00Added an answer on June 3, 2026 at 6:33 am

    Just for the records, I will instantiate new structures, based on immutable collections (trees and scalax.graph http://www.assembla.com/spaces/scala-graph/wiki ).

    For the browsing of poms, I will render them to xhtml, injecting links for dependencies/inheritance, probably based on play-framework.

    And if this project will ever produce something useful, I will post it here …

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

When thinking about traditional layered application design, I often think in terms of 3
I have been thinking about a regular expression that can transform a list like
Thinking about avoiding code replication, I got a question that catches me every time
Thinking about if we modify the definition of Hamiltonian path as we need to
Been thinking about this for hours now. Im building a simple slideshow application, where
Just thinking about the best way to build an Order form that would (from
Im thinking about learn to develop app for iOS. I had a lot of
I was thinking about my code, and I accidentally clicked the Ln 74 at
I'm thinking about using the java application object to implement a simple cache, to
I've been thinking about the deployment process I am currently using, and I am

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.