• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Campbell Ritchie
  • Tim Cooke
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Junilu Lacar
  • Knute Snortum
Saloon Keepers:
  • Ron McLeod
  • Ganesh Patekar
  • Tim Moores
  • Pete Letkeman
  • Stephan van Hulst
Bartenders:
  • Carey Brown
  • Tim Holloway
  • Joe Ess

Document management by Java Swing and SVN?  RSS feed

 
Ranch Hand
Posts: 623
Android Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I am trying to design document management program in java swing as Desktop Application.
By that I plan to manage pdf, doc, exls, ppt etc non programming files only.

I used SVN for maintain current and historical versions of project files such as source code, web pages, and documentation.
VisualSVN I used.
So I decide to use that but not found any API library to integrate SVN in java swing program.
Is there any library available for SVN Server & Client so I can import it & use it?
Is there any other way to manage Documents more proper & secure way?

Need Guidance.
 
Mandar Khire
Ranch Hand
Posts: 623
Android Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I search & found svnkit.
But does anyone use it in Java Swing Desktop program for as Server side Create Repository & as client side Manage Documents?
 
Saloon Keeper
Posts: 4697
117
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Be aware that using svnkit might entail having to obtain a license, depending on how you use it. You could access the svn libraries via something like JNI or JNA, but it seems you want Java only.

Have you considered proper document management systems, for which which there are several open source Java solutions? Apache Jackrabbit comes to mind as a JCR-compatible implementation, but there are others.
 
Mandar Khire
Ranch Hand
Posts: 623
Android Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Tim Moores,


Be aware that using svnkit might entail having to obtain a license, depending on how you use it. You could access the svn libraries via something like JNI or JNA, but it seems you want Java only.


1. I got that if I sell my program as software then I have to take commercial Licence.
2. For use this svnkit should I JNI or JNA?
I seen Apache SVN written in C. Should I use that Source directly as Library for JNI or JNA?


Have you considered proper document management systems, for which which there are several open source Java solutions? Apache Jackrabbit comes to mind as a JCR-compatible implementation, but there are others.



I want to develop Java Desktop application for manage Documents.
Example:-
Admin1 create Repository Demo1 at Server & instruct user1 & 2 do design ppt.
So as Client machine, user1 create 2 pages & user2 create 3 pages at Day1.
Both modify/edit that ppt at Day2.

So Document management system with Versioning, commit with message,  etc features like tortoisesvn provides.

Can I use Jackrabbit for develop this kind of system or need other or combination of multiple API.
 
Tim Moores
Saloon Keeper
Posts: 4697
117
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

1. I got that if I sell my program as software then I have to take commercial Licence.


That's correct, but it goes beyond that. Be sure to understand all parts of the license.

2. For use this svnkit should I JNI or JNA?


Neither, as svnkit as a Java library and does all that for you.

I seen Apache SVN written in C. Should I use that Source directly as Library for JNI or JNA?


That would be the way to do it.

Can I use Jackrabbit for develop this kind of system or need other or combination of multiple API.


If SVN does everything you need done, great. Just pick one of the above approaches to interface with it, and you're done. If you want a full-featured DMS, SVN is unlikely to be sufficient, though, and you should look into JCR (the standard Java API for content repositories - which Jackrabbit implements). Just using Jackrabbit should be sufficient - no further libraries or servers required.
 
Bartender
Posts: 19668
92
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In business, documents are generally property (assets) of the business. So keeping them on one person's computer is a problem. If the computer - or the person - becomes inaccessible, then so do the documents.

Instead, it's preferable to keep then in a central repository where they can be properly secured and backed up by IT staff.

These days, the repository access is generally done via a web interface such as WebDAV. In fact, Subversion itself uses WebDAV for its web server interfacing.

There are tons of web-based document management systems out there. In fact, the Wikipedia is a web-based document management system which is based on freely-available open-source code. Wikis are very popular as knowledge bases and repositories. Many of them even incorporate version control so you can track a document's history.

And speaking of version control, there's often a certain amount of document management in modern version control systems. GitHub-style repositories often have hooks in their web interfaces such that basic markup can be done to a file and the web interface will present it formatted. It has become somewhat of a convention that there will be a README.md file in a git-based project that outlines what the project is about and (often) how to set it up and use it.
 
Mandar Khire
Ranch Hand
Posts: 623
Android Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Tim,

I am trying to write Java Swing Desktop Program for Document Management.
Architecture which I consider is as following image.


In above case I does not consider Internet or web or Cloud etc Advance things.

But I think as Tim Holloway wrote


These days, the repository access is generally done via a web interface such as WebDAV. In fact, Subversion itself uses WebDAV for its web server interfacing.



My program should be ready for cloud or web also.
So Architecture might be like follows:-


In Cloud I have to no worry about Backup Repositories if I use clouds like Amazon or Google or Microsoft Cloud provider, they take care of it. (As I read in articles.)
If Cloud server place at Locally then I have to take care of its all majors.

So I think my Current program (Desktop Program) as follows:-
Front End = Swing Java
Back End  = Advanced Java compatible for both LAN or Web/Cloud Repository.
Database = Local or Cloud Repository

Future program:-
Front End = Advanced Java Web UI
Back End  = Advanced Java compatible for both LAN or Web/Cloud Repository.
Database = Local or Cloud Repository

Documents I considered as I previously wrote pdf, doc, ppt, excelsheets, etc. For opening & editing I consider its respective Open Source or propitiatory reader-editors.
Users open-edit docs in their local machines, then run my program & do further steps to store it in Central Repository.

I started study of SVNKit to develop my current program as I think its my starting point of study.
For Creating Future program as


There are tons of web-based document management systems out there. In fact, the Wikipedia is a web-based document management system which is based on freely-available open-source code. Wikis are very popular as knowledge bases and repositories. Many of them even incorporate version control so you can track a document's history.

And speaking of version control, there's often a certain amount of document management in modern version control systems. GitHub-style repositories often have hooks in their web interfaces such that basic markup can be done to a file and the web interface will present it formatted. It has become somewhat of a convention that there will be a README.md file in a git-based project that outlines what the project is about and (often) how to set it up and use it.



as I see GitHub have some monthly plans.
Need to study about MediaWiki or related projects. 

1. Which API is much better for Free of Cost?
2.  Is my approach is right for solve the problem?
 
Mandar Khire
Ranch Hand
Posts: 623
Android Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sorry for Images not shared properly in previous reply.
Local Repository Architecture


Cloud Repository Architecture


Link of album is google photo
 
Tim Holloway
Bartender
Posts: 19668
92
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, doesn't everyone have at least one full-time server box running in their home?

Please note that if you only need to manage documents for one user on one machine that doesn't mean that you have to discard server-based solutions. As long as you have enough resources on your desktop machine you can run the document server on the same machine that you're using for your regular work.

Basically, what I'm saying is that there's no particular need for you to develop a Swing app from scratch unless you just want a reason to write a Swing app.

If your machine can host Docker containers, incidentally, there's a Wikimedia container out in the master Docker repository. So you could easily be running your own Wiki in 15 minutes or less.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!